* readline/aclocal.m4: Use AC_TRY_LINK to check for mbstate_t.
* readline/complete.c (pwd.h): Guard with HAVE_PWD_H. (getpwent): Guard with HAVE_GETPWENT. (rl_username_completion_function): Guard use of getpwent. (endpwent): Likewise. * readline/config.h.in (HAVE_FCNTL): New macro. (HAVE_GETPWENT): Likewise. (HAVE_GETPWNAM): Likewise. (HAVE_GETPWUID): Likewise. (HAVE_KILL): Likewise. (HAVE_PWD_H): Likewise. * readline/configure: Regenerated. * readline/configure.in: Handle MinGW when cross compiling. Check for getpwnam, getpwent, getpwuid, kill, and pwd.h. * readline/display.c (rl_clear_screen): Treat Windows like DOS. (insert_some_chars): Likewise. (delete_chars): Likewise. * readline/shell.c (pwd.h): Guard with HAVE_PWD_H. (getpwuid): Guard with HAVE_GETPWUID. (sh_unset_nodelay_mode): Guard use of fnctl with HAVE_FNCTL_H. * readline/signals.c (rl_signal_handler): Don't use SIGALRM or SIGQUIT if not defined. Use "raise" if "kill" is not available. (rl_set_signals): Don't set handlers for SIGQUIT or SIGALRM if they are not defined. (rl_clear_signals): Likewise. * readline/tilde.c (pwd.h): Guard with HAVE_PWD_H. (getpwuid): Guard declaration with HAVE_GETPWUID. (getpwnam): Guard declaration with HAVE_GETPWNAM. (tilde_expand_word): Guard use of getpwnam with HAVE_GETPWNAM.
This commit is contained in:
parent
8b04f8b6ef
commit
430b783269
10 changed files with 1209 additions and 528 deletions
|
@ -1,3 +1,35 @@
|
||||||
|
2005-05-09 Mark Mitchell <mark@codesourcery.com>
|
||||||
|
|
||||||
|
* readline/aclocal.m4: Use AC_TRY_LINK to check for mbstate_t.
|
||||||
|
* readline/complete.c (pwd.h): Guard with HAVE_PWD_H.
|
||||||
|
(getpwent): Guard with HAVE_GETPWENT.
|
||||||
|
(rl_username_completion_function): Guard use of getpwent.
|
||||||
|
(endpwent): Likewise.
|
||||||
|
* readline/config.h.in (HAVE_FCNTL): New macro.
|
||||||
|
(HAVE_GETPWENT): Likewise.
|
||||||
|
(HAVE_GETPWNAM): Likewise.
|
||||||
|
(HAVE_GETPWUID): Likewise.
|
||||||
|
(HAVE_KILL): Likewise.
|
||||||
|
(HAVE_PWD_H): Likewise.
|
||||||
|
* readline/configure: Regenerated.
|
||||||
|
* readline/configure.in: Handle MinGW when cross compiling. Check for
|
||||||
|
getpwnam, getpwent, getpwuid, kill, and pwd.h.
|
||||||
|
* readline/display.c (rl_clear_screen): Treat Windows like DOS.
|
||||||
|
(insert_some_chars): Likewise.
|
||||||
|
(delete_chars): Likewise.
|
||||||
|
* readline/shell.c (pwd.h): Guard with HAVE_PWD_H.
|
||||||
|
(getpwuid): Guard with HAVE_GETPWUID.
|
||||||
|
(sh_unset_nodelay_mode): Guard use of fnctl with HAVE_FNCTL_H.
|
||||||
|
* readline/signals.c (rl_signal_handler): Don't use SIGALRM or
|
||||||
|
SIGQUIT if not defined. Use "raise" if "kill" is not available.
|
||||||
|
(rl_set_signals): Don't set handlers for SIGQUIT or SIGALRM if
|
||||||
|
they are not defined.
|
||||||
|
(rl_clear_signals): Likewise.
|
||||||
|
* readline/tilde.c (pwd.h): Guard with HAVE_PWD_H.
|
||||||
|
(getpwuid): Guard declaration with HAVE_GETPWUID.
|
||||||
|
(getpwnam): Guard declaration with HAVE_GETPWNAM.
|
||||||
|
(tilde_expand_word): Guard use of getpwnam with HAVE_GETPWNAM.
|
||||||
|
|
||||||
2004-02-19 Andrew Cagney <cagney@redhat.com>
|
2004-02-19 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* config.guess: Update from version 2003-06-12 to 2004-02-16.
|
* config.guess: Update from version 2003-06-12 to 2004-02-16.
|
||||||
|
|
6
readline/aclocal.m4
vendored
6
readline/aclocal.m4
vendored
|
@ -1663,9 +1663,9 @@ fi
|
||||||
AC_SUBST(WCWIDTH_OBJ)
|
AC_SUBST(WCWIDTH_OBJ)
|
||||||
|
|
||||||
AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
|
AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
|
||||||
[AC_TRY_RUN([
|
[AC_TRY_LINK(
|
||||||
#include <wchar.h>
|
[#include <wchar.h>],
|
||||||
int
|
[int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
mbstate_t ps;
|
mbstate_t ps;
|
||||||
|
|
|
@ -48,7 +48,9 @@
|
||||||
extern int errno;
|
extern int errno;
|
||||||
#endif /* !errno */
|
#endif /* !errno */
|
||||||
|
|
||||||
|
#ifdef HAVE_PWD_H
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "posixdir.h"
|
#include "posixdir.h"
|
||||||
#include "posixstat.h"
|
#include "posixstat.h"
|
||||||
|
@ -79,9 +81,10 @@ typedef int QSFUNC ();
|
||||||
|
|
||||||
/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
|
/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is
|
||||||
defined. */
|
defined. */
|
||||||
#if !defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)
|
#if defined(HAVE_GETPWENT) && \
|
||||||
|
(!defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE))
|
||||||
extern struct passwd *getpwent PARAMS((void));
|
extern struct passwd *getpwent PARAMS((void));
|
||||||
#endif /* !HAVE_GETPW_DECLS || _POSIX_SOURCE */
|
#endif /* defiend (HAVE_GETPWENT) && (!HAVE_GETPW_DECLS || _POSIX_SOURCE) */
|
||||||
|
|
||||||
/* If non-zero, then this is the address of a function to call when
|
/* If non-zero, then this is the address of a function to call when
|
||||||
completing a word would normally display the list of possible matches.
|
completing a word would normally display the list of possible matches.
|
||||||
|
@ -1662,16 +1665,20 @@ rl_username_completion_function (text, state)
|
||||||
setpwent ();
|
setpwent ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_GETPWENT
|
||||||
while (entry = getpwent ())
|
while (entry = getpwent ())
|
||||||
{
|
{
|
||||||
/* Null usernames should result in all users as possible completions. */
|
/* Null usernames should result in all users as possible completions. */
|
||||||
if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
|
if (namelen == 0 || (STREQN (username, entry->pw_name, namelen)))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (entry == 0)
|
if (entry == 0)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_GETPWENT
|
||||||
endpwent ();
|
endpwent ();
|
||||||
|
#endif
|
||||||
return ((char *)NULL);
|
return ((char *)NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -22,12 +22,18 @@
|
||||||
|
|
||||||
#undef VOID_SIGHANDLER
|
#undef VOID_SIGHANDLER
|
||||||
|
|
||||||
|
/* Define if you have the fcntl function. */
|
||||||
|
#undef HAVE_FCNTL
|
||||||
|
|
||||||
/* Define if you have the isascii function. */
|
/* Define if you have the isascii function. */
|
||||||
#undef HAVE_ISASCII
|
#undef HAVE_ISASCII
|
||||||
|
|
||||||
/* Define if you have the isxdigit function. */
|
/* Define if you have the isxdigit function. */
|
||||||
#undef HAVE_ISXDIGIT
|
#undef HAVE_ISXDIGIT
|
||||||
|
|
||||||
|
/* Define if you have the kill function. */
|
||||||
|
#undef HAVE_KILL
|
||||||
|
|
||||||
/* Define if you have the lstat function. */
|
/* Define if you have the lstat function. */
|
||||||
#undef HAVE_LSTAT
|
#undef HAVE_LSTAT
|
||||||
|
|
||||||
|
@ -43,6 +49,15 @@
|
||||||
/* Define if you have the putenv function. */
|
/* Define if you have the putenv function. */
|
||||||
#undef HAVE_PUTENV
|
#undef HAVE_PUTENV
|
||||||
|
|
||||||
|
/* Define if you have the getpwent function. */
|
||||||
|
#undef HAVE_GETPWENT
|
||||||
|
|
||||||
|
/* Define if you have the getpwnam function. */
|
||||||
|
#undef HAVE_GETPWNAM
|
||||||
|
|
||||||
|
/* Define if you have the getpwnam function. */
|
||||||
|
#undef HAVE_GETPWUID
|
||||||
|
|
||||||
/* Define if you have the select function. */
|
/* Define if you have the select function. */
|
||||||
#undef HAVE_SELECT
|
#undef HAVE_SELECT
|
||||||
|
|
||||||
|
@ -90,6 +105,9 @@
|
||||||
/* Define if you have the <ndir.h> header file. */
|
/* Define if you have the <ndir.h> header file. */
|
||||||
#undef HAVE_NDIR_H
|
#undef HAVE_NDIR_H
|
||||||
|
|
||||||
|
/* Define if you have the <pwd.h> header file. */
|
||||||
|
#undef HAVE_PWD_H
|
||||||
|
|
||||||
/* Define if you have the <stdarg.h> header file. */
|
/* Define if you have the <stdarg.h> header file. */
|
||||||
#undef HAVE_STDARG_H
|
#undef HAVE_STDARG_H
|
||||||
|
|
||||||
|
|
1599
readline/configure
vendored
1599
readline/configure
vendored
File diff suppressed because it is too large
Load diff
|
@ -56,16 +56,22 @@ if test "x$cross_compiling" = "xyes"; then
|
||||||
case "${host}" in
|
case "${host}" in
|
||||||
*-cygwin*)
|
*-cygwin*)
|
||||||
cross_cache=${srcdir}/cross-build/cygwin.cache
|
cross_cache=${srcdir}/cross-build/cygwin.cache
|
||||||
|
LOCAL_CFLAGS="$LOCAL_CFLAGS -I${srcdir}/../libtermcap"
|
||||||
|
;;
|
||||||
|
*-mingw32*)
|
||||||
|
cross_cache=${srcdir}/cross-build/mingw.cache
|
||||||
|
;;
|
||||||
|
*) echo "configure: cross-compiling for a non-cygwin target is not supported" >&2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test "x$cross_cache" != "x"; then
|
||||||
if test -r "${cross_cache}"; then
|
if test -r "${cross_cache}"; then
|
||||||
echo "loading cross-build cache file ${cross_cache}"
|
echo "loading cross-build cache file ${cross_cache}"
|
||||||
. ${cross_cache}
|
. ${cross_cache}
|
||||||
fi
|
fi
|
||||||
LOCAL_CFLAGS="$LOCAL_CFLAGS -I${srcdir}/../libtermcap"
|
|
||||||
unset cross_cache
|
unset cross_cache
|
||||||
;;
|
fi
|
||||||
*) echo "configure: cross-compiling for a non-cygwin target is not supported" >&2
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$cross_compiling" = "xyes"; then
|
if test "x$cross_compiling" = "xyes"; then
|
||||||
|
@ -112,14 +118,16 @@ AC_CHECK_TYPE(ssize_t, int)
|
||||||
AC_HEADER_STAT
|
AC_HEADER_STAT
|
||||||
AC_HEADER_DIRENT
|
AC_HEADER_DIRENT
|
||||||
|
|
||||||
AC_CHECK_FUNCS(lstat memmove putenv select setenv setlocale \
|
AC_CHECK_FUNCS(fcntl kill lstat memmove putenv select setenv setlocale \
|
||||||
strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit)
|
strcasecmp strpbrk tcgetattr vsnprintf isascii isxdigit \
|
||||||
|
getpwname getpwent getpwuid)
|
||||||
|
|
||||||
AC_FUNC_STRCOLL
|
AC_FUNC_STRCOLL
|
||||||
|
|
||||||
AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
|
AC_CHECK_HEADERS(unistd.h stdlib.h varargs.h stdarg.h string.h strings.h \
|
||||||
limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
|
limits.h sys/ptem.h sys/pte.h sys/stream.h sys/select.h \
|
||||||
termcap.h termios.h termio.h sys/file.h locale.h memory.h )
|
termcap.h termios.h termio.h sys/file.h locale.h memory.h \
|
||||||
|
pwd.h)
|
||||||
|
|
||||||
BASH_SYS_SIGNAL_VINTAGE
|
BASH_SYS_SIGNAL_VINTAGE
|
||||||
BASH_SYS_REINSTALL_SIGHANDLERS
|
BASH_SYS_REINSTALL_SIGHANDLERS
|
||||||
|
|
|
@ -1907,9 +1907,9 @@ insert_some_chars (string, count, col)
|
||||||
char *string;
|
char *string;
|
||||||
int count, col;
|
int count, col;
|
||||||
{
|
{
|
||||||
#ifdef __MSDOS__
|
#if defined(__MSDOS__) || defined(__MINGW32__)
|
||||||
_rl_output_some_chars (string, count);
|
_rl_output_some_chars (string, count);
|
||||||
#else /* !__MSDOS__ */
|
#else /* !__MSDOS__ && !__MINGW32__ */
|
||||||
/* DEBUGGING */
|
/* DEBUGGING */
|
||||||
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
if (MB_CUR_MAX == 1 || rl_byte_oriented)
|
||||||
if (count != col)
|
if (count != col)
|
||||||
|
@ -1959,7 +1959,7 @@ delete_chars (count)
|
||||||
if (count > _rl_screenwidth) /* XXX */
|
if (count > _rl_screenwidth) /* XXX */
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifndef __MSDOS__
|
#if !defined(__MSDOS__) && !defined(__MINGW32__)
|
||||||
if (_rl_term_DC && *_rl_term_DC)
|
if (_rl_term_DC && *_rl_term_DC)
|
||||||
{
|
{
|
||||||
char *buffer;
|
char *buffer;
|
||||||
|
@ -1972,7 +1972,7 @@ delete_chars (count)
|
||||||
while (count--)
|
while (count--)
|
||||||
tputs (_rl_term_dc, 1, _rl_output_character_function);
|
tputs (_rl_term_dc, 1, _rl_output_character_function);
|
||||||
}
|
}
|
||||||
#endif /* !__MSDOS__ */
|
#endif /* !__MSDOS__ && !__MINGW32__ */
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -50,7 +50,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#ifdef HAVE_PWD_H
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -156,9 +158,11 @@ sh_get_home_dir ()
|
||||||
struct passwd *entry;
|
struct passwd *entry;
|
||||||
|
|
||||||
home_dir = (char *)NULL;
|
home_dir = (char *)NULL;
|
||||||
|
#ifdef HAVE_GETPWUID
|
||||||
entry = getpwuid (getuid ());
|
entry = getpwuid (getuid ());
|
||||||
if (entry)
|
if (entry)
|
||||||
home_dir = entry->pw_dir;
|
home_dir = entry->pw_dir;
|
||||||
|
#endif
|
||||||
return (home_dir);
|
return (home_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,6 +176,7 @@ int
|
||||||
sh_unset_nodelay_mode (fd)
|
sh_unset_nodelay_mode (fd)
|
||||||
int fd;
|
int fd;
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_FNCTL
|
||||||
int flags, bflags;
|
int flags, bflags;
|
||||||
|
|
||||||
if ((flags = fcntl (fd, F_GETFL, 0)) < 0)
|
if ((flags = fcntl (fd, F_GETFL, 0)) < 0)
|
||||||
|
@ -192,6 +197,7 @@ sh_unset_nodelay_mode (fd)
|
||||||
flags &= ~bflags;
|
flags &= ~bflags;
|
||||||
return (fcntl (fd, F_SETFL, flags));
|
return (fcntl (fd, F_SETFL, flags));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,11 @@ rl_signal_handler (sig)
|
||||||
#if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)
|
#if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)
|
||||||
/* Since the signal will not be blocked while we are in the signal
|
/* Since the signal will not be blocked while we are in the signal
|
||||||
handler, ignore it until rl_clear_signals resets the catcher. */
|
handler, ignore it until rl_clear_signals resets the catcher. */
|
||||||
if (sig == SIGINT || sig == SIGALRM)
|
if (sig == SIGINT
|
||||||
|
#ifdef SIGALRM
|
||||||
|
|| sig == SIGALRM
|
||||||
|
#endif
|
||||||
|
)
|
||||||
rl_set_sighandler (sig, SIG_IGN, &dummy_cxt);
|
rl_set_sighandler (sig, SIG_IGN, &dummy_cxt);
|
||||||
#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */
|
#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS */
|
||||||
|
|
||||||
|
@ -142,9 +146,13 @@ rl_signal_handler (sig)
|
||||||
case SIGTTOU:
|
case SIGTTOU:
|
||||||
case SIGTTIN:
|
case SIGTTIN:
|
||||||
#endif /* SIGTSTP */
|
#endif /* SIGTSTP */
|
||||||
|
#ifdef SIGALRM
|
||||||
case SIGALRM:
|
case SIGALRM:
|
||||||
|
#endif
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
|
#ifdef SIGQUIT
|
||||||
case SIGQUIT:
|
case SIGQUIT:
|
||||||
|
#endif
|
||||||
rl_cleanup_after_signal ();
|
rl_cleanup_after_signal ();
|
||||||
|
|
||||||
#if defined (HAVE_POSIX_SIGNALS)
|
#if defined (HAVE_POSIX_SIGNALS)
|
||||||
|
@ -160,7 +168,14 @@ rl_signal_handler (sig)
|
||||||
signal (sig, SIG_ACK);
|
signal (sig, SIG_ACK);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* If we have the POSIX kill function, use it; otherwise, fall
|
||||||
|
back to the ISO C raise function. (Windows is an example of
|
||||||
|
a platform that has raise, but not kill.) */
|
||||||
|
#ifdef HAVE_KILL
|
||||||
kill (getpid (), sig);
|
kill (getpid (), sig);
|
||||||
|
#else
|
||||||
|
raise (sig);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Let the signal that we just sent through. */
|
/* Let the signal that we just sent through. */
|
||||||
#if defined (HAVE_POSIX_SIGNALS)
|
#if defined (HAVE_POSIX_SIGNALS)
|
||||||
|
@ -277,8 +292,11 @@ rl_set_signals ()
|
||||||
{
|
{
|
||||||
rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
|
rl_maybe_set_sighandler (SIGINT, rl_signal_handler, &old_int);
|
||||||
rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
|
rl_maybe_set_sighandler (SIGTERM, rl_signal_handler, &old_term);
|
||||||
|
#ifdef SIGQUIT
|
||||||
rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
|
rl_maybe_set_sighandler (SIGQUIT, rl_signal_handler, &old_quit);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SIGALRM
|
||||||
oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm);
|
oh = rl_set_sighandler (SIGALRM, rl_signal_handler, &old_alrm);
|
||||||
if (oh == (SigHandler *)SIG_IGN)
|
if (oh == (SigHandler *)SIG_IGN)
|
||||||
rl_sigaction (SIGALRM, &old_alrm, &dummy);
|
rl_sigaction (SIGALRM, &old_alrm, &dummy);
|
||||||
|
@ -290,6 +308,7 @@ rl_set_signals ()
|
||||||
if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART))
|
if (oh != (SigHandler *)SIG_DFL && (old_alrm.sa_flags & SA_RESTART))
|
||||||
rl_sigaction (SIGALRM, &old_alrm, &dummy);
|
rl_sigaction (SIGALRM, &old_alrm, &dummy);
|
||||||
#endif /* HAVE_POSIX_SIGNALS */
|
#endif /* HAVE_POSIX_SIGNALS */
|
||||||
|
#endif /* SIGALRM */
|
||||||
|
|
||||||
#if defined (SIGTSTP)
|
#if defined (SIGTSTP)
|
||||||
rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp);
|
rl_maybe_set_sighandler (SIGTSTP, rl_signal_handler, &old_tstp);
|
||||||
|
@ -328,8 +347,12 @@ rl_clear_signals ()
|
||||||
|
|
||||||
rl_sigaction (SIGINT, &old_int, &dummy);
|
rl_sigaction (SIGINT, &old_int, &dummy);
|
||||||
rl_sigaction (SIGTERM, &old_term, &dummy);
|
rl_sigaction (SIGTERM, &old_term, &dummy);
|
||||||
|
#ifdef SIGQUIT
|
||||||
rl_sigaction (SIGQUIT, &old_quit, &dummy);
|
rl_sigaction (SIGQUIT, &old_quit, &dummy);
|
||||||
|
#endif
|
||||||
|
#ifdef SIGALRM
|
||||||
rl_sigaction (SIGALRM, &old_alrm, &dummy);
|
rl_sigaction (SIGALRM, &old_alrm, &dummy);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined (SIGTSTP)
|
#if defined (SIGTSTP)
|
||||||
rl_sigaction (SIGTSTP, &old_tstp, &dummy);
|
rl_sigaction (SIGTSTP, &old_tstp, &dummy);
|
||||||
|
|
|
@ -43,7 +43,9 @@
|
||||||
#endif /* HAVE_STDLIB_H */
|
#endif /* HAVE_STDLIB_H */
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#ifdef HAVE_PWD_H
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
|
#endif /* HAVE_PWD_H */
|
||||||
|
|
||||||
#include "tilde.h"
|
#include "tilde.h"
|
||||||
|
|
||||||
|
@ -53,10 +55,10 @@ static void *xmalloc (), *xrealloc ();
|
||||||
# include "xmalloc.h"
|
# include "xmalloc.h"
|
||||||
#endif /* TEST || STATIC_MALLOC */
|
#endif /* TEST || STATIC_MALLOC */
|
||||||
|
|
||||||
#if !defined (HAVE_GETPW_DECLS)
|
#if defined (HAVE_GETPWNAM) && !defined (HAVE_GETPW_DECLS)
|
||||||
extern struct passwd *getpwuid PARAMS((uid_t));
|
extern struct passwd *getpwuid PARAMS((uid_t));
|
||||||
extern struct passwd *getpwnam PARAMS((const char *));
|
extern struct passwd *getpwnam PARAMS((const char *));
|
||||||
#endif /* !HAVE_GETPW_DECLS */
|
#endif /* defined (HAVE_GETPWNAM) && !HAVE_GETPW_DECLS */
|
||||||
|
|
||||||
#if !defined (savestring)
|
#if !defined (savestring)
|
||||||
#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
|
#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
|
||||||
|
@ -347,6 +349,7 @@ tilde_expand_word (filename)
|
||||||
/* No preexpansion hook, or the preexpansion hook failed. Look in the
|
/* No preexpansion hook, or the preexpansion hook failed. Look in the
|
||||||
password database. */
|
password database. */
|
||||||
dirname = (char *)NULL;
|
dirname = (char *)NULL;
|
||||||
|
#ifdef HAVE_GETPWNAM
|
||||||
user_entry = getpwnam (username);
|
user_entry = getpwnam (username);
|
||||||
if (user_entry == 0)
|
if (user_entry == 0)
|
||||||
{
|
{
|
||||||
|
@ -374,6 +377,7 @@ tilde_expand_word (filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
endpwent ();
|
endpwent ();
|
||||||
|
#endif
|
||||||
return (dirname);
|
return (dirname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue