2004-12-11 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Replace ttyname_r if it doesn't exist (and warn in that case). gpgme/ 2004-12-11 Marcus Brinkmann <marcus@g10code.de> * util.h [HAVE_CONFIG_H && HAVE_TTYNAME_R] (ttyname_r): Define prototype. * ttyname_r.c: New file.
This commit is contained in:
parent
f355692a65
commit
04be3c316c
@ -1,3 +1,8 @@
|
|||||||
|
2004-12-11 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
|
* configure.ac: Replace ttyname_r if it doesn't exist (and warn in
|
||||||
|
that case).
|
||||||
|
|
||||||
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
|
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* README: Refer to COPYING.LESSER and "each file" instead of
|
* README: Refer to COPYING.LESSER and "each file" instead of
|
||||||
|
@ -171,6 +171,15 @@ if test "$ac_cv_func_vasprintf" != yes; then
|
|||||||
GNUPG_CHECK_VA_COPY
|
GNUPG_CHECK_VA_COPY
|
||||||
fi
|
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().
|
# Try to find a thread-safe version of getenv().
|
||||||
have_thread_safe_getenv=no
|
have_thread_safe_getenv=no
|
||||||
jm_GLIBC21
|
jm_GLIBC21
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2004-12-11 Marcus Brinkmann <marcus@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@g10code.de>
|
2004-12-07 Marcus Brinkmann <marcus@g10code.de>
|
||||||
|
|
||||||
* putc_unlocked.c, funopen.c: I just claim copyright on these
|
* putc_unlocked.c, funopen.c: I just claim copyright on these
|
||||||
|
43
gpgme/ttyname_r.c
Normal file
43
gpgme/ttyname_r.c
Normal file
@ -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;
|
||||||
|
}
|
@ -44,6 +44,10 @@ char *stpcpy (char *a, const char *b);
|
|||||||
int vasprintf (char **result, const char *format, va_list args);
|
int vasprintf (char **result, const char *format, va_list args);
|
||||||
int asprintf (char **result, const char *format, ...);
|
int asprintf (char **result, const char *format, ...);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_TTYNAME_R
|
||||||
|
int ttyname_r (int fd, char *buf, size_t buflen);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user