gpgme (5 files)

cvs user marcus cvs at cvs.gnupg.org
Sat Dec 11 16:44:08 CET 2004


    Date: Saturday, December 11, 2004 @ 16:48:01
  Author: marcus
    Path: /cvs/gpgme/gpgme

   Added: gpgme/ttyname_r.c
Modified: ChangeLog configure.ac gpgme/ChangeLog gpgme/util.h

2004-12-11  Marcus Brinkmann  <marcus at g10code.de>

	* configure.ac: Replace ttyname_r if it doesn't exist (and warn in
	that case).

gpgme/
2004-12-11  Marcus Brinkmann  <marcus at g10code.de>

	* util.h [HAVE_CONFIG_H && HAVE_TTYNAME_R] (ttyname_r): Define
	prototype.
	* ttyname_r.c: New file.


-------------------+
 ChangeLog         |    5 +++++
 configure.ac      |   11 ++++++++++-
 gpgme/ChangeLog   |    6 ++++++
 gpgme/ttyname_r.c |   43 +++++++++++++++++++++++++++++++++++++++++++
 gpgme/util.h      |    4 ++++
 5 files changed, 68 insertions(+), 1 deletion(-)


Index: gpgme/ChangeLog
diff -u gpgme/ChangeLog:1.109 gpgme/ChangeLog:1.110
--- gpgme/ChangeLog:1.109	Tue Dec  7 22:13:36 2004
+++ gpgme/ChangeLog	Sat Dec 11 16:48:00 2004
@@ -1,3 +1,8 @@
+2004-12-11  Marcus Brinkmann  <marcus at g10code.de>
+
+	* configure.ac: Replace ttyname_r if it doesn't exist (and warn in
+	that case).
+
 2004-12-07  Marcus Brinkmann  <marcus at g10code.de>
 
 	* README: Refer to COPYING.LESSER and "each file" instead of
Index: gpgme/configure.ac
diff -u gpgme/configure.ac:1.94 gpgme/configure.ac:1.95
--- gpgme/configure.ac:1.94	Tue Dec  7 22:13:36 2004
+++ gpgme/configure.ac	Sat Dec 11 16:48:00 2004
@@ -44,7 +44,7 @@
 NEED_GPGSM_VERSION=1.9.6
 ##############################################
 AC_PREREQ(2.52)
-AC_REVISION($Revision: 1.94 $)
+AC_REVISION($Revision: 1.95 $)
 
 PACKAGE=$PACKAGE_NAME
 VERSION=$PACKAGE_VERSION
@@ -171,6 +171,15 @@
   GNUPG_CHECK_VA_COPY
 fi
 
+# Try to find a thread-safe version of ttyname().
+AC_REPLACE_FUNCS(ttyname_r)
+if test "$ac_cv_func_ttyname_r" != yes; then
+  AC_MSG_WARN([
+***
+*** ttyname() is not thread-safe and ttyname_r() does not exist
+***])
+fi
+
 # Try to find a thread-safe version of getenv().
 have_thread_safe_getenv=no
 jm_GLIBC21
Index: gpgme/gpgme/ChangeLog
diff -u gpgme/gpgme/ChangeLog:1.388 gpgme/gpgme/ChangeLog:1.389
--- gpgme/gpgme/ChangeLog:1.388	Tue Dec  7 22:13:36 2004
+++ gpgme/gpgme/ChangeLog	Sat Dec 11 16:48:00 2004
@@ -1,3 +1,9 @@
+2004-12-11  Marcus Brinkmann  <marcus at g10code.de>
+
+	* util.h [HAVE_CONFIG_H && HAVE_TTYNAME_R] (ttyname_r): Define
+	prototype.
+	* ttyname_r.c: New file.
+
 2004-12-07  Marcus Brinkmann  <marcus at g10code.de>
 
 	* putc_unlocked.c, funopen.c: I just claim copyright on these
Index: gpgme/gpgme/ttyname_r.c
diff -u /dev/null gpgme/gpgme/ttyname_r.c:1.1
--- /dev/null	Sat Dec 11 16:48:01 2004
+++ gpgme/gpgme/ttyname_r.c	Sat Dec 11 16:48:00 2004
@@ -0,0 +1,43 @@
+/* ttyname_r.c - A ttyname_r() replacement.
+   Copyright (C) 2003, 2004 g10 Code GmbH
+
+   This file is part of GPGME.
+ 
+   GPGME is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Lesser General Public License as
+   published by the Free Software Foundation; either version 2.1 of
+   the License, or (at your option) any later version.
+   
+   GPGME is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+   
+   You should have received a copy of the GNU Lesser General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
+
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+
+#warning ttyname is not thread-safe, and ttyname_r is missing
+
+int ttyname_r(int fd, char *buf, size_t buflen)
+{
+  char *tty;
+
+  tty = ttyname (fd);
+  if (!tty)
+    return errno;
+  
+  strncpy (buf, tty, buflen);
+  buf[buflen - 1] = '\0';
+  return (strlen (tty) >= buflen) ? ERANGE : 0;
+}
Index: gpgme/gpgme/util.h
diff -u gpgme/gpgme/util.h:1.28 gpgme/gpgme/util.h:1.29
--- gpgme/gpgme/util.h:1.28	Tue Dec  7 22:13:36 2004
+++ gpgme/gpgme/util.h	Sat Dec 11 16:48:00 2004
@@ -44,6 +44,10 @@
 int vasprintf (char **result, const char *format, va_list args);
 int asprintf (char **result, const char *format, ...);
 #endif
+
+#ifndef HAVE_TTYNAME_R
+int ttyname_r (int fd, char *buf, size_t buflen);
+#endif
 #endif
 
 




More information about the Gnupg-commits mailing list