aboutsummaryrefslogtreecommitdiffstats
path: root/common/util.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2012-11-20 18:01:13 +0000
committerWerner Koch <[email protected]>2012-11-20 18:03:49 +0000
commit835698b72bc509565aad52b0753f1c56c1a8f062 (patch)
treedd5352b45d74cb3ef4b3091dcc16824ce57e4991 /common/util.h
parentFix non-portable use of chmod in autogen.sh. (diff)
downloadgnupg-835698b72bc509565aad52b0753f1c56c1a8f062.tar.gz
gnupg-835698b72bc509565aad52b0753f1c56c1a8f062.zip
Do not use a broken ttyname.
* configure.ac (HAVE_BROKEN_TTYNAME): New ac_define set for Android systems. * common/util.h (gnupg_ttyname): New macro. Change all callers of ttyname to use this macro instead. (ttyname) [W32]: Rename to _gnupg_ttyname and use also if HAVE_BROKEN_TTYNAME is defined. * common/simple-pwquery.c (agent_send_all_options): Keep on using ttyname unless HAVE_BROKEN_TTYNAME is set. This is because this file may be used standalone.
Diffstat (limited to 'common/util.h')
-rw-r--r--common/util.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/common/util.h b/common/util.h
index 5ea7b819a..c8a008fd7 100644
--- a/common/util.h
+++ b/common/util.h
@@ -291,15 +291,21 @@ int gnupg_compare_version (const char *a, const char *b);
/*-- Simple replacement functions. */
-#ifndef HAVE_TTYNAME
+
+/* We use the gnupg_ttyname macro to be safe not to run into conflicts
+ which an extisting but broken ttyname. */
+#if !defined(HAVE_TTYNAME) || defined(HAVE_BROKEN_TTYNAME)
+# define gnupg_ttyname(n) _gnupg_ttyname ((n))
/* Systems without ttyname (W32) will merely return NULL. */
static inline char *
-ttyname (int fd)
+_gnupg_ttyname (int fd)
{
(void)fd;
return NULL;
}
-#endif /* !HAVE_TTYNAME */
+#else /*HAVE_TTYNAME*/
+# define gnupg_ttyname(n) ttyname ((n))
+#endif /*HAVE_TTYNAME */
#ifdef HAVE_W32CE_SYSTEM
#define getpid() GetCurrentProcessId ()