diff options
author | Chet Ramey <chet.ramey@case.edu> | 2011-12-03 13:48:19 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2011-12-03 13:48:19 -0500 |
commit | fd3925f15afde73a90adbcce594403aa77f7fe26 (patch) | |
tree | d747bcb667e606b8c813d5c80f2df01f3b14409c | |
parent | da71998238c15805e1c90c0940618ba776fa2934 (diff) | |
download | bash-fd3925f15afde73a90adbcce594403aa77f7fe26.tar.gz |
commit bash-20050707 snapshot
-rw-r--r-- | CWRU/CWRU.chlog | 45 | ||||
-rw-r--r-- | CWRU/CWRU.chlog~ | 46 | ||||
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | Makefile.in~ | 8 | ||||
-rw-r--r-- | autom4te.cache/output.0 | 17 | ||||
-rw-r--r-- | autom4te.cache/requests | 162 | ||||
-rw-r--r-- | autom4te.cache/traces.0 | 1657 | ||||
-rw-r--r-- | builtins/psize.c | 3 | ||||
-rw-r--r-- | command.h | 1 | ||||
-rw-r--r-- | command.h~ | 2 | ||||
-rwxr-xr-x | configure | 17 | ||||
-rw-r--r-- | configure.in | 14 | ||||
-rw-r--r-- | configure.in~ | 13 | ||||
-rwxr-xr-x | examples/misc/aliasconv.bash | 2 | ||||
-rwxr-xr-x | examples/misc/aliasconv.bash~ | 42 | ||||
-rw-r--r-- | input.c | 8 | ||||
-rw-r--r-- | input.c~ | 12 | ||||
-rw-r--r-- | make_cmd.c | 1 | ||||
-rw-r--r-- | parse.y | 25 | ||||
-rw-r--r-- | parse.y.old | 4891 | ||||
-rw-r--r-- | parse.y~ | 11 | ||||
-rw-r--r-- | shell.c | 12 | ||||
-rw-r--r-- | variables.c | 12 |
23 files changed, 6041 insertions, 962 deletions
diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 6bb4fa3e..706d53ef 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -11725,5 +11725,50 @@ lib/readline/rltty.c NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at least) + 7/7 + --- +command.h + - add a `flags' member to the PATTERN_LIST structure + +make_cmd.c + - intialize the `flags' member of a PATTERN_LIST when it's created + +builtins/psize.c + - protect extern declaration of errno with usual #ifdef errno + +configure.in, variables.c + - changes for QNX 6.x + + 7/9 + --- +parse.y + - fix parse_matched_pair to handle single and double quoted strings + inside old-style command substitution (``) since they can each + quote the ` and embedded $-expansions. Report by Eric Blake + <ebb9@byu.net> + +{configure,Makefile}.in + - TILDE_LIB is now substituted into Makefile by configure +configure.in + - if configuring --with-installed-readline on cygwin, set TILDE_LIB + to the empty string to avoid multiply-defined symbols. Cygwin + doesn't allow undefined symbols in dynamic libraries. Report by + Eric Blake <ebb9@byu.net> + 7/11 + ---- +input.c + - in duplicate_buffered_stream, don't call free_buffered_stream if the + two buffered streams share the same b_buffer object (e.g., if they + had already been duplicated with a previous call). Fixes Debian bug + reported by eero17@bigfoot.com + + 7/12 + ---- +shell.c + - make set_shell_name more resistant to a NULL argument + - in bind_args, use < instead of != when counting the arguments and + making the arg list + - in main(), make sure arg_index is not initialized to a value greater + than argc diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~ index 5f65d388..eeb60de4 100644 --- a/CWRU/CWRU.chlog~ +++ b/CWRU/CWRU.chlog~ @@ -11714,10 +11714,52 @@ lib/readline/input.c lib/readline/readline.c - add a few key bindings for the arrow keys on mingw +lib/readline/rldefs.h + - if on mingw, define NO_TTY_DRIVER + lib/readline/rltty.c - compile in the stub functions for _rl_{disable,restore}_tty_signals if on mingw - compile in stub function for rl_restart_output on mingw + - make sure enough functions and macros are defined to compile if + NO_TTY_DRIVER is defined (lightly tested - builds on MacOS X, at + least) -lib/readline/rldefs.h - - if on mingw, define NO_TTY_DRIVER + 7/7 + --- +command.h + - add a `flags' member to the PATTERN_LIST structure + +make_cmd.c + - intialize the `flags' member of a PATTERN_LIST when it's created + +builtins/psize.c + - protect extern declaration of errno with usual #ifdef errno + +configure.in, variables.c + - changes for QNX 6.x + + 7/9 + --- +parse.y + - fix parse_matched_pair to handle single and double quoted strings + inside old-style command substitution (``) since they can each + quote the ` and embedded $-expansions. Report by Eric Blake + <ebb9@byu.net> + +{configure,Makefile}.in + - TILDE_LIB is now substituted into Makefile by configure + +configure.in + - if configuring --with-installed-readline on cygwin, set TILDE_LIB + to the empty string to avoid multiply-defined symbols. Cygwin + doesn't allow undefined symbols in dynamic libraries. Report by + Eric Blake <ebb9@byu.net> + + 7/11 + ---- +input.c + - in duplicate_buffered_stream, don't call free_buffered_stream if the + two buffered streams share the same b_buffer object (e.g., if they + had already been duplicated with a previous call). Fixes bug + reported by eero17@bigfoot.com diff --git a/Makefile.in b/Makefile.in index 7b3ff490..734e2e89 100644 --- a/Makefile.in +++ b/Makefile.in @@ -311,7 +311,7 @@ TILDE_LIBSRC = $(LIBSRC)/tilde TILDE_LIBDIR = $(dot)/$(LIBSUBDIR)/tilde TILDE_ABSSRC = ${topdir}/$(TILDE_LIBDIR) -TILDE_LIB = -ltilde +TILDE_LIB = @TILDE_LIB@ TILDE_LIBRARY = $(TILDE_LIBDIR)/libtilde.a TILDE_LDFLAGS = -L$(TILDE_LIBDIR) TILDE_DEP = $(TILDE_LIBRARY) diff --git a/Makefile.in~ b/Makefile.in~ index f41a138b..7b3ff490 100644 --- a/Makefile.in~ +++ b/Makefile.in~ @@ -1,4 +1,4 @@ -# Makefile for bash-3.1, version 2.156 +# Makefile for bash-3.1, version 2.157 # # Copyright (C) 1996-2005 Free Software Foundation, Inc. @@ -730,7 +730,7 @@ LIB_SUBDIRS = ${RL_LIBDIR} ${HIST_LIBDIR} ${TERM_LIBDIR} ${GLOB_LIBDIR} \ basic-clean: $(RM) $(OBJECTS) $(Program) bashbug - $(RM) .build .made version.h pathnames.h + $(RM) .build .made version.h clean: basic-clean ( cd $(DOCDIR) && $(MAKE) $(MFLAGS) $@ ) @@ -760,7 +760,7 @@ distclean: basic-clean maybe-clean done -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) $(RM) $(CREATED_CONFIGURE) tags TAGS - $(RM) $(CREATED_SUPPORT) Makefile $(CREATED_MAKEFILES) + $(RM) $(CREATED_SUPPORT) Makefile $(CREATED_MAKEFILES) pathnames.h maintainer-clean: basic-clean @echo This command is intended for maintainers to use. @@ -774,7 +774,7 @@ maintainer-clean: basic-clean done -( cd $(PO_DIR) ; $(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) $@ ) $(RM) $(CREATED_CONFIGURE) $(CREATED_MAKEFILES) - $(RM) $(CREATED_SUPPORT) Makefile + $(RM) $(CREATED_SUPPORT) Makefile pathnames.h maybe-clean: -if test "X$(topdir)" != "X$(BUILD_DIR)" ; then \ diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0 index 2aac5bfe..e3e91ed2 100644 --- a/autom4te.cache/output.0 +++ b/autom4te.cache/output.0 @@ -1,5 +1,5 @@ @%:@! /bin/sh -@%:@ From configure.in for Bash 3.1, version 3.175, from autoconf version AC_ACVERSION. +@%:@ From configure.in for Bash 3.1, version 3.177, from autoconf version AC_ACVERSION. @%:@ Guess values for system-dependent variables and create Makefiles. @%:@ Generated by GNU Autoconf 2.59 for bash 3.1-devel. @%:@ @@ -312,7 +312,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EMACS lispdir DEBUGGER_START_FILE TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CROSS_COMPILE SIGNAMES_H CC_FOR_BUILD STATIC_LD CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB YACC SET_MAKE MAKE_SHELL SIZE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIB@&t@OBJS INTL_DEP INTL_INC LIBINTL_H SIGLIST_O TERMCAP_LIB TERMCAP_DEP JOBS_O SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS PROFILE_FLAGS incdir BUILD_DIR ARFLAGS BASHVERS RELSTATUS DEBUG MALLOC_DEBUG LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EMACS lispdir DEBUGGER_START_FILE TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CROSS_COMPILE SIGNAMES_H CC_FOR_BUILD STATIC_LD CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR TILDE_LIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB YACC SET_MAKE MAKE_SHELL SIZE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIB@&t@OBJS INTL_DEP INTL_INC LIBINTL_H SIGLIST_O TERMCAP_LIB TERMCAP_DEP JOBS_O SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS PROFILE_FLAGS incdir BUILD_DIR ARFLAGS BASHVERS RELSTATUS DEBUG MALLOC_DEBUG LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1509,7 +1509,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X) *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X) *-dgux*) opt_bash_malloc=no ;; # DG/UX machines -*-qnx*) opt_bash_malloc=no ;; # QNX 4.2 +*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x *-machten4) opt_bash_malloc=no ;; # MachTen 4.x *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins *-beos*) opt_bash_malloc=no ;; # they say it's suitable @@ -4838,6 +4838,7 @@ echo "$as_me: WARNING: using private bash version" >&2;} esac fi +TILDE_LIB=-ltilde if test $opt_readline = yes; then cat >>confdefs.h <<\_ACEOF @%:@define READLINE 1 @@ -4854,10 +4855,15 @@ _ACEOF esac READLINE_DEP= READLINE_LIB=-lreadline + # section for OS versions that don't allow unresolved symbols + # to be compiled into dynamic libraries. + case "$host_os" in + cygwin*) TILDE_LIB= ;; + esac else RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older version of + # section for OS versions that ship an older/broken version of # readline as a standard dynamic library and don't allow a # static version specified as -llibname to override the # dynamic version @@ -4921,6 +4927,7 @@ fi + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -26738,6 +26745,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading _ACEOF ;; esac ;; +*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; @@ -27536,6 +27544,7 @@ s,@RL_INCLUDE@,$RL_INCLUDE,;t t s,@HISTORY_LIB@,$HISTORY_LIB,;t t s,@HISTORY_DEP@,$HISTORY_DEP,;t t s,@HIST_LIBDIR@,$HIST_LIBDIR,;t t +s,@TILDE_LIB@,$TILDE_LIB,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t diff --git a/autom4te.cache/requests b/autom4te.cache/requests index 812ed7e9..8bf5956b 100644 --- a/autom4te.cache/requests +++ b/autom4te.cache/requests @@ -15,101 +15,101 @@ 'configure.in' ], { - 'AC_HEADER_STDC' => 1, - 'AC_FUNC_ERROR_AT_LINE' => 1, - 'sinclude' => 1, - 'AC_FUNC_SETVBUF_REVERSED' => 1, - 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1, - 'AC_PROG_LN_S' => 1, - 'AC_TYPE_MODE_T' => 1, - 'AC_C_VOLATILE' => 1, - 'AC_HEADER_MAJOR' => 1, + 'm4_pattern_forbid' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_PROG_LEX' => 1, - 'AC_PATH_X' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_TYPE_UID_T' => 1, - 'AC_HEADER_SYS_WAIT' => 1, 'AC_TYPE_OFF_T' => 1, - 'AC_CHECK_FUNCS' => 1, - 'AC_FUNC_SELECT_ARGTYPES' => 1, - 'AC_STRUCT_ST_BLOCKS' => 1, + 'AC_C_VOLATILE' => 1, + 'AC_FUNC_CLOSEDIR_VOID' => 1, 'AC_REPLACE_FNMATCH' => 1, - 'AC_INIT' => 1, - 'AC_FUNC_STRTOD' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AC_HEADER_TIME' => 1, - 'AC_FUNC_ALLOCA' => 1, - 'AC_FUNC_OBSTACK' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AM_INIT_AUTOMAKE' => 1, 'AC_PROG_LIBTOOL' => 1, - 'AC_C_INLINE' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_FUNC_STRERROR_R' => 1, - 'AC_PROG_GCC_TRADITIONAL' => 1, + 'AC_FUNC_STAT' => 1, + 'AC_FUNC_WAIT3' => 1, + 'AC_HEADER_TIME' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AC_STRUCT_TM' => 1, + 'AC_FUNC_LSTAT' => 1, + 'AC_FUNC_GETMNTENT' => 1, + 'AC_TYPE_MODE_T' => 1, 'AC_CHECK_HEADERS' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_PROG_RANLIB' => 1, - 'AC_FUNC_MEMCMP' => 1, - 'AC_PROG_INSTALL' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_PROG_CPP' => 1, - 'm4_pattern_allow' => 1, - 'AC_C_CONST' => 1, + 'AC_FUNC_STRTOD' => 1, + 'AC_FUNC_STRNLEN' => 1, + 'm4_sinclude' => 1, + 'AC_PROG_CXX' => 1, + 'AC_PATH_X' => 1, + 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1, + 'AC_PROG_AWK' => 1, + '_m4_warn' => 1, + 'AC_HEADER_STDC' => 1, + 'AC_HEADER_MAJOR' => 1, + 'AC_FUNC_ERROR_AT_LINE' => 1, + 'AC_PROG_GCC_TRADITIONAL' => 1, + 'AC_LIBSOURCE' => 1, + 'AC_FUNC_MBRTOWC' => 1, + 'AC_STRUCT_ST_BLOCKS' => 1, + 'AC_TYPE_SIGNAL' => 1, + 'AC_TYPE_UID_T' => 1, + 'AC_PROG_MAKE_SET' => 1, 'AC_CONFIG_AUX_DIR' => 1, + 'm4_pattern_allow' => 1, + 'sinclude' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_HEADER_STAT' => 1, - 'AC_FUNC_MMAP' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_FUNC_STRNLEN' => 1, - 'AC_SUBST' => 1, - 'AH_OUTPUT' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_FUNC_FSEEKO' => 1, + 'AC_FUNC_STRERROR_R' => 1, 'AC_PROG_CC' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_FUNC_MALLOC' => 1, - 'AC_FUNC_GETLOADAVG' => 1, - 'AC_STRUCT_TM' => 1, - 'AC_PROG_AWK' => 1, - 'AC_HEADER_DIRENT' => 1, - 'include' => 1, - 'AC_CHECK_TYPES' => 1, - 'AC_FUNC_VPRINTF' => 1, - 'AC_FUNC_CLOSEDIR_VOID' => 1, - 'AC_FUNC_WAIT3' => 1, - 'AM_MAINTAINER_MODE' => 1, 'AC_FUNC_FORK' => 1, - 'AC_TYPE_SIZE_T' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AC_FUNC_CHOWN' => 1, + 'AC_DECL_SYS_SIGLIST' => 1, + 'AC_FUNC_VPRINTF' => 1, + 'AC_FUNC_STRCOLL' => 1, + 'AC_PROG_YACC' => 1, + 'AC_INIT' => 1, 'AC_STRUCT_TIMEZONE' => 1, + 'AC_FUNC_CHOWN' => 1, + 'AC_FUNC_ALLOCA' => 1, + 'AC_SUBST' => 1, 'AC_FUNC_GETPGRP' => 1, - 'AC_FUNC_REALLOC' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'AC_TYPE_SIGNAL' => 1, - 'AC_FUNC_LSTAT' => 1, + 'AC_CANONICAL_HOST' => 1, + 'AC_PROG_RANLIB' => 1, + 'AC_FUNC_SETPGRP' => 1, + 'AM_INIT_AUTOMAKE' => 1, 'AC_CONFIG_SUBDIRS' => 1, - 'AC_FUNC_GETMNTENT' => 1, - 'AC_PROG_CXX' => 1, - 'AC_FUNC_GETGROUPS' => 1, + 'AC_FUNC_MMAP' => 1, + 'AC_FUNC_REALLOC' => 1, + 'AC_TYPE_SIZE_T' => 1, + 'AC_CONFIG_LINKS' => 1, + 'AC_CHECK_TYPES' => 1, + 'AC_CHECK_MEMBERS' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AC_FUNC_UTIME_NULL' => 1, + 'AC_FUNC_SELECT_ARGTYPES' => 1, + 'AC_FUNC_STRFTIME' => 1, + 'AC_HEADER_STAT' => 1, + 'AC_C_INLINE' => 1, + 'AC_PROG_CPP' => 1, + 'AC_C_CONST' => 1, + 'AC_TYPE_PID_T' => 1, + 'AC_PROG_LEX' => 1, 'AC_CONFIG_FILES' => 1, - 'AC_PROG_YACC' => 1, + 'include' => 1, + 'AC_FUNC_SETVBUF_REVERSED' => 1, + 'AC_PROG_INSTALL' => 1, 'AM_GNU_GETTEXT' => 1, - 'AC_FUNC_STRCOLL' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'm4_sinclude' => 1, - '_m4_warn' => 1, - 'AC_CHECK_MEMBERS' => 1, - 'AC_FUNC_STAT' => 1, - 'AC_FUNC_MBRTOWC' => 1, - 'm4_include' => 1 + 'AC_CHECK_LIB' => 1, + 'AC_FUNC_OBSTACK' => 1, + 'AC_FUNC_MALLOC' => 1, + 'AC_FUNC_GETGROUPS' => 1, + 'AC_FUNC_GETLOADAVG' => 1, + 'AH_OUTPUT' => 1, + 'AC_FUNC_FSEEKO' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AC_FUNC_MKTIME' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AC_HEADER_SYS_WAIT' => 1, + 'AC_PROG_LN_S' => 1, + 'AC_FUNC_MEMCMP' => 1, + 'm4_include' => 1, + 'AC_HEADER_DIRENT' => 1, + 'AC_CHECK_FUNCS' => 1 } ], 'Autom4te::Request' ) ); diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0 index e6766ac4..0bdfa77b 100644 --- a/autom4te.cache/traces.0 +++ b/autom4te.cache/traces.0 @@ -341,1171 +341,1172 @@ m4trace:configure.in:480: -1- AH_OUTPUT([RL_VERSION_MINOR], [/* minor version of m4trace:configure.in:480: -1- AC_SUBST([RL_VERSION]) m4trace:configure.in:480: -1- AC_SUBST([RL_MAJOR]) m4trace:configure.in:480: -1- AC_SUBST([RL_MINOR]) -m4trace:configure.in:492: -1- AC_DEFINE_TRACE_LITERAL([READLINE]) -m4trace:configure.in:522: -1- AC_DEFINE_TRACE_LITERAL([HISTORY]) -m4trace:configure.in:525: -1- AC_DEFINE_TRACE_LITERAL([BANG_HISTORY]) -m4trace:configure.in:555: -1- AC_SUBST([READLINE_LIB]) -m4trace:configure.in:556: -1- AC_SUBST([READLINE_DEP]) -m4trace:configure.in:557: -1- AC_SUBST([RL_LIBDIR]) -m4trace:configure.in:558: -1- AC_SUBST([RL_INCLUDEDIR]) -m4trace:configure.in:559: -1- AC_SUBST([RL_INCLUDE]) -m4trace:configure.in:560: -1- AC_SUBST([HISTORY_LIB]) -m4trace:configure.in:561: -1- AC_SUBST([HISTORY_DEP]) -m4trace:configure.in:562: -1- AC_SUBST([HIST_LIBDIR]) -m4trace:configure.in:567: -1- AC_PROG_INSTALL -m4trace:configure.in:567: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.in:567: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.in:567: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.in:568: -1- AC_SUBST([AR]) -m4trace:configure.in:572: -1- AC_PROG_RANLIB -m4trace:configure.in:572: -1- AC_SUBST([RANLIB]) -m4trace:configure.in:572: -1- AC_SUBST([ac_ct_RANLIB]) -m4trace:configure.in:573: -1- AC_PROG_YACC -m4trace:configure.in:573: -1- AC_SUBST([YACC]) -m4trace:configure.in:574: -1- AC_PROG_MAKE_SET -m4trace:configure.in:574: -1- AC_SUBST([SET_MAKE]) -m4trace:configure.in:580: -1- AC_SUBST([MAKE_SHELL]) -m4trace:configure.in:602: -1- AC_SUBST([SIZE]) -m4trace:configure.in:605: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) -m4trace:configure.in:608: -1- AC_C_CONST -m4trace:configure.in:608: -1- AC_DEFINE_TRACE_LITERAL([const]) -m4trace:configure.in:608: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ +m4trace:configure.in:493: -1- AC_DEFINE_TRACE_LITERAL([READLINE]) +m4trace:configure.in:528: -1- AC_DEFINE_TRACE_LITERAL([HISTORY]) +m4trace:configure.in:531: -1- AC_DEFINE_TRACE_LITERAL([BANG_HISTORY]) +m4trace:configure.in:561: -1- AC_SUBST([READLINE_LIB]) +m4trace:configure.in:562: -1- AC_SUBST([READLINE_DEP]) +m4trace:configure.in:563: -1- AC_SUBST([RL_LIBDIR]) +m4trace:configure.in:564: -1- AC_SUBST([RL_INCLUDEDIR]) +m4trace:configure.in:565: -1- AC_SUBST([RL_INCLUDE]) +m4trace:configure.in:566: -1- AC_SUBST([HISTORY_LIB]) +m4trace:configure.in:567: -1- AC_SUBST([HISTORY_DEP]) +m4trace:configure.in:568: -1- AC_SUBST([HIST_LIBDIR]) +m4trace:configure.in:569: -1- AC_SUBST([TILDE_LIB]) +m4trace:configure.in:574: -1- AC_PROG_INSTALL +m4trace:configure.in:574: -1- AC_SUBST([INSTALL_PROGRAM]) +m4trace:configure.in:574: -1- AC_SUBST([INSTALL_SCRIPT]) +m4trace:configure.in:574: -1- AC_SUBST([INSTALL_DATA]) +m4trace:configure.in:575: -1- AC_SUBST([AR]) +m4trace:configure.in:579: -1- AC_PROG_RANLIB +m4trace:configure.in:579: -1- AC_SUBST([RANLIB]) +m4trace:configure.in:579: -1- AC_SUBST([ac_ct_RANLIB]) +m4trace:configure.in:580: -1- AC_PROG_YACC +m4trace:configure.in:580: -1- AC_SUBST([YACC]) +m4trace:configure.in:581: -1- AC_PROG_MAKE_SET +m4trace:configure.in:581: -1- AC_SUBST([SET_MAKE]) +m4trace:configure.in:587: -1- AC_SUBST([MAKE_SHELL]) +m4trace:configure.in:609: -1- AC_SUBST([SIZE]) +m4trace:configure.in:612: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) +m4trace:configure.in:615: -1- AC_C_CONST +m4trace:configure.in:615: -1- AC_DEFINE_TRACE_LITERAL([const]) +m4trace:configure.in:615: -1- AH_OUTPUT([const], [/* Define to empty if `const\' does not conform to ANSI C. */ #undef const]) -m4trace:configure.in:609: -1- AC_C_INLINE -m4trace:configure.in:609: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler +m4trace:configure.in:616: -1- AC_C_INLINE +m4trace:configure.in:616: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler calls it, or to nothing if \'inline\' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif]) -m4trace:configure.in:610: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) -m4trace:configure.in:610: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define to 1 if your processor stores words with the most significant byte +m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([WORDS_BIGENDIAN]) +m4trace:configure.in:617: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel and VAX). */ #undef WORDS_BIGENDIAN]) -m4trace:configure.in:611: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE]) -m4trace:configure.in:611: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */ +m4trace:configure.in:618: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRINGIZE]) +m4trace:configure.in:618: -1- AH_OUTPUT([HAVE_STRINGIZE], [/* Define to 1 if cpp supports the ANSI @%:@ stringizing operator. */ #undef HAVE_STRINGIZE]) -m4trace:configure.in:612: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE]) -m4trace:configure.in:612: -1- AH_OUTPUT([HAVE_LONG_DOUBLE], [/* Define to 1 if long double works and has more range or precision than +m4trace:configure.in:619: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_DOUBLE]) +m4trace:configure.in:619: -1- AH_OUTPUT([HAVE_LONG_DOUBLE], [/* Define to 1 if long double works and has more range or precision than double. */ #undef HAVE_LONG_DOUBLE]) -m4trace:configure.in:613: -1- AC_DEFINE_TRACE_LITERAL([PROTOTYPES]) -m4trace:configure.in:613: -1- AH_OUTPUT([PROTOTYPES], [/* Define to 1 if the C compiler supports function prototypes. */ +m4trace:configure.in:620: -1- AC_DEFINE_TRACE_LITERAL([PROTOTYPES]) +m4trace:configure.in:620: -1- AH_OUTPUT([PROTOTYPES], [/* Define to 1 if the C compiler supports function prototypes. */ #undef PROTOTYPES]) -m4trace:configure.in:613: -1- AC_DEFINE_TRACE_LITERAL([__PROTOTYPES]) -m4trace:configure.in:613: -1- AH_OUTPUT([__PROTOTYPES], [/* Define like PROTOTYPES; this can be used by system headers. */ +m4trace:configure.in:620: -1- AC_DEFINE_TRACE_LITERAL([__PROTOTYPES]) +m4trace:configure.in:620: -1- AH_OUTPUT([__PROTOTYPES], [/* Define like PROTOTYPES; this can be used by system headers. */ #undef __PROTOTYPES]) -m4trace:configure.in:614: -1- AH_OUTPUT([__CHAR_UNSIGNED__], [/* Define to 1 if type `char\' is unsigned and you are not using gcc. */ +m4trace:configure.in:621: -1- AH_OUTPUT([__CHAR_UNSIGNED__], [/* Define to 1 if type `char\' is unsigned and you are not using gcc. */ #ifndef __CHAR_UNSIGNED__ # undef __CHAR_UNSIGNED__ #endif]) -m4trace:configure.in:614: -1- AC_DEFINE_TRACE_LITERAL([__CHAR_UNSIGNED__]) -m4trace:configure.in:617: -1- AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl]) -m4trace:configure.in:617: -1- AC_SUBST([MKINSTALLDIRS]) -m4trace:configure.in:617: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:617: -1- AC_SUBST([MSGFMT]) -m4trace:configure.in:617: -1- AC_SUBST([GMSGFMT], [$ac_cv_path_GMSGFMT]) -m4trace:configure.in:617: -1- AC_SUBST([XGETTEXT]) -m4trace:configure.in:617: -1- AC_SUBST([MSGMERGE]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. +m4trace:configure.in:621: -1- AC_DEFINE_TRACE_LITERAL([__CHAR_UNSIGNED__]) +m4trace:configure.in:624: -1- AM_GNU_GETTEXT([no-libtool], [need-ngettext], [lib/intl]) +m4trace:configure.in:624: -1- AC_SUBST([MKINSTALLDIRS]) +m4trace:configure.in:624: -1- AC_SUBST([USE_NLS]) +m4trace:configure.in:624: -1- AC_SUBST([MSGFMT]) +m4trace:configure.in:624: -1- AC_SUBST([GMSGFMT], [$ac_cv_path_GMSGFMT]) +m4trace:configure.in:624: -1- AC_SUBST([XGETTEXT]) +m4trace:configure.in:624: -1- AC_SUBST([MSGMERGE]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_OUTPUT_COMMANDS' is obsolete. You should run autoupdate.], [autoconf/status.m4:318: AC_OUTPUT_COMMANDS is expanded from... aclocal.m4:3785: AM_PO_SUBDIRS is expanded from... -configure.in:617: AM_PO_SUBDIRS is required by... +configure.in:624: AM_PO_SUBDIRS is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -3- _m4_warn([obsolete], [The macro `_AC_OUTPUT_COMMANDS_CNT' is obsolete. +configure.in:624: the top level]) +m4trace:configure.in:624: -3- _m4_warn([obsolete], [The macro `_AC_OUTPUT_COMMANDS_CNT' is obsolete. You should run autoupdate.], [autoconf/status.m4:321: _AC_OUTPUT_COMMANDS_CNT is expanded from... autoconf/status.m4:318: AC_OUTPUT_COMMANDS is expanded from... aclocal.m4:3785: AM_PO_SUBDIRS is expanded from... -configure.in:617: AM_PO_SUBDIRS is required by... +configure.in:624: AM_PO_SUBDIRS is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_TYPE_OFF_T -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:617: -1- AH_OUTPUT([off_t], [/* Define to `long\' if <sys/types.h> does not define. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_TYPE_OFF_T +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([off_t]) +m4trace:configure.in:624: -1- AH_OUTPUT([off_t], [/* Define to `long\' if <sys/types.h> does not define. */ #undef off_t]) -m4trace:configure.in:617: -1- AC_TYPE_SIZE_T -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:617: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */ +m4trace:configure.in:624: -1- AC_TYPE_SIZE_T +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([size_t]) +m4trace:configure.in:624: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */ #undef size_t]) -m4trace:configure.in:617: -1- AC_FUNC_ALLOCA -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). +m4trace:configure.in:624: -1- AC_FUNC_ALLOCA +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ #undef HAVE_ALLOCA]) -m4trace:configure.in:617: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:617: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:617: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ +m4trace:configure.in:624: -1- AC_LIBSOURCE([alloca.c]) +m4trace:configure.in:624: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) +m4trace:configure.in:624: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ #undef C_ALLOCA]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:617: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) +m4trace:configure.in:624: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c\' support on those systems. */ #undef CRAY_STACKSEG_END]) -m4trace:configure.in:617: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the +m4trace:configure.in:624: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:617: -1- AC_FUNC_MMAP -m4trace:configure.in:617: -1- AC_CHECK_HEADERS([stdlib.h unistd.h]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) +m4trace:configure.in:624: -1- AC_FUNC_MMAP +m4trace:configure.in:624: -1- AC_CHECK_HEADERS([stdlib.h unistd.h]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H]) -m4trace:configure.in:617: -1- AC_CHECK_FUNCS([getpagesize]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ +m4trace:configure.in:624: -1- AC_CHECK_FUNCS([getpagesize]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ #undef HAVE_GETPAGESIZE]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ #undef HAVE_MMAP]) -m4trace:configure.in:617: -1- AC_SUBST([GLIBC21]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +m4trace:configure.in:624: -1- AC_SUBST([GLIBC21]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2578: gt_INTDIV0 is expanded from... -configure.in:617: gt_INTDIV0 is required by... +configure.in:624: gt_INTDIV0 is required by... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:617: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([INTDIV0_RAISES_SIGFPE]) +m4trace:configure.in:624: -1- AH_OUTPUT([INTDIV0_RAISES_SIGFPE], [/* Define if integer division by zero raises signal SIGFPE. */ #undef INTDIV0_RAISES_SIGFPE]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2633: jm_AC_HEADER_INTTYPES_H is expanded from... -configure.in:617: jm_AC_HEADER_INTTYPES_H is required by... +configure.in:624: jm_AC_HEADER_INTTYPES_H is required by... aclocal.m4:3936: jm_AC_TYPE_UINTMAX_T is expanded from... -configure.in:617: jm_AC_TYPE_UINTMAX_T is required by... +configure.in:624: jm_AC_TYPE_UINTMAX_T is required by... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if <inttypes.h> exists, doesn\'t clash with <sys/types.h>, and +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if <inttypes.h> exists, doesn\'t clash with <sys/types.h>, and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:3904: jm_AC_HEADER_STDINT_H is expanded from... -configure.in:617: jm_AC_HEADER_STDINT_H is required by... +configure.in:624: jm_AC_HEADER_STDINT_H is required by... aclocal.m4:3936: jm_AC_TYPE_UINTMAX_T is expanded from... -configure.in:617: jm_AC_TYPE_UINTMAX_T is required by... +configure.in:624: jm_AC_TYPE_UINTMAX_T is required by... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if <stdint.h> exists, doesn\'t clash with <sys/types.h>, and declares +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if <stdint.h> exists, doesn\'t clash with <sys/types.h>, and declares uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:3959: jm_AC_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.in:617: jm_AC_TYPE_UNSIGNED_LONG_LONG is required by... +configure.in:624: jm_AC_TYPE_UNSIGNED_LONG_LONG is required by... aclocal.m4:3936: jm_AC_TYPE_UINTMAX_T is expanded from... -configure.in:617: jm_AC_TYPE_UINTMAX_T is required by... +configure.in:624: jm_AC_TYPE_UINTMAX_T is required by... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG], [/* Define if you have the unsigned long long type. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG], [/* Define if you have the unsigned long long type. */ #undef HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:617: -1- AH_OUTPUT([uintmax_t], [/* Define to unsigned long or unsigned long long if <stdint.h> and +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) +m4trace:configure.in:624: -1- AH_OUTPUT([uintmax_t], [/* Define to unsigned long or unsigned long long if <stdint.h> and <inttypes.h> don\'t define. */ #undef uintmax_t]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTMAX_T]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in <stdint.h> or <inttypes.h>. */ +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UINTMAX_T]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_UINTMAX_T], [/* Define if you have the \'uintmax_t\' type in <stdint.h> or <inttypes.h>. */ #undef HAVE_UINTMAX_T]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2605: gt_HEADER_INTTYPES_H is expanded from... -configure.in:617: gt_HEADER_INTTYPES_H is required by... +configure.in:624: gt_HEADER_INTTYPES_H is required by... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if <inttypes.h> exists and doesn\'t clash with <sys/types.h>. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define if <inttypes.h> exists and doesn\'t clash with <sys/types.h>. */ #undef HAVE_INTTYPES_H]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2665: gt_INTTYPES_PRI is expanded from... -configure.in:617: gt_INTTYPES_PRI is required by... +configure.in:624: gt_INTTYPES_PRI is required by... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN]) -m4trace:configure.in:617: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if <inttypes.h> exists and defines unusable PRI* macros. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN]) +m4trace:configure.in:624: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if <inttypes.h> exists and defines unusable PRI* macros. */ #undef PRI_MACROS_BROKEN]) -m4trace:configure.in:617: -1- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ +m4trace:configure.in:624: -1- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the <argz.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the <argz.h> header file. */ #undef HAVE_ARGZ_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the <nl_types.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_NL_TYPES_H], [/* Define to 1 if you have the <nl_types.h> header file. */ #undef HAVE_NL_TYPES_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */ #undef HAVE_STDDEF_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */ #undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:617: -1- AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ +m4trace:configure.in:624: -1- AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ __fsetlocking]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_FEOF_UNLOCKED], [/* Define to 1 if you have the `feof_unlocked\' function. */ #undef HAVE_FEOF_UNLOCKED]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_FGETS_UNLOCKED], [/* Define to 1 if you have the `fgets_unlocked\' function. */ #undef HAVE_FGETS_UNLOCKED]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETC_UNLOCKED], [/* Define to 1 if you have the `getc_unlocked\' function. */ #undef HAVE_GETC_UNLOCKED]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ #undef HAVE_GETCWD]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETEGID], [/* Define to 1 if you have the `getegid\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETEGID], [/* Define to 1 if you have the `getegid\' function. */ #undef HAVE_GETEGID]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETEUID], [/* Define to 1 if you have the `geteuid\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETEUID], [/* Define to 1 if you have the `geteuid\' function. */ #undef HAVE_GETEUID]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETGID], [/* Define to 1 if you have the `getgid\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETGID], [/* Define to 1 if you have the `getgid\' function. */ #undef HAVE_GETGID]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETUID], [/* Define to 1 if you have the `getuid\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETUID], [/* Define to 1 if you have the `getuid\' function. */ #undef HAVE_GETUID]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ #undef HAVE_MEMPCPY]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ #undef HAVE_MUNMAP]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ #undef HAVE_PUTENV]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ #undef HAVE_SETENV]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ #undef HAVE_SETLOCALE]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ #undef HAVE_STPCPY]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ #undef HAVE_STRCASECMP]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ #undef HAVE_STRDUP]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ #undef HAVE_STRTOUL]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */ #undef HAVE_TSEARCH]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ #undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ #undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ #undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */ +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE___FSETLOCKING], [/* Define to 1 if you have the `__fsetlocking\' function. */ #undef HAVE___FSETLOCKING]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2478: AM_ICONV_LINK is expanded from... aclocal.m4:2506: AM_ICONV is expanded from... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:624: the top level]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2478: AM_ICONV_LINK is expanded from... aclocal.m4:2506: AM_ICONV is expanded from... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function. */ #undef HAVE_ICONV]) -m4trace:configure.in:617: -1- AC_SUBST([LIBICONV]) -m4trace:configure.in:617: -1- AC_SUBST([LTLIBICONV]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:624: -1- AC_SUBST([LIBICONV]) +m4trace:configure.in:624: -1- AC_SUBST([LTLIBICONV]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:2506: AM_ICONV is expanded from... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) -m4trace:configure.in:617: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST]) +m4trace:configure.in:624: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:1956: AM_LANGINFO_CODESET is expanded from... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2723: AM_LC_MESSAGES is expanded from... aclocal.m4:2367: AM_INTL_SUBDIR is expanded from... -configure.in:617: AM_INTL_SUBDIR is required by... +configure.in:624: AM_INTL_SUBDIR is required by... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your <locale.h> file defines LC_MESSAGES. */ +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LC_MESSAGES]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_LC_MESSAGES], [/* Define if your <locale.h> file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES]) -m4trace:configure.in:617: -1- AC_SUBST([INTLBISON]) -m4trace:configure.in:617: -1- AC_SUBST([USE_NLS]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:624: -1- AC_SUBST([INTLBISON]) +m4trace:configure.in:624: -1- AC_SUBST([USE_NLS]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:624: the top level]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:624: the top level]) +m4trace:configure.in:624: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:2297: AM_GNU_GETTEXT is expanded from... -configure.in:617: the top level]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) -m4trace:configure.in:617: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native +configure.in:624: the top level]) +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS]) +m4trace:configure.in:624: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native language is requested. */ #undef ENABLE_NLS]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT]) -m4trace:configure.in:617: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) -m4trace:configure.in:617: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled. +m4trace:configure.in:624: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT]) +m4trace:configure.in:624: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT]) -m4trace:configure.in:617: -1- AC_SUBST([BUILD_INCLUDED_LIBINTL]) -m4trace:configure.in:617: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) -m4trace:configure.in:617: -1- AC_SUBST([CATOBJEXT]) -m4trace:configure.in:617: -1- AC_SUBST([DATADIRNAME]) -m4trace:configure.in:617: -1- AC_SUBST([INSTOBJEXT]) -m4trace:configure.in:617: -1- AC_SUBST([GENCAT]) -m4trace:configure.in:617: -1- AC_SUBST([INTLOBJS]) -m4trace:configure.in:617: -1- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) -m4trace:configure.in:617: -1- AC_SUBST([INTLLIBS]) -m4trace:configure.in:617: -1- AC_SUBST([LIBINTL]) -m4trace:configure.in:617: -1- AC_SUBST([LTLIBINTL]) -m4trace:configure.in:617: -1- AC_SUBST([POSUB]) -m4trace:configure.in:620: -1- AC_HEADER_DIRENT -m4trace:configure.in:620: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR\'. +m4trace:configure.in:624: -1- AC_SUBST([BUILD_INCLUDED_LIBINTL]) +m4trace:configure.in:624: -1- AC_SUBST([USE_INCLUDED_LIBINTL]) +m4trace:configure.in:624: -1- AC_SUBST([CATOBJEXT]) +m4trace:configure.in:624: -1- AC_SUBST([DATADIRNAME]) +m4trace:configure.in:624: -1- AC_SUBST([INSTOBJEXT]) +m4trace:configure.in:624: -1- AC_SUBST([GENCAT]) +m4trace:configure.in:624: -1- AC_SUBST([INTLOBJS]) +m4trace:configure.in:624: -1- AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) +m4trace:configure.in:624: -1- AC_SUBST([INTLLIBS]) +m4trace:configure.in:624: -1- AC_SUBST([LIBINTL]) +m4trace:configure.in:624: -1- AC_SUBST([LTLIBINTL]) +m4trace:configure.in:624: -1- AC_SUBST([POSUB]) +m4trace:configure.in:627: -1- AC_HEADER_DIRENT +m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR\'. */ #undef HAVE_DIRENT_H]) -m4trace:configure.in:620: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR\'. +m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR\'. */ #undef HAVE_SYS_NDIR_H]) -m4trace:configure.in:620: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR\'. +m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR\'. */ #undef HAVE_SYS_DIR_H]) -m4trace:configure.in:620: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR\'. */ +m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR\'. */ #undef HAVE_NDIR_H]) -m4trace:configure.in:621: -1- AC_HEADER_TIME -m4trace:configure.in:621: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) -m4trace:configure.in:621: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +m4trace:configure.in:628: -1- AC_HEADER_TIME +m4trace:configure.in:628: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME]) +m4trace:configure.in:628: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ #undef TIME_WITH_SYS_TIME]) -m4trace:configure.in:623: -1- AC_CHECK_HEADERS([inttypes.h]) -m4trace:configure.in:623: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */ +m4trace:configure.in:630: -1- AC_CHECK_HEADERS([inttypes.h]) +m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H]) -m4trace:configure.in:627: -1- AC_CHECK_HEADERS([unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ +m4trace:configure.in:634: -1- AC_CHECK_HEADERS([unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \ memory.h locale.h termcap.h termio.h termios.h dlfcn.h \ stddef.h stdint.h netdb.h pwd.h grp.h strings.h regex.h]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the <stdarg.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_STDARG_H], [/* Define to 1 if you have the <stdarg.h> header file. */ #undef HAVE_STDARG_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_VARARGS_H], [/* Define to 1 if you have the <varargs.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_VARARGS_H], [/* Define to 1 if you have the <varargs.h> header file. */ #undef HAVE_VARARGS_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_LIMITS_H], [/* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_TERMCAP_H], [/* Define to 1 if you have the <termcap.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_TERMCAP_H], [/* Define to 1 if you have the <termcap.h> header file. */ #undef HAVE_TERMCAP_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_TERMIO_H], [/* Define to 1 if you have the <termio.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_TERMIO_H], [/* Define to 1 if you have the <termio.h> header file. */ #undef HAVE_TERMIO_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_TERMIOS_H], [/* Define to 1 if you have the <termios.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_TERMIOS_H], [/* Define to 1 if you have the <termios.h> header file. */ #undef HAVE_TERMIOS_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_STDDEF_H], [/* Define to 1 if you have the <stddef.h> header file. */ #undef HAVE_STDDEF_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */ #undef HAVE_NETDB_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the <pwd.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the <pwd.h> header file. */ #undef HAVE_PWD_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the <grp.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the <grp.h> header file. */ #undef HAVE_GRP_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H]) -m4trace:configure.in:627: -1- AH_OUTPUT([HAVE_REGEX_H], [/* Define to 1 if you have the <regex.h> header file. */ +m4trace:configure.in:634: -1- AH_OUTPUT([HAVE_REGEX_H], [/* Define to 1 if you have the <regex.h> header file. */ #undef HAVE_REGEX_H]) -m4trace:configure.in:630: -1- AC_CHECK_HEADERS([sys/pte.h sys/stream.h sys/select.h sys/file.h \ +m4trace:configure.in:637: -1- AC_CHECK_HEADERS([sys/pte.h sys/stream.h sys/select.h sys/file.h \ sys/resource.h sys/param.h sys/socket.h sys/stat.h \ sys/time.h sys/times.h sys/types.h sys/wait.h]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_PTE_H], [/* Define to 1 if you have the <sys/pte.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_PTE_H], [/* Define to 1 if you have the <sys/pte.h> header file. */ #undef HAVE_SYS_PTE_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_STREAM_H], [/* Define to 1 if you have the <sys/stream.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_STREAM_H], [/* Define to 1 if you have the <sys/stream.h> header file. */ #undef HAVE_SYS_STREAM_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the <sys/select.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_SELECT_H], [/* Define to 1 if you have the <sys/select.h> header file. */ #undef HAVE_SYS_SELECT_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the <sys/file.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_FILE_H], [/* Define to 1 if you have the <sys/file.h> header file. */ #undef HAVE_SYS_FILE_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the <sys/resource.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_RESOURCE_H], [/* Define to 1 if you have the <sys/resource.h> header file. */ #undef HAVE_SYS_RESOURCE_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */ #undef HAVE_SYS_PARAM_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */ #undef HAVE_SYS_SOCKET_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */ #undef HAVE_SYS_TIME_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the <sys/times.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_TIMES_H], [/* Define to 1 if you have the <sys/times.h> header file. */ #undef HAVE_SYS_TIMES_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H]) -m4trace:configure.in:630: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the <sys/wait.h> header file. */ +m4trace:configure.in:637: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the <sys/wait.h> header file. */ #undef HAVE_SYS_WAIT_H]) -m4trace:configure.in:631: -1- AC_CHECK_HEADERS([netinet/in.h arpa/inet.h]) -m4trace:configure.in:631: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */ +m4trace:configure.in:638: -1- AC_CHECK_HEADERS([netinet/in.h arpa/inet.h]) +m4trace:configure.in:638: -1- AH_OUTPUT([HAVE_NETINET_IN_H], [/* Define to 1 if you have the <netinet/in.h> header file. */ #undef HAVE_NETINET_IN_H]) -m4trace:configure.in:631: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */ +m4trace:configure.in:638: -1- AH_OUTPUT([HAVE_ARPA_INET_H], [/* Define to 1 if you have the <arpa/inet.h> header file. */ #undef HAVE_ARPA_INET_H]) -m4trace:configure.in:642: -1- AC_FUNC_ALLOCA -m4trace:configure.in:642: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) -m4trace:configure.in:642: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). +m4trace:configure.in:649: -1- AC_FUNC_ALLOCA +m4trace:configure.in:649: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H]) +m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H]) -m4trace:configure.in:642: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) -m4trace:configure.in:642: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ +m4trace:configure.in:649: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA]) +m4trace:configure.in:649: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */ #undef HAVE_ALLOCA]) -m4trace:configure.in:642: -1- AC_LIBSOURCE([alloca.c]) -m4trace:configure.in:642: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext]) -m4trace:configure.in:642: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) -m4trace:configure.in:642: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ +m4trace:configure.in:649: -1- AC_LIBSOURCE([alloca.c]) +m4trace:configure.in:649: -1- AC_SUBST([ALLOCA], [alloca.$ac_objext]) +m4trace:configure.in:649: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA]) +m4trace:configure.in:649: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using `alloca.c\'. */ #undef C_ALLOCA]) -m4trace:configure.in:642: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) -m4trace:configure.in:642: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP +m4trace:configure.in:649: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END]) +m4trace:configure.in:649: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* Define to one of `_getb67\', `GETB67\', `getb67\' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c\' support on those systems. */ #undef CRAY_STACKSEG_END]) -m4trace:configure.in:642: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the +m4trace:configure.in:649: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION]) -m4trace:configure.in:642: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) -m4trace:configure.in:643: -1- AC_FUNC_GETPGRP -m4trace:configure.in:643: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID]) -m4trace:configure.in:643: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */ +m4trace:configure.in:649: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION]) +m4trace:configure.in:650: -1- AC_FUNC_GETPGRP +m4trace:configure.in:650: -1- AC_DEFINE_TRACE_LITERAL([GETPGRP_VOID]) +m4trace:configure.in:650: -1- AH_OUTPUT([GETPGRP_VOID], [/* Define to 1 if the `getpgrp\' function requires zero arguments. */ #undef GETPGRP_VOID]) -m4trace:configure.in:644: -1- AC_FUNC_SETVBUF_REVERSED -m4trace:configure.in:644: -1- AC_DEFINE_TRACE_LITERAL([SETVBUF_REVERSED]) -m4trace:configure.in:644: -1- AH_OUTPUT([SETVBUF_REVERSED], [/* Define to 1 if the `setvbuf\' function takes the buffering type as its +m4trace:configure.in:651: -1- AC_FUNC_SETVBUF_REVERSED +m4trace:configure.in:651: -1- AC_DEFINE_TRACE_LITERAL([SETVBUF_REVERSED]) +m4trace:configure.in:651: -1- AH_OUTPUT([SETVBUF_REVERSED], [/* Define to 1 if the `setvbuf\' function takes the buffering type as its second argument and the buffer pointer as the third, as on System V before release 3. */ #undef SETVBUF_REVERSED]) -m4trace:configure.in:645: -1- AC_FUNC_VPRINTF -m4trace:configure.in:645: -1- AC_CHECK_FUNCS([vprintf], [ +m4trace:configure.in:652: -1- AC_FUNC_VPRINTF +m4trace:configure.in:652: -1- AC_CHECK_FUNCS([vprintf], [ AC_CHECK_FUNC(_doprnt, [AC_DEFINE(HAVE_DOPRNT, 1, [Define to 1 if you don't have `vprintf' but do have `_doprnt.'])])]) -m4trace:configure.in:645: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ +m4trace:configure.in:652: -1- AH_OUTPUT([HAVE_VPRINTF], [/* Define to 1 if you have the `vprintf\' function. */ #undef HAVE_VPRINTF]) -m4trace:configure.in:645: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) -m4trace:configure.in:645: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ +m4trace:configure.in:652: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DOPRNT]) +m4trace:configure.in:652: -1- AH_OUTPUT([HAVE_DOPRNT], [/* Define to 1 if you don\'t have `vprintf\' but do have `_doprnt.\' */ #undef HAVE_DOPRNT]) -m4trace:configure.in:646: -1- AC_FUNC_STRCOLL -m4trace:configure.in:646: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCOLL]) -m4trace:configure.in:646: -1- AH_OUTPUT([HAVE_STRCOLL], [/* Define to 1 if you have the `strcoll\' function and it is properly defined. +m4trace:configure.in:653: -1- AC_FUNC_STRCOLL +m4trace:configure.in:653: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCOLL]) +m4trace:configure.in:653: -1- AH_OUTPUT([HAVE_STRCOLL], [/* Define to 1 if you have the `strcoll\' function and it is properly defined. */ #undef HAVE_STRCOLL]) -m4trace:configure.in:667: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) -m4trace:configure.in:672: -1- AC_LIBSOURCE([vprint.c]) -m4trace:configure.in:672: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:676: -1- AC_TYPE_SIGNAL -m4trace:configure.in:676: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:676: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ +m4trace:configure.in:674: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VPRINTF]) +m4trace:configure.in:679: -1- AC_LIBSOURCE([vprint.c]) +m4trace:configure.in:679: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:683: -1- AC_TYPE_SIGNAL +m4trace:configure.in:683: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) +m4trace:configure.in:683: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ #undef RETSIGTYPE]) -m4trace:configure.in:679: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SETOSTYPE]) -m4trace:configure.in:680: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3]) -m4trace:configure.in:681: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISINF_IN_LIBC]) -m4trace:configure.in:684: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO]) -m4trace:configure.in:684: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING]) -m4trace:configure.in:690: -1- AC_CHECK_FUNCS([dup2 fcntl getdtablesize getgroups gethostname getpagesize \ +m4trace:configure.in:686: -2- AC_DEFINE_TRACE_LITERAL([HAVE_SETOSTYPE]) +m4trace:configure.in:687: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WAIT3]) +m4trace:configure.in:688: -2- AC_DEFINE_TRACE_LITERAL([HAVE_ISINF_IN_LIBC]) +m4trace:configure.in:691: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MKFIFO]) +m4trace:configure.in:691: -2- AC_DEFINE_TRACE_LITERAL([MKFIFO_MISSING]) +m4trace:configure.in:697: -1- AC_CHECK_FUNCS([dup2 fcntl getdtablesize getgroups gethostname getpagesize \ getpeername getrlimit getrusage gettimeofday kill killpg \ lstat readlink sbrk select setdtablesize tcgetpgrp uname \ ulimit waitpid]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the `dup2\' function. */ #undef HAVE_DUP2]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */ #undef HAVE_FCNTL]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */ #undef HAVE_GETDTABLESIZE]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETGROUPS], [/* Define to 1 if you have the `getgroups\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETGROUPS], [/* Define to 1 if you have the `getgroups\' function. */ #undef HAVE_GETGROUPS]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETHOSTNAME], [/* Define to 1 if you have the `gethostname\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETHOSTNAME], [/* Define to 1 if you have the `gethostname\' function. */ #undef HAVE_GETHOSTNAME]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ #undef HAVE_GETPAGESIZE]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETPEERNAME], [/* Define to 1 if you have the `getpeername\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETPEERNAME], [/* Define to 1 if you have the `getpeername\' function. */ #undef HAVE_GETPEERNAME]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETRLIMIT], [/* Define to 1 if you have the `getrlimit\' function. */ #undef HAVE_GETRLIMIT]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETRUSAGE], [/* Define to 1 if you have the `getrusage\' function. */ #undef HAVE_GETRUSAGE]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */ #undef HAVE_GETTIMEOFDAY]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_KILL], [/* Define to 1 if you have the `kill\' function. */ #undef HAVE_KILL]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_KILLPG], [/* Define to 1 if you have the `killpg\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_KILLPG], [/* Define to 1 if you have the `killpg\' function. */ #undef HAVE_KILLPG]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */ #undef HAVE_LSTAT]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */ #undef HAVE_READLINK]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_SBRK], [/* Define to 1 if you have the `sbrk\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_SBRK], [/* Define to 1 if you have the `sbrk\' function. */ #undef HAVE_SBRK]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_SELECT], [/* Define to 1 if you have the `select\' function. */ #undef HAVE_SELECT]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_SETDTABLESIZE], [/* Define to 1 if you have the `setdtablesize\' function. */ #undef HAVE_SETDTABLESIZE]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_TCGETPGRP], [/* Define to 1 if you have the `tcgetpgrp\' function. */ #undef HAVE_TCGETPGRP]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_UNAME], [/* Define to 1 if you have the `uname\' function. */ #undef HAVE_UNAME]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_ULIMIT], [/* Define to 1 if you have the `ulimit\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_ULIMIT], [/* Define to 1 if you have the `ulimit\' function. */ #undef HAVE_ULIMIT]) -m4trace:configure.in:690: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */ +m4trace:configure.in:697: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */ #undef HAVE_WAITPID]) -m4trace:configure.in:691: -1- AC_LIBSOURCE([rename.c]) -m4trace:configure.in:691: -1- AC_CHECK_FUNCS([rename], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:691: -1- AH_OUTPUT([HAVE_RENAME], [/* Define to 1 if you have the `rename\' function. */ +m4trace:configure.in:698: -1- AC_LIBSOURCE([rename.c]) +m4trace:configure.in:698: -1- AC_CHECK_FUNCS([rename], [], [_AC_LIBOBJ($ac_func)]) +m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_RENAME], [/* Define to 1 if you have the `rename\' function. */ #undef HAVE_RENAME]) -m4trace:configure.in:691: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:698: -1- AC_CHECK_FUNCS([bcopy bzero confstr fnmatch \ +m4trace:configure.in:698: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:705: -1- AC_CHECK_FUNCS([bcopy bzero confstr fnmatch \ getaddrinfo gethostbyname getservbyname getservent inet_aton \ memmove pathconf putenv raise regcomp regexec \ setenv setlinebuf setlocale setvbuf siginterrupt strchr \ sysconf tcgetattr times ttyname tzset unsetenv]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_BCOPY], [/* Define to 1 if you have the `bcopy\' function. */ #undef HAVE_BCOPY]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_BZERO], [/* Define to 1 if you have the `bzero\' function. */ #undef HAVE_BZERO]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_CONFSTR], [/* Define to 1 if you have the `confstr\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_CONFSTR], [/* Define to 1 if you have the `confstr\' function. */ #undef HAVE_CONFSTR]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_FNMATCH], [/* Define to 1 if you have the `fnmatch\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_FNMATCH], [/* Define to 1 if you have the `fnmatch\' function. */ #undef HAVE_FNMATCH]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_GETADDRINFO], [/* Define to 1 if you have the `getaddrinfo\' function. */ #undef HAVE_GETADDRINFO]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_GETHOSTBYNAME], [/* Define to 1 if you have the `gethostbyname\' function. */ #undef HAVE_GETHOSTBYNAME]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_GETSERVBYNAME], [/* Define to 1 if you have the `getservbyname\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_GETSERVBYNAME], [/* Define to 1 if you have the `getservbyname\' function. */ #undef HAVE_GETSERVBYNAME]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_GETSERVENT], [/* Define to 1 if you have the `getservent\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_GETSERVENT], [/* Define to 1 if you have the `getservent\' function. */ #undef HAVE_GETSERVENT]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_INET_ATON], [/* Define to 1 if you have the `inet_aton\' function. */ #undef HAVE_INET_ATON]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_MEMMOVE], [/* Define to 1 if you have the `memmove\' function. */ #undef HAVE_MEMMOVE]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */ #undef HAVE_PATHCONF]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_PUTENV], [/* Define to 1 if you have the `putenv\' function. */ #undef HAVE_PUTENV]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */ #undef HAVE_RAISE]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_REGCOMP], [/* Define to 1 if you have the `regcomp\' function. */ #undef HAVE_REGCOMP]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_REGEXEC], [/* Define to 1 if you have the `regexec\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_REGEXEC], [/* Define to 1 if you have the `regexec\' function. */ #undef HAVE_REGEXEC]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */ #undef HAVE_SETENV]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_SETLINEBUF], [/* Define to 1 if you have the `setlinebuf\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_SETLINEBUF], [/* Define to 1 if you have the `setlinebuf\' function. */ #undef HAVE_SETLINEBUF]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */ #undef HAVE_SETLOCALE]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_SETVBUF], [/* Define to 1 if you have the `setvbuf\' function. */ #undef HAVE_SETVBUF]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_SIGINTERRUPT], [/* Define to 1 if you have the `siginterrupt\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_SIGINTERRUPT], [/* Define to 1 if you have the `siginterrupt\' function. */ #undef HAVE_SIGINTERRUPT]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_STRCHR], [/* Define to 1 if you have the `strchr\' function. */ #undef HAVE_STRCHR]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_SYSCONF], [/* Define to 1 if you have the `sysconf\' function. */ #undef HAVE_SYSCONF]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_TCGETATTR], [/* Define to 1 if you have the `tcgetattr\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_TCGETATTR], [/* Define to 1 if you have the `tcgetattr\' function. */ #undef HAVE_TCGETATTR]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_TIMES], [/* Define to 1 if you have the `times\' function. */ #undef HAVE_TIMES]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_TTYNAME], [/* Define to 1 if you have the `ttyname\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_TTYNAME], [/* Define to 1 if you have the `ttyname\' function. */ #undef HAVE_TTYNAME]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_TZSET], [/* Define to 1 if you have the `tzset\' function. */ #undef HAVE_TZSET]) -m4trace:configure.in:698: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */ +m4trace:configure.in:705: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */ #undef HAVE_UNSETENV]) -m4trace:configure.in:700: -1- AC_CHECK_FUNCS([vsnprintf snprintf vasprintf asprintf]) -m4trace:configure.in:700: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */ +m4trace:configure.in:707: -1- AC_CHECK_FUNCS([vsnprintf snprintf vasprintf asprintf]) +m4trace:configure.in:707: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */ #undef HAVE_VSNPRINTF]) -m4trace:configure.in:700: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */ +m4trace:configure.in:707: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */ #undef HAVE_SNPRINTF]) -m4trace:configure.in:700: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */ +m4trace:configure.in:707: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */ #undef HAVE_VASPRINTF]) -m4trace:configure.in:700: -1- AH_OUTPUT([HAVE_ASPRINTF], [/* Define to 1 if you have the `asprintf\' function. */ +m4trace:configure.in:707: -1- AH_OUTPUT([HAVE_ASPRINTF], [/* Define to 1 if you have the `asprintf\' function. */ #undef HAVE_ASPRINTF]) -m4trace:configure.in:701: -1- AC_CHECK_FUNCS([isascii isblank isgraph isprint isspace isxdigit]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ +m4trace:configure.in:708: -1- AC_CHECK_FUNCS([isascii isblank isgraph isprint isspace isxdigit]) +m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_ISASCII], [/* Define to 1 if you have the `isascii\' function. */ #undef HAVE_ISASCII]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */ +m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */ #undef HAVE_ISBLANK]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ISGRAPH], [/* Define to 1 if you have the `isgraph\' function. */ +m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_ISGRAPH], [/* Define to 1 if you have the `isgraph\' function. */ #undef HAVE_ISGRAPH]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ISPRINT], [/* Define to 1 if you have the `isprint\' function. */ +m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_ISPRINT], [/* Define to 1 if you have the `isprint\' function. */ #undef HAVE_ISPRINT]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ISSPACE], [/* Define to 1 if you have the `isspace\' function. */ +m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_ISSPACE], [/* Define to 1 if you have the `isspace\' function. */ #undef HAVE_ISSPACE]) -m4trace:configure.in:701: -1- AH_OUTPUT([HAVE_ISXDIGIT], [/* Define to 1 if you have the `isxdigit\' function. */ +m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_ISXDIGIT], [/* Define to 1 if you have the `isxdigit\' function. */ #undef HAVE_ISXDIGIT]) -m4trace:configure.in:702: -1- AC_CHECK_FUNCS([getpwent getpwnam getpwuid]) -m4trace:configure.in:702: -1- AH_OUTPUT([HAVE_GETPWENT], [/* Define to 1 if you have the `getpwent\' function. */ +m4trace:configure.in:709: -1- AC_CHECK_FUNCS([getpwent getpwnam getpwuid]) +m4trace:configure.in:709: -1- AH_OUTPUT([HAVE_GETPWENT], [/* Define to 1 if you have the `getpwent\' function. */ #undef HAVE_GETPWENT]) -m4trace:configure.in:702: -1- AH_OUTPUT([HAVE_GETPWNAM], [/* Define to 1 if you have the `getpwnam\' function. */ +m4trace:configure.in:709: -1- AH_OUTPUT([HAVE_GETPWNAM], [/* Define to 1 if you have the `getpwnam\' function. */ #undef HAVE_GETPWNAM]) -m4trace:configure.in:702: -1- AH_OUTPUT([HAVE_GETPWUID], [/* Define to 1 if you have the `getpwuid\' function. */ +m4trace:configure.in:709: -1- AH_OUTPUT([HAVE_GETPWUID], [/* Define to 1 if you have the `getpwuid\' function. */ #undef HAVE_GETPWUID]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([memset.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([strcasecmp.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([strerror.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([strftime.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([strnlen.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([strpbrk.c]) -m4trace:configure.in:703: -1- AC_LIBSOURCE([strstr.c]) -m4trace:configure.in:703: -1- AC_CHECK_FUNCS([getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ +m4trace:configure.in:710: -1- AC_LIBSOURCE([getcwd.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([memset.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([strcasecmp.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([strerror.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([strftime.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([strnlen.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([strpbrk.c]) +m4trace:configure.in:710: -1- AC_LIBSOURCE([strstr.c]) +m4trace:configure.in:710: -1- AC_CHECK_FUNCS([getcwd memset strcasecmp strerror strftime strnlen strpbrk strstr], [], [_AC_LIBOBJ($ac_func)]) +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */ #undef HAVE_GETCWD]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_MEMSET], [/* Define to 1 if you have the `memset\' function. */ #undef HAVE_MEMSET]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ #undef HAVE_STRCASECMP]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_STRERROR], [/* Define to 1 if you have the `strerror\' function. */ #undef HAVE_STRERROR]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_STRFTIME], [/* Define to 1 if you have the `strftime\' function. */ #undef HAVE_STRFTIME]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */ #undef HAVE_STRNLEN]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_STRPBRK], [/* Define to 1 if you have the `strpbrk\' function. */ #undef HAVE_STRPBRK]) -m4trace:configure.in:703: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ +m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_STRSTR], [/* Define to 1 if you have the `strstr\' function. */ #undef HAVE_STRSTR]) -m4trace:configure.in:703: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtod.c]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtol.c]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtoul.c]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtoll.c]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtoull.c]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtoimax.c]) -m4trace:configure.in:704: -1- AC_LIBSOURCE([strtoumax.c]) -m4trace:configure.in:704: -1- AC_CHECK_FUNCS([strtod strtol strtoul strtoll strtoull strtoimax strtoumax], [], [_AC_LIBOBJ($ac_func)]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOD], [/* Define to 1 if you have the `strtod\' function. */ +m4trace:configure.in:710: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtod.c]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtol.c]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtoul.c]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtoll.c]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtoull.c]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtoimax.c]) +m4trace:configure.in:711: -1- AC_LIBSOURCE([strtoumax.c]) +m4trace:configure.in:711: -1- AC_CHECK_FUNCS([strtod strtol strtoul strtoll strtoull strtoimax strtoumax], [], [_AC_LIBOBJ($ac_func)]) +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOD], [/* Define to 1 if you have the `strtod\' function. */ #undef HAVE_STRTOD]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */ +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */ #undef HAVE_STRTOL]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */ #undef HAVE_STRTOUL]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOLL], [/* Define to 1 if you have the `strtoll\' function. */ +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOLL], [/* Define to 1 if you have the `strtoll\' function. */ #undef HAVE_STRTOLL]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */ +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */ #undef HAVE_STRTOULL]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOIMAX], [/* Define to 1 if you have the `strtoimax\' function. */ +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOIMAX], [/* Define to 1 if you have the `strtoimax\' function. */ #undef HAVE_STRTOIMAX]) -m4trace:configure.in:704: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */ +m4trace:configure.in:711: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */ #undef HAVE_STRTOUMAX]) -m4trace:configure.in:704: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:706: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.in:706: -1- AH_OUTPUT([HAVE_DECL_CONFSTR], [/* Define to 1 if you have the declaration of `confstr\', and to 0 if you +m4trace:configure.in:711: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:713: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) +m4trace:configure.in:713: -1- AH_OUTPUT([HAVE_DECL_CONFSTR], [/* Define to 1 if you have the declaration of `confstr\', and to 0 if you don\'t. */ #undef HAVE_DECL_CONFSTR]) -m4trace:configure.in:706: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) -m4trace:configure.in:707: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.in:707: -1- AH_OUTPUT([HAVE_DECL_PRINTF], [/* Define to 1 if you have the declaration of `printf\', and to 0 if you don\'t. +m4trace:configure.in:713: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CONFSTR]) +m4trace:configure.in:714: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) +m4trace:configure.in:714: -1- AH_OUTPUT([HAVE_DECL_PRINTF], [/* Define to 1 if you have the declaration of `printf\', and to 0 if you don\'t. */ #undef HAVE_DECL_PRINTF]) -m4trace:configure.in:707: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) -m4trace:configure.in:708: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.in:708: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you have the declaration of `sbrk\', and to 0 if you don\'t. +m4trace:configure.in:714: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PRINTF]) +m4trace:configure.in:715: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) +m4trace:configure.in:715: -1- AH_OUTPUT([HAVE_DECL_SBRK], [/* Define to 1 if you have the declaration of `sbrk\', and to 0 if you don\'t. */ #undef HAVE_DECL_SBRK]) -m4trace:configure.in:708: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) -m4trace:configure.in:709: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.in:709: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t. +m4trace:configure.in:715: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SBRK]) +m4trace:configure.in:716: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) +m4trace:configure.in:716: -1- AH_OUTPUT([HAVE_DECL_STRCPY], [/* Define to 1 if you have the declaration of `strcpy\', and to 0 if you don\'t. */ #undef HAVE_DECL_STRCPY]) -m4trace:configure.in:709: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) -m4trace:configure.in:710: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:710: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you +m4trace:configure.in:716: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRCPY]) +m4trace:configure.in:717: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) +m4trace:configure.in:717: -1- AH_OUTPUT([HAVE_DECL_STRSIGNAL], [/* Define to 1 if you have the declaration of `strsignal\', and to 0 if you don\'t. */ #undef HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:710: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) -m4trace:configure.in:727: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.in:727: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you +m4trace:configure.in:717: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRSIGNAL]) +m4trace:configure.in:734: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) +m4trace:configure.in:734: -1- AH_OUTPUT([HAVE_DECL_STRTOLD], [/* Define to 1 if you have the declaration of `strtold\', and to 0 if you don\'t. */ #undef HAVE_DECL_STRTOLD]) -m4trace:configure.in:727: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:734: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:2352: AC_CHECK_DECL is expanded from... autoconf/general.m4:2372: AC_CHECK_DECLS is expanded from... -configure.in:727: the top level]) -m4trace:configure.in:727: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN]) -m4trace:configure.in:727: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) -m4trace:configure.in:730: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:734: the top level]) +m4trace:configure.in:734: -1- AC_DEFINE_TRACE_LITERAL([STRTOLD_BROKEN]) +m4trace:configure.in:734: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOLD]) +m4trace:configure.in:737: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:122: BASH_CHECK_DECL is expanded from... -configure.in:730: the top level]) -m4trace:configure.in:731: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:737: the top level]) +m4trace:configure.in:738: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:122: BASH_CHECK_DECL is expanded from... -configure.in:731: the top level]) -m4trace:configure.in:732: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:738: the top level]) +m4trace:configure.in:739: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:122: BASH_CHECK_DECL is expanded from... -configure.in:732: the top level]) -m4trace:configure.in:733: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:739: the top level]) +m4trace:configure.in:740: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:122: BASH_CHECK_DECL is expanded from... -configure.in:733: the top level]) -m4trace:configure.in:734: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:740: the top level]) +m4trace:configure.in:741: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:122: BASH_CHECK_DECL is expanded from... -configure.in:734: the top level]) -m4trace:configure.in:735: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:741: the top level]) +m4trace:configure.in:742: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:122: BASH_CHECK_DECL is expanded from... -configure.in:735: the top level]) -m4trace:configure.in:737: -1- AC_FUNC_MKTIME -m4trace:configure.in:737: -1- AC_CHECK_HEADERS([stdlib.h sys/time.h unistd.h]) -m4trace:configure.in:737: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ +configure.in:742: the top level]) +m4trace:configure.in:744: -1- AC_FUNC_MKTIME +m4trace:configure.in:744: -1- AC_CHECK_HEADERS([stdlib.h sys/time.h unistd.h]) +m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H]) -m4trace:configure.in:737: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */ +m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */ #undef HAVE_SYS_TIME_H]) -m4trace:configure.in:737: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ +m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H]) -m4trace:configure.in:737: -1- AC_CHECK_FUNCS([alarm]) -m4trace:configure.in:737: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */ +m4trace:configure.in:744: -1- AC_CHECK_FUNCS([alarm]) +m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */ #undef HAVE_ALARM]) -m4trace:configure.in:737: -1- AC_LIBSOURCE([mktime.c]) -m4trace:configure.in:737: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:744: -1- AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h]) -m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the <argz.h> header file. */ +m4trace:configure.in:744: -1- AC_LIBSOURCE([mktime.c]) +m4trace:configure.in:744: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:751: -1- AC_CHECK_HEADERS([argz.h errno.h fcntl.h malloc.h stdio_ext.h]) +m4trace:configure.in:751: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the <argz.h> header file. */ #undef HAVE_ARGZ_H]) -m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */ +m4trace:configure.in:751: -1- AH_OUTPUT([HAVE_ERRNO_H], [/* Define to 1 if you have the <errno.h> header file. */ #undef HAVE_ERRNO_H]) -m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */ +m4trace:configure.in:751: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */ #undef HAVE_FCNTL_H]) -m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */ +m4trace:configure.in:751: -1- AH_OUTPUT([HAVE_MALLOC_H], [/* Define to 1 if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H]) -m4trace:configure.in:744: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the <stdio_ext.h> header file. */ +m4trace:configure.in:751: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the <stdio_ext.h> header file. */ #undef HAVE_STDIO_EXT_H]) -m4trace:configure.in:747: -1- AC_FUNC_MMAP -m4trace:configure.in:747: -1- AC_CHECK_HEADERS([stdlib.h unistd.h]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ +m4trace:configure.in:754: -1- AC_FUNC_MMAP +m4trace:configure.in:754: -1- AC_CHECK_HEADERS([stdlib.h unistd.h]) +m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ +m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H]) -m4trace:configure.in:747: -1- AC_CHECK_FUNCS([getpagesize]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ +m4trace:configure.in:754: -1- AC_CHECK_FUNCS([getpagesize]) +m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */ #undef HAVE_GETPAGESIZE]) -m4trace:configure.in:747: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) -m4trace:configure.in:747: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ +m4trace:configure.in:754: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MMAP]) +m4trace:configure.in:754: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have a working `mmap\' system call. */ #undef HAVE_MMAP]) -m4trace:configure.in:749: -1- AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \ +m4trace:configure.in:756: -1- AC_CHECK_FUNCS([__argz_count __argz_next __argz_stringify dcgettext mempcpy \ munmap stpcpy strcspn strdup]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE___ARGZ_COUNT], [/* Define to 1 if you have the `__argz_count\' function. */ #undef HAVE___ARGZ_COUNT]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE___ARGZ_NEXT], [/* Define to 1 if you have the `__argz_next\' function. */ #undef HAVE___ARGZ_NEXT]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE___ARGZ_STRINGIFY], [/* Define to 1 if you have the `__argz_stringify\' function. */ #undef HAVE___ARGZ_STRINGIFY]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define to 1 if you have the `dcgettext\' function. */ #undef HAVE_DCGETTEXT]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */ #undef HAVE_MEMPCPY]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_MUNMAP], [/* Define to 1 if you have the `munmap\' function. */ #undef HAVE_MUNMAP]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */ #undef HAVE_STPCPY]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_STRCSPN], [/* Define to 1 if you have the `strcspn\' function. */ #undef HAVE_STRCSPN]) -m4trace:configure.in:749: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ +m4trace:configure.in:756: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */ #undef HAVE_STRDUP]) -m4trace:configure.in:757: -1- AC_SUBST([INTL_DEP]) -m4trace:configure.in:758: -1- AC_SUBST([INTL_INC]) -m4trace:configure.in:759: -1- AC_SUBST([LIBINTL_H]) -m4trace:configure.in:765: -1- AC_CHECK_HEADERS([wctype.h]) -m4trace:configure.in:765: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */ +m4trace:configure.in:764: -1- AC_SUBST([INTL_DEP]) +m4trace:configure.in:765: -1- AC_SUBST([INTL_INC]) +m4trace:configure.in:766: -1- AC_SUBST([LIBINTL_H]) +m4trace:configure.in:772: -1- AC_CHECK_HEADERS([wctype.h]) +m4trace:configure.in:772: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */ #undef HAVE_WCTYPE_H]) -m4trace:configure.in:765: -1- AC_CHECK_HEADERS([wchar.h]) -m4trace:configure.in:765: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */ +m4trace:configure.in:772: -1- AC_CHECK_HEADERS([wchar.h]) +m4trace:configure.in:772: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */ #undef HAVE_WCHAR_H]) -m4trace:configure.in:765: -1- AC_CHECK_HEADERS([langinfo.h]) -m4trace:configure.in:765: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the <langinfo.h> header file. */ +m4trace:configure.in:772: -1- AC_CHECK_HEADERS([langinfo.h]) +m4trace:configure.in:772: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the <langinfo.h> header file. */ #undef HAVE_LANGINFO_H]) -m4trace:configure.in:765: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS]) -m4trace:configure.in:765: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC]) -m4trace:configure.in:765: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN]) -m4trace:configure.in:765: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTOMB]) -m4trace:configure.in:765: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH]) -m4trace:configure.in:765: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP]) -m4trace:configure.in:765: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:772: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBSRTOWCS]) +m4trace:configure.in:772: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRTOWC]) +m4trace:configure.in:772: -2- AC_DEFINE_TRACE_LITERAL([HAVE_MBRLEN]) +m4trace:configure.in:772: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCTOMB]) +m4trace:configure.in:772: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCWIDTH]) +m4trace:configure.in:772: -2- AC_DEFINE_TRACE_LITERAL([HAVE_WCSDUP]) +m4trace:configure.in:772: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:1703: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:765: the top level]) -m4trace:configure.in:765: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T]) -m4trace:configure.in:765: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:772: the top level]) +m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T]) +m4trace:configure.in:772: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:1703: BASH_CHECK_MULTIBYTE is expanded from... -configure.in:765: the top level]) -m4trace:configure.in:765: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) -m4trace:configure.in:769: -1- AC_CHECK_LIB([dl], [dlopen]) -m4trace:configure.in:769: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */ +configure.in:772: the top level]) +m4trace:configure.in:772: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET]) +m4trace:configure.in:776: -1- AC_CHECK_LIB([dl], [dlopen]) +m4trace:configure.in:776: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define to 1 if you have the `dl\' library (-ldl). */ #undef HAVE_LIBDL]) -m4trace:configure.in:769: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.in:770: -1- AC_CHECK_FUNCS([dlopen dlclose dlsym]) -m4trace:configure.in:770: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */ +m4trace:configure.in:776: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) +m4trace:configure.in:777: -1- AC_CHECK_FUNCS([dlopen dlclose dlsym]) +m4trace:configure.in:777: -1- AH_OUTPUT([HAVE_DLOPEN], [/* Define to 1 if you have the `dlopen\' function. */ #undef HAVE_DLOPEN]) -m4trace:configure.in:770: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */ +m4trace:configure.in:777: -1- AH_OUTPUT([HAVE_DLCLOSE], [/* Define to 1 if you have the `dlclose\' function. */ #undef HAVE_DLCLOSE]) -m4trace:configure.in:770: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */ +m4trace:configure.in:777: -1- AH_OUTPUT([HAVE_DLSYM], [/* Define to 1 if you have the `dlsym\' function. */ #undef HAVE_DLSYM]) -m4trace:configure.in:774: -1- AC_DECL_SYS_SIGLIST -m4trace:configure.in:774: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. +m4trace:configure.in:781: -1- AC_DECL_SYS_SIGLIST +m4trace:configure.in:781: -1- _m4_warn([obsolete], [The macro `AC_DECL_SYS_SIGLIST' is obsolete. You should run autoupdate.], [autoconf/specific.m4:70: AC_DECL_SYS_SIGLIST is expanded from... -configure.in:774: the top level]) -m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:774: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you +configure.in:781: the top level]) +m4trace:configure.in:781: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) +m4trace:configure.in:781: -1- AH_OUTPUT([HAVE_DECL_SYS_SIGLIST], [/* Define to 1 if you have the declaration of `sys_siglist\', and to 0 if you don\'t. */ #undef HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:774: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) -m4trace:configure.in:778: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:781: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SYS_SIGLIST]) +m4trace:configure.in:785: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:562: BASH_FUNC_INET_ATON is expanded from... -configure.in:778: the top level]) -m4trace:configure.in:778: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON]) -m4trace:configure.in:778: -1- AC_LIBSOURCE([inet_aton.c]) -m4trace:configure.in:778: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:784: -1- AC_CHECK_LIB([sun], [getpwent]) -m4trace:configure.in:784: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */ +configure.in:785: the top level]) +m4trace:configure.in:785: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INET_ATON]) +m4trace:configure.in:785: -1- AC_LIBSOURCE([inet_aton.c]) +m4trace:configure.in:785: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:791: -1- AC_CHECK_LIB([sun], [getpwent]) +m4trace:configure.in:791: -1- AH_OUTPUT([HAVE_LIBSUN], [/* Define to 1 if you have the `sun\' library (-lsun). */ #undef HAVE_LIBSUN]) -m4trace:configure.in:784: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN]) -m4trace:configure.in:789: -1- AC_CHECK_LIB([socket], [getpeername], [bash_cv_have_socklib=yes], [bash_cv_have_socklib=no], [-lnsl]) -m4trace:configure.in:789: -1- AC_CHECK_LIB([nsl], [t_open], [bash_cv_have_libnsl=yes], [bash_cv_have_libnsl=no]) -m4trace:configure.in:789: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET]) -m4trace:configure.in:789: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME]) -m4trace:configure.in:793: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:791: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSUN]) +m4trace:configure.in:796: -1- AC_CHECK_LIB([socket], [getpeername], [bash_cv_have_socklib=yes], [bash_cv_have_socklib=no], [-lnsl]) +m4trace:configure.in:796: -1- AC_CHECK_LIB([nsl], [t_open], [bash_cv_have_libnsl=yes], [bash_cv_have_libnsl=no]) +m4trace:configure.in:796: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBSOCKET]) +m4trace:configure.in:796: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPEERNAME]) +m4trace:configure.in:800: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:737: BASH_FUNC_GETHOSTBYNAME is expanded from... -configure.in:793: the top level]) -m4trace:configure.in:793: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME]) -m4trace:configure.in:797: -1- AC_TYPE_UID_T -m4trace:configure.in:797: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:797: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ +configure.in:800: the top level]) +m4trace:configure.in:800: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETHOSTBYNAME]) +m4trace:configure.in:804: -1- AC_TYPE_UID_T +m4trace:configure.in:804: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) +m4trace:configure.in:804: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ #undef uid_t]) -m4trace:configure.in:797: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:797: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ +m4trace:configure.in:804: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) +m4trace:configure.in:804: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ #undef gid_t]) -m4trace:configure.in:797: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) -m4trace:configure.in:797: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually +m4trace:configure.in:804: -1- AC_DEFINE_TRACE_LITERAL([GETGROUPS_T]) +m4trace:configure.in:804: -1- AH_OUTPUT([GETGROUPS_T], [/* Define to the type of elements in the array set by `getgroups\'. Usually this is either `int\' or `gid_t\'. */ #undef GETGROUPS_T]) -m4trace:configure.in:798: -1- AC_TYPE_OFF_T -m4trace:configure.in:798: -1- AC_DEFINE_TRACE_LITERAL([off_t]) -m4trace:configure.in:798: -1- AH_OUTPUT([off_t], [/* Define to `long\' if <sys/types.h> does not define. */ +m4trace:configure.in:805: -1- AC_TYPE_OFF_T +m4trace:configure.in:805: -1- AC_DEFINE_TRACE_LITERAL([off_t]) +m4trace:configure.in:805: -1- AH_OUTPUT([off_t], [/* Define to `long\' if <sys/types.h> does not define. */ #undef off_t]) -m4trace:configure.in:799: -1- AC_TYPE_MODE_T -m4trace:configure.in:799: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) -m4trace:configure.in:799: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:806: -1- AC_TYPE_MODE_T +m4trace:configure.in:806: -1- AC_DEFINE_TRACE_LITERAL([mode_t]) +m4trace:configure.in:806: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef mode_t]) -m4trace:configure.in:800: -1- AC_TYPE_UID_T -m4trace:configure.in:800: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) -m4trace:configure.in:800: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ +m4trace:configure.in:807: -1- AC_TYPE_UID_T +m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([uid_t]) +m4trace:configure.in:807: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ #undef uid_t]) -m4trace:configure.in:800: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) -m4trace:configure.in:800: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ +m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([gid_t]) +m4trace:configure.in:807: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */ #undef gid_t]) -m4trace:configure.in:801: -1- AC_TYPE_PID_T -m4trace:configure.in:801: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) -m4trace:configure.in:801: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:808: -1- AC_TYPE_PID_T +m4trace:configure.in:808: -1- AC_DEFINE_TRACE_LITERAL([pid_t]) +m4trace:configure.in:808: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef pid_t]) -m4trace:configure.in:802: -1- AC_TYPE_SIZE_T -m4trace:configure.in:802: -1- AC_DEFINE_TRACE_LITERAL([size_t]) -m4trace:configure.in:802: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */ +m4trace:configure.in:809: -1- AC_TYPE_SIZE_T +m4trace:configure.in:809: -1- AC_DEFINE_TRACE_LITERAL([size_t]) +m4trace:configure.in:809: -1- AH_OUTPUT([size_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */ #undef size_t]) -m4trace:configure.in:803: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) -m4trace:configure.in:803: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:810: -1- AC_DEFINE_TRACE_LITERAL([ssize_t]) +m4trace:configure.in:810: -1- AH_OUTPUT([ssize_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef ssize_t]) -m4trace:configure.in:804: -1- AC_DEFINE_TRACE_LITERAL([time_t]) -m4trace:configure.in:804: -1- AH_OUTPUT([time_t], [/* Define to `long\' if <sys/types.h> does not define. */ +m4trace:configure.in:811: -1- AC_DEFINE_TRACE_LITERAL([time_t]) +m4trace:configure.in:811: -1- AH_OUTPUT([time_t], [/* Define to `long\' if <sys/types.h> does not define. */ #undef time_t]) -m4trace:configure.in:806: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:813: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:481: BASH_TYPE_LONG_LONG is expanded from... -configure.in:806: the top level]) -m4trace:configure.in:806: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) -m4trace:configure.in:807: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:813: the top level]) +m4trace:configure.in:813: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG]) +m4trace:configure.in:814: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:496: BASH_TYPE_UNSIGNED_LONG_LONG is expanded from... -configure.in:807: the top level]) -m4trace:configure.in:807: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) -m4trace:configure.in:809: -1- AC_TYPE_SIGNAL -m4trace:configure.in:809: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) -m4trace:configure.in:809: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ +configure.in:814: the top level]) +m4trace:configure.in:814: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG]) +m4trace:configure.in:816: -1- AC_TYPE_SIGNAL +m4trace:configure.in:816: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE]) +m4trace:configure.in:816: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */ #undef RETSIGTYPE]) -m4trace:configure.in:811: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:818: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:811: the top level]) -m4trace:configure.in:811: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) -m4trace:configure.in:811: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a `char\', as computed by sizeof. */ +configure.in:818: the top level]) +m4trace:configure.in:818: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR]) +m4trace:configure.in:818: -1- AH_OUTPUT([SIZEOF_CHAR], [/* The size of a `char\', as computed by sizeof. */ #undef SIZEOF_CHAR]) -m4trace:configure.in:812: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:819: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:812: the top level]) -m4trace:configure.in:812: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) -m4trace:configure.in:812: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of a `short\', as computed by sizeof. */ +configure.in:819: the top level]) +m4trace:configure.in:819: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_SHORT]) +m4trace:configure.in:819: -1- AH_OUTPUT([SIZEOF_SHORT], [/* The size of a `short\', as computed by sizeof. */ #undef SIZEOF_SHORT]) -m4trace:configure.in:813: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:820: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:813: the top level]) -m4trace:configure.in:813: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) -m4trace:configure.in:813: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */ +configure.in:820: the top level]) +m4trace:configure.in:820: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_INT]) +m4trace:configure.in:820: -1- AH_OUTPUT([SIZEOF_INT], [/* The size of a `int\', as computed by sizeof. */ #undef SIZEOF_INT]) -m4trace:configure.in:814: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:821: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:814: the top level]) -m4trace:configure.in:814: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) -m4trace:configure.in:814: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of a `long\', as computed by sizeof. */ +configure.in:821: the top level]) +m4trace:configure.in:821: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG]) +m4trace:configure.in:821: -1- AH_OUTPUT([SIZEOF_LONG], [/* The size of a `long\', as computed by sizeof. */ #undef SIZEOF_LONG]) -m4trace:configure.in:815: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:822: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:815: the top level]) -m4trace:configure.in:815: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P]) -m4trace:configure.in:815: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of a `char *\', as computed by sizeof. */ +configure.in:822: the top level]) +m4trace:configure.in:822: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_CHAR_P]) +m4trace:configure.in:822: -1- AH_OUTPUT([SIZEOF_CHAR_P], [/* The size of a `char *\', as computed by sizeof. */ #undef SIZEOF_CHAR_P]) -m4trace:configure.in:816: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:823: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:816: the top level]) -m4trace:configure.in:816: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE]) -m4trace:configure.in:816: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of a `double\', as computed by sizeof. */ +configure.in:823: the top level]) +m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_DOUBLE]) +m4trace:configure.in:823: -1- AH_OUTPUT([SIZEOF_DOUBLE], [/* The size of a `double\', as computed by sizeof. */ #undef SIZEOF_DOUBLE]) -m4trace:configure.in:817: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... +m4trace:configure.in:824: -1- _m4_warn([cross], [AC_RUN_IFELSE called without default to allow cross compiling], [autoconf/general.m4:2281: AC_RUN_IFELSE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... autoconf/types.m4:405: AC_CHECK_SIZEOF is expanded from... -configure.in:817: the top level]) -m4trace:configure.in:817: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) -m4trace:configure.in:817: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of a `long long\', as computed by sizeof. */ +configure.in:824: the top level]) +m4trace:configure.in:824: -1- AC_DEFINE_TRACE_LITERAL([SIZEOF_LONG_LONG]) +m4trace:configure.in:824: -1- AH_OUTPUT([SIZEOF_LONG_LONG], [/* The size of a `long long\', as computed by sizeof. */ #undef SIZEOF_LONG_LONG]) -m4trace:configure.in:819: -1- AC_DEFINE_TRACE_LITERAL([u_int]) -m4trace:configure.in:819: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if <sys/types.h> does not define. */ +m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([u_int]) +m4trace:configure.in:826: -1- AH_OUTPUT([u_int], [/* Define to `unsigned int\' if <sys/types.h> does not define. */ #undef u_int]) -m4trace:configure.in:820: -1- AC_DEFINE_TRACE_LITERAL([u_long]) -m4trace:configure.in:820: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if <sys/types.h> does not define. */ +m4trace:configure.in:827: -1- AC_DEFINE_TRACE_LITERAL([u_long]) +m4trace:configure.in:827: -1- AH_OUTPUT([u_long], [/* Define to `unsigned long\' if <sys/types.h> does not define. */ #undef u_long]) -m4trace:configure.in:822: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:822: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */ +m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) +m4trace:configure.in:829: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */ #undef bits16_t]) -m4trace:configure.in:822: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:822: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if <sys/types.h> does not define. */ +m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) +m4trace:configure.in:829: -1- AH_OUTPUT([bits16_t], [/* Define to `char\' if <sys/types.h> does not define. */ #undef bits16_t]) -m4trace:configure.in:822: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) -m4trace:configure.in:822: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */ +m4trace:configure.in:829: -1- AC_DEFINE_TRACE_LITERAL([bits16_t]) +m4trace:configure.in:829: -1- AH_OUTPUT([bits16_t], [/* Define to `short\' if <sys/types.h> does not define. */ #undef bits16_t]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:823: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */ +m4trace:configure.in:830: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) +m4trace:configure.in:830: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */ #undef u_bits16_t]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:823: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if <sys/types.h> does not define. */ +m4trace:configure.in:830: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) +m4trace:configure.in:830: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned char\' if <sys/types.h> does not define. */ #undef u_bits16_t]) -m4trace:configure.in:823: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) -m4trace:configure.in:823: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */ +m4trace:configure.in:830: -1- AC_DEFINE_TRACE_LITERAL([u_bits16_t]) +m4trace:configure.in:830: -1- AH_OUTPUT([u_bits16_t], [/* Define to `unsigned short\' if <sys/types.h> does not define. */ #undef u_bits16_t]) -m4trace:configure.in:824: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:824: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) +m4trace:configure.in:831: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef bits32_t]) -m4trace:configure.in:824: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:824: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if <sys/types.h> does not define. */ +m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) +m4trace:configure.in:831: -1- AH_OUTPUT([bits32_t], [/* Define to `long\' if <sys/types.h> does not define. */ #undef bits32_t]) -m4trace:configure.in:824: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) -m4trace:configure.in:824: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([bits32_t]) +m4trace:configure.in:831: -1- AH_OUTPUT([bits32_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef bits32_t]) -m4trace:configure.in:825: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:825: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */ +m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) +m4trace:configure.in:832: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */ #undef u_bits32_t]) -m4trace:configure.in:825: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:825: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if <sys/types.h> does not define. */ +m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) +m4trace:configure.in:832: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned long\' if <sys/types.h> does not define. */ #undef u_bits32_t]) -m4trace:configure.in:825: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) -m4trace:configure.in:825: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */ +m4trace:configure.in:832: -1- AC_DEFINE_TRACE_LITERAL([u_bits32_t]) +m4trace:configure.in:832: -1- AH_OUTPUT([u_bits32_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */ #undef u_bits32_t]) -m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:826: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if <sys/types.h> does not define. */ +m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) +m4trace:configure.in:833: -1- AH_OUTPUT([bits64_t], [/* Define to `char *\' if <sys/types.h> does not define. */ #undef bits64_t]) -m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:826: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */ +m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) +m4trace:configure.in:833: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */ #undef bits64_t]) -m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:826: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if <sys/types.h> does not define. */ +m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) +m4trace:configure.in:833: -1- AH_OUTPUT([bits64_t], [/* Define to `long long\' if <sys/types.h> does not define. */ #undef bits64_t]) -m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:826: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if <sys/types.h> does not define. */ +m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) +m4trace:configure.in:833: -1- AH_OUTPUT([bits64_t], [/* Define to `long\' if <sys/types.h> does not define. */ #undef bits64_t]) -m4trace:configure.in:826: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) -m4trace:configure.in:826: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */ +m4trace:configure.in:833: -1- AC_DEFINE_TRACE_LITERAL([bits64_t]) +m4trace:configure.in:833: -1- AH_OUTPUT([bits64_t], [/* Define to `double\' if <sys/types.h> does not define. */ #undef bits64_t]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:828: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) +m4trace:configure.in:835: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef ptrdiff_t]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:828: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if <sys/types.h> does not define. */ +m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) +m4trace:configure.in:835: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long\' if <sys/types.h> does not define. */ #undef ptrdiff_t]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:828: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if <sys/types.h> does not define. */ +m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) +m4trace:configure.in:835: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `long long\' if <sys/types.h> does not define. */ #undef ptrdiff_t]) -m4trace:configure.in:828: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) -m4trace:configure.in:828: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */ +m4trace:configure.in:835: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t]) +m4trace:configure.in:835: -1- AH_OUTPUT([ptrdiff_t], [/* Define to `int\' if <sys/types.h> does not define. */ #undef ptrdiff_t]) -m4trace:configure.in:831: -1- AC_HEADER_STAT -m4trace:configure.in:831: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN]) -m4trace:configure.in:831: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in <sys/stat.h> do not work properly. */ +m4trace:configure.in:838: -1- AC_HEADER_STAT +m4trace:configure.in:838: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN]) +m4trace:configure.in:838: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in <sys/stat.h> do not work properly. */ #undef STAT_MACROS_BROKEN]) -m4trace:configure.in:836: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC]) -m4trace:configure.in:841: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:843: -1- AC_DEFINE_TRACE_LITERAL([HAVE_HASH_BANG_EXEC]) +m4trace:configure.in:848: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:546: BASH_FUNC_LSTAT is expanded from... -configure.in:841: the top level]) -m4trace:configure.in:841: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT]) -m4trace:configure.in:845: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:848: the top level]) +m4trace:configure.in:848: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LSTAT]) +m4trace:configure.in:852: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1866: BASH_FUNC_CTYPE_NONASCII is expanded from... -configure.in:845: the top level]) -m4trace:configure.in:845: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII]) -m4trace:configure.in:846: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:852: the top level]) +m4trace:configure.in:852: -1- AC_DEFINE_TRACE_LITERAL([CTYPE_NON_ASCII]) +m4trace:configure.in:853: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:294: BASH_FUNC_DUP2_CLOEXEC_CHECK is expanded from... -configure.in:846: the top level]) -m4trace:configure.in:846: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN]) -m4trace:configure.in:847: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:853: the top level]) +m4trace:configure.in:853: -1- AC_DEFINE_TRACE_LITERAL([DUP2_BROKEN]) +m4trace:configure.in:854: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1280: BASH_SYS_PGRP_SYNC is expanded from... -configure.in:847: the top level]) -m4trace:configure.in:847: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:848: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:854: the top level]) +m4trace:configure.in:854: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) +m4trace:configure.in:855: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1217: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:848: the top level]) -m4trace:configure.in:848: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:855: the top level]) +m4trace:configure.in:855: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from... autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1217: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:848: the top level]) -m4trace:configure.in:848: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:855: the top level]) +m4trace:configure.in:855: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from... autoconf/general.m4:2223: AC_TRY_LINK is expanded from... @@ -1513,311 +1514,311 @@ autoconf/general.m4:2215: AC_LINK_IFELSE is expanded from... autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1217: BASH_SYS_SIGNAL_VINTAGE is expanded from... -configure.in:848: the top level]) -m4trace:configure.in:848: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS]) -m4trace:configure.in:848: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS]) -m4trace:configure.in:848: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD]) -m4trace:configure.in:851: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:855: the top level]) +m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGNALS]) +m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BSD_SIGNALS]) +m4trace:configure.in:855: -1- AC_DEFINE_TRACE_LITERAL([HAVE_USG_SIGHOLD]) +m4trace:configure.in:858: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:262: BASH_SYS_ERRLIST is expanded from... -configure.in:851: the top level]) -m4trace:configure.in:851: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST]) -m4trace:configure.in:852: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:858: the top level]) +m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_ERRLIST]) +m4trace:configure.in:859: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:233: BASH_SYS_SIGLIST is expanded from... -configure.in:852: the top level]) -m4trace:configure.in:852: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST]) -m4trace:configure.in:853: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:859: the top level]) +m4trace:configure.in:859: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_SIGLIST]) +m4trace:configure.in:860: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:179: BASH_DECL_UNDER_SYS_SIGLIST is expanded from... -configure.in:853: BASH_DECL_UNDER_SYS_SIGLIST is required by... +configure.in:860: BASH_DECL_UNDER_SYS_SIGLIST is required by... aclocal.m4:206: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:853: the top level]) -m4trace:configure.in:853: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED]) -m4trace:configure.in:853: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:860: the top level]) +m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([UNDER_SYS_SIGLIST_DECLARED]) +m4trace:configure.in:860: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:206: BASH_UNDER_SYS_SIGLIST is expanded from... -configure.in:853: the top level]) -m4trace:configure.in:853: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST]) -m4trace:configure.in:856: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:860: the top level]) +m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNDER_SYS_SIGLIST]) +m4trace:configure.in:863: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:380: BASH_TYPE_SIGHANDLER is expanded from... -configure.in:856: the top level]) -m4trace:configure.in:856: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER]) -m4trace:configure.in:857: -1- AC_DEFINE_TRACE_LITERAL([clock_t]) -m4trace:configure.in:858: -1- AC_DEFINE_TRACE_LITERAL([sigset_t]) -m4trace:configure.in:859: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T]) -m4trace:configure.in:859: -1- AC_DEFINE_TRACE_LITERAL([quad_t]) -m4trace:configure.in:860: -1- AC_DEFINE_TRACE_LITERAL([intmax_t]) -m4trace:configure.in:861: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) -m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T]) -m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([socklen_t]) -m4trace:configure.in:865: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:863: the top level]) +m4trace:configure.in:863: -1- AC_DEFINE_TRACE_LITERAL([VOID_SIGHANDLER]) +m4trace:configure.in:864: -1- AC_DEFINE_TRACE_LITERAL([clock_t]) +m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([sigset_t]) +m4trace:configure.in:866: -1- AC_DEFINE_TRACE_LITERAL([HAVE_QUAD_T]) +m4trace:configure.in:866: -1- AC_DEFINE_TRACE_LITERAL([quad_t]) +m4trace:configure.in:867: -1- AC_DEFINE_TRACE_LITERAL([intmax_t]) +m4trace:configure.in:868: -1- AC_DEFINE_TRACE_LITERAL([uintmax_t]) +m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SOCKLEN_T]) +m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([socklen_t]) +m4trace:configure.in:872: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:532: BASH_TYPE_RLIMIT is expanded from... -configure.in:865: the top level]) -m4trace:configure.in:865: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:872: the top level]) +m4trace:configure.in:872: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from... autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:532: BASH_TYPE_RLIMIT is expanded from... -configure.in:865: the top level]) -m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:865: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) -m4trace:configure.in:868: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC]) -m4trace:configure.in:869: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC]) -m4trace:configure.in:870: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:872: the top level]) +m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) +m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([RLIMTYPE]) +m4trace:configure.in:875: -2- AC_DEFINE_TRACE_LITERAL([TERMIOS_LDISC]) +m4trace:configure.in:876: -2- AC_DEFINE_TRACE_LITERAL([TERMIO_LDISC]) +m4trace:configure.in:877: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1058: BASH_STRUCT_DIRENT_D_INO is expanded from... -configure.in:870: the top level]) -m4trace:configure.in:870: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO]) -m4trace:configure.in:871: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:877: the top level]) +m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_INO]) +m4trace:configure.in:878: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1091: BASH_STRUCT_DIRENT_D_FILENO is expanded from... -configure.in:871: the top level]) -m4trace:configure.in:871: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO]) -m4trace:configure.in:872: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:878: the top level]) +m4trace:configure.in:878: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_FILENO]) +m4trace:configure.in:879: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1124: BASH_STRUCT_DIRENT_D_NAMLEN is expanded from... -configure.in:872: the top level]) -m4trace:configure.in:872: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN]) -m4trace:configure.in:873: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:879: the top level]) +m4trace:configure.in:879: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_DIRENT_D_NAMLEN]) +m4trace:configure.in:880: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1177: BASH_STRUCT_WINSIZE is expanded from... -configure.in:873: the top level]) -m4trace:configure.in:873: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:880: the top level]) +m4trace:configure.in:880: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from... autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1177: BASH_STRUCT_WINSIZE is expanded from... -configure.in:873: the top level]) -m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL]) -m4trace:configure.in:873: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS]) -m4trace:configure.in:874: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL]) -m4trace:configure.in:875: -1- AC_CHECK_MEMBERS([struct stat.st_blocks]) -m4trace:configure.in:875: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:875: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is member of `struct stat\'. */ +configure.in:880: the top level]) +m4trace:configure.in:880: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_SYS_IOCTL]) +m4trace:configure.in:880: -1- AC_DEFINE_TRACE_LITERAL([STRUCT_WINSIZE_IN_TERMIOS]) +m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TIMEVAL]) +m4trace:configure.in:882: -1- AC_CHECK_MEMBERS([struct stat.st_blocks]) +m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS]) +m4trace:configure.in:882: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is member of `struct stat\'. */ #undef HAVE_STRUCT_STAT_ST_BLOCKS]) -m4trace:configure.in:876: -1- AC_STRUCT_TM -m4trace:configure.in:876: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME]) -m4trace:configure.in:876: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your <sys/time.h> declares `struct tm\'. */ +m4trace:configure.in:883: -1- AC_STRUCT_TM +m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME]) +m4trace:configure.in:883: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your <sys/time.h> declares `struct tm\'. */ #undef TM_IN_SYS_TIME]) -m4trace:configure.in:877: -1- AC_STRUCT_TIMEZONE -m4trace:configure.in:877: -1- AC_CHECK_MEMBERS([struct tm.tm_zone], [], [], [#include <sys/types.h> +m4trace:configure.in:884: -1- AC_STRUCT_TIMEZONE +m4trace:configure.in:884: -1- AC_CHECK_MEMBERS([struct tm.tm_zone], [], [], [#include <sys/types.h> #include <$ac_cv_struct_tm> ]) -m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:877: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is member of `struct tm\'. */ +m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE]) +m4trace:configure.in:884: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is member of `struct tm\'. */ #undef HAVE_STRUCT_TM_TM_ZONE]) -m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE]) -m4trace:configure.in:877: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use +m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE]) +m4trace:configure.in:884: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE\' instead. */ #undef HAVE_TM_ZONE]) -m4trace:configure.in:877: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME]) -m4trace:configure.in:877: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array +m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME]) +m4trace:configure.in:884: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array `tzname\'. */ #undef HAVE_TZNAME]) -m4trace:configure.in:878: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE]) -m4trace:configure.in:881: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +m4trace:configure.in:885: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TIMEZONE]) +m4trace:configure.in:888: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:307: BASH_FUNC_STRSIGNAL is expanded from... -configure.in:881: the top level]) -m4trace:configure.in:881: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL]) -m4trace:configure.in:882: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:888: the top level]) +m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRSIGNAL]) +m4trace:configure.in:889: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:360: BASH_FUNC_OPENDIR_CHECK is expanded from... -configure.in:882: the top level]) -m4trace:configure.in:882: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST]) -m4trace:configure.in:883: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:889: the top level]) +m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([OPENDIR_NOT_ROBUST]) +m4trace:configure.in:890: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:685: BASH_FUNC_ULIMIT_MAXFDS is expanded from... -configure.in:883: the top level]) -m4trace:configure.in:883: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS]) -m4trace:configure.in:884: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:890: the top level]) +m4trace:configure.in:890: -1- AC_DEFINE_TRACE_LITERAL([ULIMIT_MAXFDS]) +m4trace:configure.in:891: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:606: BASH_FUNC_GETENV is expanded from... -configure.in:884: the top level]) -m4trace:configure.in:884: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV]) -m4trace:configure.in:886: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:891: the top level]) +m4trace:configure.in:891: -1- AC_DEFINE_TRACE_LITERAL([CAN_REDEFINE_GETENV]) +m4trace:configure.in:893: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:711: BASH_FUNC_GETCWD is expanded from... -configure.in:886: the top level]) -m4trace:configure.in:886: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN]) -m4trace:configure.in:886: -1- AC_LIBSOURCE([getcwd.c]) -m4trace:configure.in:886: -1- AC_SUBST([LIB@&t@OBJS]) -m4trace:configure.in:888: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:893: the top level]) +m4trace:configure.in:893: -1- AC_DEFINE_TRACE_LITERAL([GETCWD_BROKEN]) +m4trace:configure.in:893: -1- AC_LIBSOURCE([getcwd.c]) +m4trace:configure.in:893: -1- AC_SUBST([LIB@&t@OBJS]) +m4trace:configure.in:895: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:812: BASH_FUNC_POSIX_SETJMP is expanded from... -configure.in:888: the top level]) -m4trace:configure.in:888: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP]) -m4trace:configure.in:889: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:895: the top level]) +m4trace:configure.in:895: -1- AC_DEFINE_TRACE_LITERAL([HAVE_POSIX_SIGSETJMP]) +m4trace:configure.in:896: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:861: BASH_FUNC_STRCOLL is expanded from... -configure.in:889: the top level]) -m4trace:configure.in:889: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN]) -m4trace:configure.in:895: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:896: the top level]) +m4trace:configure.in:896: -1- AC_DEFINE_TRACE_LITERAL([STRCOLL_BROKEN]) +m4trace:configure.in:902: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:636: BASH_FUNC_STD_PUTENV is expanded from... -configure.in:895: the top level]) -m4trace:configure.in:895: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:897: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) -m4trace:configure.in:900: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. +configure.in:902: the top level]) +m4trace:configure.in:902: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) +m4trace:configure.in:904: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_PUTENV]) +m4trace:configure.in:907: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete. You should run autoupdate.], [autoconf/general.m4:2223: AC_TRY_LINK is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... autoconf/general.m4:1808: AC_CACHE_CHECK is expanded from... aclocal.m4:666: BASH_FUNC_STD_UNSETENV is expanded from... -configure.in:900: the top level]) -m4trace:configure.in:900: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:902: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) -m4trace:configure.in:905: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:907: the top level]) +m4trace:configure.in:907: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) +m4trace:configure.in:909: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STD_UNSETENV]) +m4trace:configure.in:912: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:887: BASH_FUNC_PRINTF_A_FORMAT is expanded from... -configure.in:905: the top level]) -m4trace:configure.in:905: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT]) -m4trace:configure.in:908: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:912: the top level]) +m4trace:configure.in:912: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRINTF_A_FORMAT]) +m4trace:configure.in:915: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1338: BASH_SYS_REINSTALL_SIGHANDLERS is expanded from... -configure.in:908: the top level]) -m4trace:configure.in:908: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS]) -m4trace:configure.in:909: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:915: the top level]) +m4trace:configure.in:915: -1- AC_DEFINE_TRACE_LITERAL([MUST_REINSTALL_SIGHANDLERS]) +m4trace:configure.in:916: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1396: BASH_SYS_JOB_CONTROL_MISSING is expanded from... -configure.in:909: the top level]) -m4trace:configure.in:909: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING]) -m4trace:configure.in:910: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:916: the top level]) +m4trace:configure.in:916: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL_MISSING]) +m4trace:configure.in:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1448: BASH_SYS_NAMED_PIPES is expanded from... -configure.in:910: the top level]) -m4trace:configure.in:910: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING]) -m4trace:configure.in:913: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:913: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires <sys/ioctl.h>. */ +configure.in:917: the top level]) +m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([NAMED_PIPES_MISSING]) +m4trace:configure.in:920: -1- AC_DEFINE_TRACE_LITERAL([GWINSZ_IN_SYS_IOCTL]) +m4trace:configure.in:920: -1- AH_OUTPUT([GWINSZ_IN_SYS_IOCTL], [/* Define to 1 if `TIOCGWINSZ\' requires <sys/ioctl.h>. */ #undef GWINSZ_IN_SYS_IOCTL]) -m4trace:configure.in:914: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +m4trace:configure.in:921: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1491: BASH_HAVE_TIOCSTAT is expanded from... -configure.in:914: the top level]) -m4trace:configure.in:914: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL]) -m4trace:configure.in:915: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:921: the top level]) +m4trace:configure.in:921: -1- AC_DEFINE_TRACE_LITERAL([TIOCSTAT_IN_SYS_IOCTL]) +m4trace:configure.in:922: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1503: BASH_HAVE_FIONREAD is expanded from... -configure.in:915: the top level]) -m4trace:configure.in:915: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL]) -m4trace:configure.in:917: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:922: the top level]) +m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([FIONREAD_IN_SYS_IOCTL]) +m4trace:configure.in:924: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1899: BASH_CHECK_WCONTINUED is expanded from... -configure.in:917: the top level]) -m4trace:configure.in:917: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN]) -m4trace:configure.in:920: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:924: the top level]) +m4trace:configure.in:924: -1- AC_DEFINE_TRACE_LITERAL([WCONTINUED_BROKEN]) +m4trace:configure.in:927: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1520: BASH_CHECK_SPEED_T is expanded from... -configure.in:920: the top level]) -m4trace:configure.in:920: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES]) -m4trace:configure.in:921: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS]) -m4trace:configure.in:922: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. +configure.in:927: the top level]) +m4trace:configure.in:927: -1- AC_DEFINE_TRACE_LITERAL([SPEED_T_IN_SYS_TYPES]) +m4trace:configure.in:928: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPW_DECLS]) +m4trace:configure.in:929: -1- _m4_warn([obsolete], [The macro `AC_TRY_RUN' is obsolete. You should run autoupdate.], [autoconf/general.m4:2289: AC_TRY_RUN is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1665: BASH_CHECK_RTSIGS is expanded from... -configure.in:922: the top level]) -m4trace:configure.in:922: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS]) -m4trace:configure.in:923: -1- AC_SUBST([SIGLIST_O]) -m4trace:configure.in:927: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:929: the top level]) +m4trace:configure.in:929: -1- AC_DEFINE_TRACE_LITERAL([UNUSABLE_RT_SIGNALS]) +m4trace:configure.in:930: -1- AC_SUBST([SIGLIST_O]) +m4trace:configure.in:934: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1614: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:927: the top level]) -m4trace:configure.in:927: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. +configure.in:934: the top level]) +m4trace:configure.in:934: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete. You should run autoupdate.], [autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:2173: AC_COMPILE_IFELSE is expanded from... autoconf/general.m4:2180: AC_TRY_COMPILE is expanded from... autoconf/general.m4:1799: AC_CACHE_VAL is expanded from... aclocal.m4:1614: BASH_CHECK_KERNEL_RLIMIT is expanded from... -configure.in:927: the top level]) -m4trace:configure.in:927: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL]) -m4trace:configure.in:935: -1- AC_CHECK_LIB([termcap], [tgetent], [bash_cv_termcap_lib=libtermcap], [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo, +configure.in:934: the top level]) +m4trace:configure.in:934: -1- AC_DEFINE_TRACE_LITERAL([RLIMIT_NEEDS_KERNEL]) +m4trace:configure.in:942: -1- AC_CHECK_LIB([termcap], [tgetent], [bash_cv_termcap_lib=libtermcap], [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo, [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, bash_cv_termcap_lib=gnutermcap)])])]) -m4trace:configure.in:935: -1- AC_CHECK_LIB([tinfo], [tgetent], [bash_cv_termcap_lib=libtinfo], [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, +m4trace:configure.in:942: -1- AC_CHECK_LIB([tinfo], [tgetent], [bash_cv_termcap_lib=libtinfo], [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses, [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, bash_cv_termcap_lib=gnutermcap)])]) -m4trace:configure.in:935: -1- AC_CHECK_LIB([curses], [tgetent], [bash_cv_termcap_lib=libcurses], [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, +m4trace:configure.in:942: -1- AC_CHECK_LIB([curses], [tgetent], [bash_cv_termcap_lib=libcurses], [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses, bash_cv_termcap_lib=gnutermcap)]) -m4trace:configure.in:935: -1- AC_CHECK_LIB([ncurses], [tgetent], [bash_cv_termcap_lib=libncurses], [bash_cv_termcap_lib=gnutermcap]) -m4trace:configure.in:937: -1- AC_SUBST([TERMCAP_LIB]) -m4trace:configure.in:938: -1- AC_SUBST([TERMCAP_DEP]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) -m4trace:configure.in:940: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) -m4trace:configure.in:941: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN]) -m4trace:configure.in:942: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY]) -m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL]) -m4trace:configure.in:955: -1- AC_SUBST([JOBS_O]) -m4trace:configure.in:968: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2]) -m4trace:configure.in:969: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:970: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) -m4trace:configure.in:971: -1- AC_DEFINE_TRACE_LITERAL([SVR5]) -m4trace:configure.in:986: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) -m4trace:configure.in:1032: -1- AC_SUBST([SHOBJ_CC]) -m4trace:configure.in:1033: -1- AC_SUBST([SHOBJ_CFLAGS]) -m4trace:configure.in:1034: -1- AC_SUBST([SHOBJ_LD]) -m4trace:configure.in:1035: -1- AC_SUBST([SHOBJ_LDFLAGS]) -m4trace:configure.in:1036: -1- AC_SUBST([SHOBJ_XLDFLAGS]) -m4trace:configure.in:1037: -1- AC_SUBST([SHOBJ_LIBS]) -m4trace:configure.in:1038: -1- AC_SUBST([SHOBJ_STATUS]) -m4trace:configure.in:1063: -1- AC_SUBST([PROFILE_FLAGS]) -m4trace:configure.in:1065: -1- AC_SUBST([incdir]) -m4trace:configure.in:1066: -1- AC_SUBST([BUILD_DIR]) -m4trace:configure.in:1068: -1- AC_SUBST([YACC]) -m4trace:configure.in:1069: -1- AC_SUBST([AR]) -m4trace:configure.in:1070: -1- AC_SUBST([ARFLAGS]) -m4trace:configure.in:1072: -1- AC_SUBST([BASHVERS]) -m4trace:configure.in:1073: -1- AC_SUBST([RELSTATUS]) -m4trace:configure.in:1074: -1- AC_SUBST([DEBUG]) -m4trace:configure.in:1075: -1- AC_SUBST([MALLOC_DEBUG]) -m4trace:configure.in:1077: -1- AC_SUBST([host_cpu]) -m4trace:configure.in:1078: -1- AC_SUBST([host_vendor]) -m4trace:configure.in:1079: -1- AC_SUBST([host_os]) -m4trace:configure.in:1081: -1- AC_SUBST([LOCAL_LIBS]) -m4trace:configure.in:1082: -1- AC_SUBST([LOCAL_CFLAGS]) -m4trace:configure.in:1083: -1- AC_SUBST([LOCAL_LDFLAGS]) -m4trace:configure.in:1084: -1- AC_SUBST([LOCAL_DEFS]) -m4trace:configure.in:1098: -1- AC_CONFIG_FILES([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \ +m4trace:configure.in:942: -1- AC_CHECK_LIB([ncurses], [tgetent], [bash_cv_termcap_lib=libncurses], [bash_cv_termcap_lib=gnutermcap]) +m4trace:configure.in:944: -1- AC_SUBST([TERMCAP_LIB]) +m4trace:configure.in:945: -1- AC_SUBST([TERMCAP_DEP]) +m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) +m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) +m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_FD]) +m4trace:configure.in:947: -1- AC_DEFINE_TRACE_LITERAL([DEV_FD_PREFIX]) +m4trace:configure.in:948: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DEV_STDIN]) +m4trace:configure.in:949: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_MAIL_DIRECTORY]) +m4trace:configure.in:956: -1- AC_DEFINE_TRACE_LITERAL([JOB_CONTROL]) +m4trace:configure.in:962: -1- AC_SUBST([JOBS_O]) +m4trace:configure.in:975: -1- AC_DEFINE_TRACE_LITERAL([SVR4_2]) +m4trace:configure.in:976: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) +m4trace:configure.in:977: -1- AC_DEFINE_TRACE_LITERAL([SVR4]) +m4trace:configure.in:978: -1- AC_DEFINE_TRACE_LITERAL([SVR5]) +m4trace:configure.in:993: -1- AC_DEFINE_TRACE_LITERAL([PGRP_PIPE]) +m4trace:configure.in:1040: -1- AC_SUBST([SHOBJ_CC]) +m4trace:configure.in:1041: -1- AC_SUBST([SHOBJ_CFLAGS]) +m4trace:configure.in:1042: -1- AC_SUBST([SHOBJ_LD]) +m4trace:configure.in:1043: -1- AC_SUBST([SHOBJ_LDFLAGS]) +m4trace:configure.in:1044: -1- AC_SUBST([SHOBJ_XLDFLAGS]) +m4trace:configure.in:1045: -1- AC_SUBST([SHOBJ_LIBS]) +m4trace:configure.in:1046: -1- AC_SUBST([SHOBJ_STATUS]) +m4trace:configure.in:1071: -1- AC_SUBST([PROFILE_FLAGS]) +m4trace:configure.in:1073: -1- AC_SUBST([incdir]) +m4trace:configure.in:1074: -1- AC_SUBST([BUILD_DIR]) +m4trace:configure.in:1076: -1- AC_SUBST([YACC]) +m4trace:configure.in:1077: -1- AC_SUBST([AR]) +m4trace:configure.in:1078: -1- AC_SUBST([ARFLAGS]) +m4trace:configure.in:1080: -1- AC_SUBST([BASHVERS]) +m4trace:configure.in:1081: -1- AC_SUBST([RELSTATUS]) +m4trace:configure.in:1082: -1- AC_SUBST([DEBUG]) +m4trace:configure.in:1083: -1- AC_SUBST([MALLOC_DEBUG]) +m4trace:configure.in:1085: -1- AC_SUBST([host_cpu]) +m4trace:configure.in:1086: -1- AC_SUBST([host_vendor]) +m4trace:configure.in:1087: -1- AC_SUBST([host_os]) +m4trace:configure.in:1089: -1- AC_SUBST([LOCAL_LIBS]) +m4trace:configure.in:1090: -1- AC_SUBST([LOCAL_CFLAGS]) +m4trace:configure.in:1091: -1- AC_SUBST([LOCAL_LDFLAGS]) +m4trace:configure.in:1092: -1- AC_SUBST([LOCAL_DEFS]) +m4trace:configure.in:1106: -1- AC_CONFIG_FILES([Makefile builtins/Makefile lib/readline/Makefile lib/glob/Makefile \ lib/intl/Makefile \ lib/malloc/Makefile lib/sh/Makefile lib/termcap/Makefile \ lib/tilde/Makefile doc/Makefile support/Makefile po/Makefile.in \ examples/loadables/Makefile examples/loadables/perl/Makefile \ pathnames.h]) -m4trace:configure.in:1098: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. +m4trace:configure.in:1106: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. You should run autoupdate.], []) -m4trace:configure.in:1098: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.in:1098: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.in:1106: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.in:1106: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) diff --git a/builtins/psize.c b/builtins/psize.c index c2154728..23abb658 100644 --- a/builtins/psize.c +++ b/builtins/psize.c @@ -40,7 +40,10 @@ #include "../command.h" #include "../general.h" #include "../sig.h" + +#ifndef errno extern int errno; +#endif int nw; @@ -202,6 +202,7 @@ typedef struct pattern_list { struct pattern_list *next; /* Clause to try in case this one failed. */ WORD_LIST *patterns; /* Linked list of patterns to test. */ COMMAND *action; /* Thing to execute if a pattern matches. */ + int flags; } PATTERN_LIST; /* The CASE command. */ @@ -86,6 +86,7 @@ enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, #define W_ASSNBLTIN 0x10000 /* word is a builtin command that takes assignments */ #define W_ASSIGNARG 0x20000 /* word is assignment argument to command */ #define W_HASQUOTEDNULL 0x40000 /* word contains a quoted null character */ +#define W_DQUOTE 0x80000 /* word should be treated as if double-quoted */ /* Possible values for subshell_environment */ #define SUBSHELL_ASYNC 0x01 /* subshell caused by `command &' */ @@ -198,6 +199,7 @@ typedef struct connection { /* Pattern/action structure for CASE_COM. */ typedef struct pattern_list { + int flags; struct pattern_list *next; /* Clause to try in case this one failed. */ WORD_LIST *patterns; /* Linked list of patterns to test. */ COMMAND *action; /* Thing to execute if a pattern matches. */ @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in for Bash 3.1, version 3.175, from autoconf version AC_ACVERSION. +# From configure.in for Bash 3.1, version 3.177, from autoconf version AC_ACVERSION. # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.59 for bash 3.1-devel. # @@ -312,7 +312,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EMACS lispdir DEBUGGER_START_FILE TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CROSS_COMPILE SIGNAMES_H CC_FOR_BUILD STATIC_LD CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB YACC SET_MAKE MAKE_SHELL SIZE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBOBJS INTL_DEP INTL_INC LIBINTL_H SIGLIST_O TERMCAP_LIB TERMCAP_DEP JOBS_O SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS PROFILE_FLAGS incdir BUILD_DIR ARFLAGS BASHVERS RELSTATUS DEBUG MALLOC_DEBUG LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EMACS lispdir DEBUGGER_START_FILE TESTSCRIPT PURIFY MALLOC_TARGET MALLOC_SRC MALLOC_LIB MALLOC_LIBRARY MALLOC_LDFLAGS MALLOC_DEP htmldir HELPDIR HELPDIRDEFINE HELPINSTALL HELPSTRINGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP CROSS_COMPILE SIGNAMES_H CC_FOR_BUILD STATIC_LD CFLAGS_FOR_BUILD CPPFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD RL_VERSION RL_MAJOR RL_MINOR READLINE_LIB READLINE_DEP RL_LIBDIR RL_INCLUDEDIR RL_INCLUDE HISTORY_LIB HISTORY_DEP HIST_LIBDIR TILDE_LIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR RANLIB ac_ct_RANLIB YACC SET_MAKE MAKE_SHELL SIZE MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE ALLOCA GLIBC21 LIBICONV LTLIBICONV INTLBISON BUILD_INCLUDED_LIBINTL USE_INCLUDED_LIBINTL CATOBJEXT DATADIRNAME INSTOBJEXT GENCAT INTLOBJS INTL_LIBTOOL_SUFFIX_PREFIX INTLLIBS LIBINTL LTLIBINTL POSUB LIBOBJS INTL_DEP INTL_INC LIBINTL_H SIGLIST_O TERMCAP_LIB TERMCAP_DEP JOBS_O SHOBJ_CC SHOBJ_CFLAGS SHOBJ_LD SHOBJ_LDFLAGS SHOBJ_XLDFLAGS SHOBJ_LIBS SHOBJ_STATUS PROFILE_FLAGS incdir BUILD_DIR ARFLAGS BASHVERS RELSTATUS DEBUG MALLOC_DEBUG LOCAL_LIBS LOCAL_CFLAGS LOCAL_LDFLAGS LOCAL_DEFS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1509,7 +1509,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X) *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X) *-dgux*) opt_bash_malloc=no ;; # DG/UX machines -*-qnx*) opt_bash_malloc=no ;; # QNX 4.2 +*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x *-machten4) opt_bash_malloc=no ;; # MachTen 4.x *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins *-beos*) opt_bash_malloc=no ;; # they say it's suitable @@ -4838,6 +4838,7 @@ echo "$as_me: WARNING: using private bash version" >&2;} esac fi +TILDE_LIB=-ltilde if test $opt_readline = yes; then cat >>confdefs.h <<\_ACEOF #define READLINE 1 @@ -4854,10 +4855,15 @@ _ACEOF esac READLINE_DEP= READLINE_LIB=-lreadline + # section for OS versions that don't allow unresolved symbols + # to be compiled into dynamic libraries. + case "$host_os" in + cygwin*) TILDE_LIB= ;; + esac else RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older version of + # section for OS versions that ship an older/broken version of # readline as a standard dynamic library and don't allow a # static version specified as -llibname to override the # dynamic version @@ -4921,6 +4927,7 @@ fi + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -26738,6 +26745,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading _ACEOF ;; esac ;; +*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; @@ -27536,6 +27544,7 @@ s,@RL_INCLUDE@,$RL_INCLUDE,;t t s,@HISTORY_LIB@,$HISTORY_LIB,;t t s,@HISTORY_DEP@,$HISTORY_DEP,;t t s,@HIST_LIBDIR@,$HIST_LIBDIR,;t t +s,@TILDE_LIB@,$TILDE_LIB,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t diff --git a/configure.in b/configure.in index 5c7858d1..43b242d4 100644 --- a/configure.in +++ b/configure.in @@ -22,7 +22,7 @@ dnl Process this file with autoconf to produce a configure script. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. -AC_REVISION([for Bash 3.1, version 3.175, from autoconf version] AC_ACVERSION)dnl +AC_REVISION([for Bash 3.1, version 3.177, from autoconf version] AC_ACVERSION)dnl define(bashvers, 3.1) define(relstatus, devel) @@ -82,7 +82,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X) *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X) *-dgux*) opt_bash_malloc=no ;; # DG/UX machines -*-qnx*) opt_bash_malloc=no ;; # QNX 4.2 +*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x *-machten4) opt_bash_malloc=no ;; # MachTen 4.x *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins *-beos*) opt_bash_malloc=no ;; # they say it's suitable @@ -488,6 +488,7 @@ then esac fi +TILDE_LIB=-ltilde if test $opt_readline = yes; then AC_DEFINE(READLINE) if test "$opt_with_installed_readline" != "no" ; then @@ -501,10 +502,15 @@ if test $opt_readline = yes; then esac READLINE_DEP= READLINE_LIB=-lreadline + # section for OS versions that don't allow unresolved symbols + # to be compiled into dynamic libraries. + case "$host_os" in + cygwin*) TILDE_LIB= ;; + esac else RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older version of + # section for OS versions that ship an older/broken version of # readline as a standard dynamic library and don't allow a # static version specified as -llibname to override the # dynamic version @@ -560,6 +566,7 @@ AC_SUBST(RL_INCLUDE) AC_SUBST(HISTORY_LIB) AC_SUBST(HISTORY_DEP) AC_SUBST(HIST_LIBDIR) +AC_SUBST(TILDE_LIB) dnl END READLINE and HISTORY LIBRARY SECTION @@ -985,6 +992,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading case "`uname -r`" in 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;; esac ;; +*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; diff --git a/configure.in~ b/configure.in~ index 3a59d9c9..f91000e8 100644 --- a/configure.in~ +++ b/configure.in~ @@ -22,7 +22,7 @@ dnl Process this file with autoconf to produce a configure script. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. -AC_REVISION([for Bash 3.1, version 3.175, from autoconf version] AC_ACVERSION)dnl +AC_REVISION([for Bash 3.1, version 3.177, from autoconf version] AC_ACVERSION)dnl define(bashvers, 3.1) define(relstatus, devel) @@ -82,7 +82,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF *-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X) *-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X) *-dgux*) opt_bash_malloc=no ;; # DG/UX machines -*-qnx*) opt_bash_malloc=no ;; # QNX 4.2 +*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x *-machten4) opt_bash_malloc=no ;; # MachTen 4.x *-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins *-beos*) opt_bash_malloc=no ;; # they say it's suitable @@ -402,7 +402,8 @@ if test "x$cross_compiling" = "xyes"; then . ${cross_cache} fi unset cross_cache - CROSS_COMPILING_FLAG='-DCROSS_COMPILING' + CROSS_COMPILE='-DCROSS_COMPILING' + AC_SUBST(CROSS_COMPILE) fi AC_SUBST(SIGNAMES_H) @@ -487,6 +488,7 @@ then esac fi +TILDE_LIB=-ltilde if test $opt_readline = yes; then AC_DEFINE(READLINE) if test "$opt_with_installed_readline" != "no" ; then @@ -503,7 +505,7 @@ if test $opt_readline = yes; then else RL_LIBDIR='$(dot)/$(LIBSUBDIR)/readline' READLINE_DEP='$(READLINE_LIBRARY)' - # section for OS versions that ship an older version of + # section for OS versions that ship an older/broken version of # readline as a standard dynamic library and don't allow a # static version specified as -llibname to override the # dynamic version @@ -559,6 +561,7 @@ AC_SUBST(RL_INCLUDE) AC_SUBST(HISTORY_LIB) AC_SUBST(HISTORY_DEP) AC_SUBST(HIST_LIBDIR) +AC_SUBST(TILDE_LIB) dnl END READLINE and HISTORY LIBRARY SECTION @@ -984,6 +987,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading case "`uname -r`" in 2.[[456789]]*|3*) AC_DEFINE(PGRP_PIPE) ;; esac ;; +*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;; *qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;; powerux*) LOCAL_LIBS="-lgen" ;; cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; @@ -1004,6 +1008,7 @@ freebsd[[3-9]]*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading fi ;; freebsdelf*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading +dragonfly*) LOCAL_LDFLAGS=-rdynamic ;; # allow dynamic loading esac case "$host_cpu" in diff --git a/examples/misc/aliasconv.bash b/examples/misc/aliasconv.bash index d3b5776c..2245f061 100755 --- a/examples/misc/aliasconv.bash +++ b/examples/misc/aliasconv.bash @@ -22,7 +22,7 @@ mkalias () s/#/\#/g') echo $1 \(\) "{" command "$comm" "; }" ;; - *) echo alias ${1}=\'$(echo "${2}" | sed "s:':'\\\\'':")\' ;; + *) echo alias ${1}=\'$(echo "${2}" | sed "s:':'\\\\'':g")\' ;; esac } EOF diff --git a/examples/misc/aliasconv.bash~ b/examples/misc/aliasconv.bash~ new file mode 100755 index 00000000..d3b5776c --- /dev/null +++ b/examples/misc/aliasconv.bash~ @@ -0,0 +1,42 @@ +#! /bin/bash +# +# aliasconv.bash - convert csh aliases to bash aliases and functions +# +# usage: aliasconv.bash +# +# Chet Ramey +# chet@po.cwru.edu +# +trap 'rm -f /tmp/cb$$.?' 0 1 2 3 6 15 + +T=$'\t' + +cat << \EOF >/tmp/cb$$.1 +mkalias () +{ + case $2 in + '') echo alias ${1}="''" ;; + *[#\!]*) + comm=$(echo $2 | sed 's/\!\*/"$\@"/g + s/\!:\([1-9]\)/"$\1"/g + s/#/\#/g') + echo $1 \(\) "{" command "$comm" "; }" + ;; + *) echo alias ${1}=\'$(echo "${2}" | sed "s:':'\\\\'':")\' ;; + esac +} +EOF + +# the first thing we want to do is to protect single quotes in the alias, +# since they whole thing is going to be surrounded by single quotes when +# passed to mkalias + +sed -e "s:':\\'\\\'\\':" -e "s/^\([a-zA-Z0-9_-]*\)$T\(.*\)$/mkalias \1 '\2'/" >>/tmp/cb$$.1 + +$BASH /tmp/cb$$.1 | sed -e 's/\$cwd/\$PWD/g' \ + -e 's/\$term/\$TERM/g' \ + -e 's/\$home/\$HOME/g' \ + -e 's/\$user/\$USER/g' \ + -e 's/\$prompt/\$PS1/g' + +exit 0 @@ -312,7 +312,13 @@ duplicate_buffered_stream (fd1, fd2) (bash_input.location.buffered_fd == fd2); if (buffers[fd2]) - free_buffered_stream (buffers[fd2]); + { + /* If the two objects share the same b_buffer, don't free it. */ + if (buffers[fd1] && buffers[fd1]->b_buffer && buffers[fd1]->b_buffer == buffers[fd2]->b_buffer) + buffers[fd2] = (BUFFERED_STREAM *)NULL; + else + free_buffered_stream (buffers[fd2]); + } buffers[fd2] = copy_buffered_stream (buffers[fd1]); if (buffers[fd2]) buffers[fd2]->b_fd = fd2; @@ -50,7 +50,7 @@ extern int errno; if a signal is received. */ static char localbuf[128]; -static int local_index, local_bufused; +static int local_index = 0, local_bufused = 0; /* Posix and USG systems do not guarantee to restart read () if it is interrupted by a signal. We do the read ourselves, and restart it @@ -216,7 +216,6 @@ save_bash_input (fd, new_fd) { int nfd; -itrace("save_bash_input: %d -> %d", fd, new_fd); /* Sync the stream so we can re-read from the new file descriptor. We might be able to avoid this by copying the buffered stream verbatim to the new file descriptor. */ @@ -279,7 +278,6 @@ int check_bash_input (fd) int fd; { -itrace("check_bash_input: %d", fd); if (fd_is_bash_input (fd)) { if (fd > 0) @@ -314,7 +312,13 @@ duplicate_buffered_stream (fd1, fd2) (bash_input.location.buffered_fd == fd2); if (buffers[fd2]) - free_buffered_stream (buffers[fd2]); + { + /* If the two objects share the same b_buffer, don't free it. */ + if (buffers[fd1]->b_buffer == buffers[fd2]->b_buffer) + buffers[fd2] = (BUFFERED_STREAM *)NULL; + else + free_buffered_stream (buffers[fd2]); + } buffers[fd2] = copy_buffered_stream (buffers[fd1]); if (buffers[fd2]) buffers[fd2]->b_fd = fd2; @@ -382,6 +382,7 @@ make_pattern_list (patterns, action) temp->patterns = REVERSE_LIST (patterns, WORD_LIST *); temp->action = action; temp->next = NULL; + temp->flags = 0; return (temp); } @@ -2703,9 +2703,8 @@ read_token (command) /* * Match a $(...) or other grouping construct. This has to handle embedded * quoted strings ('', ``, "") and nested constructs. It also must handle - * reprompting the user, if necessary, after reading a newline (unless the - * P_NONL flag is passed), and returning correct error values if it reads - * EOF. + * reprompting the user, if necessary, after reading a newline, and returning + * correct error values if it reads EOF. */ #define P_FIRSTCLOSE 0x01 #define P_ALLOWESC 0x02 @@ -2852,6 +2851,7 @@ parse_matched_pair (qc, open, close, lenp, flags) else if MBTEST(open == '"' && ch == '`') { nestret = parse_matched_pair (0, '`', '`', &nestlen, rflags); +add_nestret: if (nestret == &matched_pair_error) { free (ret); @@ -2865,6 +2865,11 @@ parse_matched_pair (qc, open, close, lenp, flags) } FREE (nestret); } + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'')) + { + nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); + goto add_nestret; + } else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ /* check for $(), $[], or ${} inside quoted string. */ { @@ -2876,18 +2881,8 @@ parse_matched_pair (qc, open, close, lenp, flags) nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); else if (ch == '[') /* ] */ nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); - if (nestret == &matched_pair_error) - { - free (ret); - return &matched_pair_error; - } - if (nestlen) - { - RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); - strcpy (ret + retind, nestret); - retind += nestlen; - } - FREE (nestret); + + goto add_nestret; } was_dollar = MBTEST(ch == '$'); } diff --git a/parse.y.old b/parse.y.old new file mode 100644 index 00000000..e510c994 --- /dev/null +++ b/parse.y.old @@ -0,0 +1,4891 @@ +/* Yacc grammar for bash. */ + +/* Copyright (C) 1989-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + Bash is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2, or (at your option) any later + version. + + Bash 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 General Public License + for more details. + + You should have received a copy of the GNU General Public License along + with Bash; see the file LICENSE. If not, write to the Free Software + Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + +%{ +#include "config.h" + +#include "bashtypes.h" +#include "bashansi.h" + +#include "filecntl.h" + +#if defined (HAVE_UNISTD_H) +# include <unistd.h> +#endif + +#if defined (HAVE_LOCALE_H) +# include <locale.h> +#endif + +#include <stdio.h> +#include "chartypes.h" +#include <signal.h> + +#include "memalloc.h" + +#include "bashintl.h" + +#define NEED_STRFTIME_DECL /* used in externs.h */ + +#include "shell.h" +#include "trap.h" +#include "flags.h" +#include "parser.h" +#include "mailcheck.h" +#include "test.h" +#include "builtins.h" +#include "builtins/common.h" +#include "builtins/builtext.h" + +#include "shmbutil.h" + +#if defined (READLINE) +# include "bashline.h" +# include <readline/readline.h> +#endif /* READLINE */ + +#if defined (HISTORY) +# include "bashhist.h" +# include <readline/history.h> +#endif /* HISTORY */ + +#if defined (JOB_CONTROL) +# include "jobs.h" +#endif /* JOB_CONTROL */ + +#if defined (ALIAS) +# include "alias.h" +#else +typedef void *alias_t; +#endif /* ALIAS */ + +#if defined (PROMPT_STRING_DECODE) +# ifndef _MINIX +# include <sys/param.h> +# endif +# include <time.h> +# if defined (TM_IN_SYS_TIME) +# include <sys/types.h> +# include <sys/time.h> +# endif /* TM_IN_SYS_TIME */ +# include "maxpath.h" +#endif /* PROMPT_STRING_DECODE */ + +#define RE_READ_TOKEN -99 +#define NO_EXPANSION -100 + +#ifdef DEBUG +# define YYDEBUG 1 +#else +# define YYDEBUG 0 +#endif + +#if defined (HANDLE_MULTIBYTE) +# define last_shell_getc_is_singlebyte \ + ((shell_input_line_index > 1) \ + ? shell_input_line_property[shell_input_line_index - 1] \ + : 1) +# define MBTEST(x) ((x) && last_shell_getc_is_singlebyte) +#else +# define last_shell_getc_is_singlebyte 1 +# define MBTEST(x) ((x)) +#endif + +#if defined (EXTENDED_GLOB) +extern int extended_glob; +#endif + +extern int eof_encountered; +extern int no_line_editing, running_under_emacs; +extern int current_command_number; +extern int sourcelevel; +extern int posixly_correct; +extern int last_command_exit_value; +extern int interrupt_immediately; +extern char *shell_name, *current_host_name; +extern char *dist_version; +extern int patch_level; +extern int dump_translatable_strings, dump_po_strings; +extern sh_builtin_func_t *last_shell_builtin, *this_shell_builtin; +#if defined (BUFFERED_INPUT) +extern int bash_input_fd_changed; +#endif + +extern int errno; +/* **************************************************************** */ +/* */ +/* "Forward" declarations */ +/* */ +/* **************************************************************** */ + +#ifdef DEBUG +static void debug_parser __P((int)); +#endif + +static int yy_getc __P((void)); +static int yy_ungetc __P((int)); + +#if defined (READLINE) +static int yy_readline_get __P((void)); +static int yy_readline_unget __P((int)); +#endif + +static int yy_string_get __P((void)); +static int yy_string_unget __P((int)); +static int yy_stream_get __P((void)); +static int yy_stream_unget __P((int)); + +static int shell_getc __P((int)); +static void shell_ungetc __P((int)); +static void discard_until __P((int)); + +#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) +static void push_string __P((char *, int, alias_t *)); +static void pop_string __P((void)); +static void free_string_list __P((void)); +#endif + +static char *read_a_line __P((int)); + +static int reserved_word_acceptable __P((int)); +static int yylex __P((void)); +static int alias_expand_token __P((char *)); +static int time_command_acceptable __P((void)); +static int special_case_tokens __P((char *)); +static int read_token __P((int)); +static char *parse_matched_pair __P((int, int, int, int *, int)); +#if defined (ARRAY_VARS) +static char *parse_compound_assignment __P((int *)); +#endif +#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND) +static int parse_dparen __P((int)); +static int parse_arith_cmd __P((char **, int)); +#endif +#if defined (COND_COMMAND) +static void cond_error __P((void)); +static COND_COM *cond_expr __P((void)); +static COND_COM *cond_or __P((void)); +static COND_COM *cond_and __P((void)); +static COND_COM *cond_term __P((void)); +static int cond_skip_newlines __P((void)); +static COMMAND *parse_cond_command __P((void)); +#endif +#if defined (ARRAY_VARS) +static int token_is_assignment __P((char *, int)); +static int token_is_ident __P((char *, int)); +#endif +static int read_token_word __P((int)); +static void discard_parser_constructs __P((int)); + +static char *error_token_from_token __P((int)); +static char *error_token_from_text __P((void)); +static void print_offending_line __P((void)); +static void report_syntax_error __P((char *)); + +static void handle_eof_input_unit __P((void)); +static void prompt_again __P((void)); +#if 0 +static void reset_readline_prompt __P((void)); +#endif +static void print_prompt __P((void)); + +#if defined (HISTORY) +char *history_delimiting_chars __P((void)); +#endif + +#if defined (HANDLE_MULTIBYTE) +static void set_line_mbstate __P((void)); +static char *shell_input_line_property = NULL; +#else +# define set_line_mbstate() +#endif + +extern int yyerror __P((const char *)); + +#ifdef DEBUG +extern int yydebug; +#endif + +/* Default prompt strings */ +char *primary_prompt = PPROMPT; +char *secondary_prompt = SPROMPT; + +/* PROMPT_STRING_POINTER points to one of these, never to an actual string. */ +char *ps1_prompt, *ps2_prompt; + +/* Handle on the current prompt string. Indirectly points through + ps1_ or ps2_prompt. */ +char **prompt_string_pointer = (char **)NULL; +char *current_prompt_string; + +/* Non-zero means we expand aliases in commands. */ +int expand_aliases = 0; + +/* If non-zero, the decoded prompt string undergoes parameter and + variable substitution, command substitution, arithmetic substitution, + string expansion, process substitution, and quote removal in + decode_prompt_string. */ +int promptvars = 1; + +/* If non-zero, $'...' and $"..." are expanded when they appear within + a ${...} expansion, even when the expansion appears within double + quotes. */ +int extended_quote = 1; + +/* The decoded prompt string. Used if READLINE is not defined or if + editing is turned off. Analogous to current_readline_prompt. */ +static char *current_decoded_prompt; + +/* The number of lines read from input while creating the current command. */ +int current_command_line_count; + +/* Variables to manage the task of reading here documents, because we need to + defer the reading until after a complete command has been collected. */ +static REDIRECT *redir_stack[10]; +int need_here_doc; + +/* Where shell input comes from. History expansion is performed on each + line when the shell is interactive. */ +static char *shell_input_line = (char *)NULL; +static int shell_input_line_index; +static int shell_input_line_size; /* Amount allocated for shell_input_line. */ +static int shell_input_line_len; /* strlen (shell_input_line) */ + +/* Either zero or EOF. */ +static int shell_input_line_terminator; + +/* The line number in a script on which a function definition starts. */ +static int function_dstart; + +/* The line number in a script on which a function body starts. */ +static int function_bstart; + +/* The line number in a script at which an arithmetic for command starts. */ +static int arith_for_lineno; + +/* The line number in a script where the word in a `case WORD', `select WORD' + or `for WORD' begins. This is a nested command maximum, since the array + index is decremented after a case, select, or for command is parsed. */ +#define MAX_CASE_NEST 128 +static int word_lineno[MAX_CASE_NEST]; +static int word_top = -1; + +/* If non-zero, it is the token that we want read_token to return + regardless of what text is (or isn't) present to be read. This + is reset by read_token. If token_to_read == WORD or + ASSIGNMENT_WORD, yylval.word should be set to word_desc_to_read. */ +static int token_to_read; +static WORD_DESC *word_desc_to_read; + +static REDIRECTEE redir; +%} + +%union { + WORD_DESC *word; /* the word that we read. */ + int number; /* the number that we read. */ + WORD_LIST *word_list; + COMMAND *command; + REDIRECT *redirect; + ELEMENT element; + PATTERN_LIST *pattern; +} + +/* Reserved words. Members of the first group are only recognized + in the case that they are preceded by a list_terminator. Members + of the second group are for [[...]] commands. Members of the + third group are recognized only under special circumstances. */ +%token IF THEN ELSE ELIF FI CASE ESAC FOR SELECT WHILE UNTIL DO DONE FUNCTION +%token COND_START COND_END COND_ERROR +%token IN BANG TIME TIMEOPT + +/* More general tokens. yylex () knows how to make these. */ +%token <word> WORD ASSIGNMENT_WORD +%token <number> NUMBER +%token <word_list> ARITH_CMD ARITH_FOR_EXPRS +%token <command> COND_CMD +%token AND_AND OR_OR GREATER_GREATER LESS_LESS LESS_AND LESS_LESS_LESS +%token GREATER_AND SEMI_SEMI LESS_LESS_MINUS AND_GREATER LESS_GREATER +%token GREATER_BAR + +/* The types that the various syntactical units return. */ + +%type <command> inputunit command pipeline pipeline_command +%type <command> list list0 list1 compound_list simple_list simple_list1 +%type <command> simple_command shell_command +%type <command> for_command select_command case_command group_command +%type <command> arith_command +%type <command> cond_command +%type <command> arith_for_command +%type <command> function_def function_body if_command elif_clause subshell +%type <redirect> redirection redirection_list +%type <element> simple_command_element +%type <word_list> word_list pattern +%type <pattern> pattern_list case_clause_sequence case_clause +%type <number> timespec +%type <number> list_terminator + +%start inputunit + +%left '&' ';' '\n' yacc_EOF +%left AND_AND OR_OR +%right '|' +%% + +inputunit: simple_list simple_list_terminator + { + /* Case of regular command. Discard the error + safety net,and return the command just parsed. */ + global_command = $1; + eof_encountered = 0; + /* discard_parser_constructs (0); */ + YYACCEPT; + } + | '\n' + { + /* Case of regular command, but not a very + interesting one. Return a NULL command. */ + global_command = (COMMAND *)NULL; + YYACCEPT; + } + | error '\n' + { + /* Error during parsing. Return NULL command. */ + global_command = (COMMAND *)NULL; + eof_encountered = 0; + /* discard_parser_constructs (1); */ + if (interactive) + { + YYACCEPT; + } + else + { + YYABORT; + } + } + | yacc_EOF + { + /* Case of EOF seen by itself. Do ignoreeof or + not. */ + global_command = (COMMAND *)NULL; + handle_eof_input_unit (); + YYACCEPT; + } + ; + +word_list: WORD + { $$ = make_word_list ($1, (WORD_LIST *)NULL); } + | word_list WORD + { $$ = make_word_list ($2, $1); } + ; + +redirection: '>' WORD + { + redir.filename = $2; + $$ = make_redirection (1, r_output_direction, redir); + } + | '<' WORD + { + redir.filename = $2; + $$ = make_redirection (0, r_input_direction, redir); + } + | NUMBER '>' WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_output_direction, redir); + } + | NUMBER '<' WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_input_direction, redir); + } + | GREATER_GREATER WORD + { + redir.filename = $2; + $$ = make_redirection (1, r_appending_to, redir); + } + | NUMBER GREATER_GREATER WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_appending_to, redir); + } + | LESS_LESS WORD + { + redir.filename = $2; + $$ = make_redirection (0, r_reading_until, redir); + redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_reading_until, redir); + redir_stack[need_here_doc++] = $$; + } + | LESS_LESS_LESS WORD + { + redir.filename = $2; + $$ = make_redirection (0, r_reading_string, redir); + } + | NUMBER LESS_LESS_LESS WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_reading_string, redir); + } + | LESS_AND NUMBER + { + redir.dest = $2; + $$ = make_redirection (0, r_duplicating_input, redir); + } + | NUMBER LESS_AND NUMBER + { + redir.dest = $3; + $$ = make_redirection ($1, r_duplicating_input, redir); + } + | GREATER_AND NUMBER + { + redir.dest = $2; + $$ = make_redirection (1, r_duplicating_output, redir); + } + | NUMBER GREATER_AND NUMBER + { + redir.dest = $3; + $$ = make_redirection ($1, r_duplicating_output, redir); + } + | LESS_AND WORD + { + redir.filename = $2; + $$ = make_redirection (0, r_duplicating_input_word, redir); + } + | NUMBER LESS_AND WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_duplicating_input_word, redir); + } + | GREATER_AND WORD + { + redir.filename = $2; + $$ = make_redirection (1, r_duplicating_output_word, redir); + } + | NUMBER GREATER_AND WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_duplicating_output_word, redir); + } + | LESS_LESS_MINUS WORD + { + redir.filename = $2; + $$ = make_redirection + (0, r_deblank_reading_until, redir); + redir_stack[need_here_doc++] = $$; + } + | NUMBER LESS_LESS_MINUS WORD + { + redir.filename = $3; + $$ = make_redirection + ($1, r_deblank_reading_until, redir); + redir_stack[need_here_doc++] = $$; + } + | GREATER_AND '-' + { + redir.dest = 0; + $$ = make_redirection (1, r_close_this, redir); + } + | NUMBER GREATER_AND '-' + { + redir.dest = 0; + $$ = make_redirection ($1, r_close_this, redir); + } + | LESS_AND '-' + { + redir.dest = 0; + $$ = make_redirection (0, r_close_this, redir); + } + | NUMBER LESS_AND '-' + { + redir.dest = 0; + $$ = make_redirection ($1, r_close_this, redir); + } + | AND_GREATER WORD + { + redir.filename = $2; + $$ = make_redirection (1, r_err_and_out, redir); + } + | NUMBER LESS_GREATER WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_input_output, redir); + } + | LESS_GREATER WORD + { + redir.filename = $2; + $$ = make_redirection (0, r_input_output, redir); + } + | GREATER_BAR WORD + { + redir.filename = $2; + $$ = make_redirection (1, r_output_force, redir); + } + | NUMBER GREATER_BAR WORD + { + redir.filename = $3; + $$ = make_redirection ($1, r_output_force, redir); + } + ; + +simple_command_element: WORD + { $$.word = $1; $$.redirect = 0; } + | ASSIGNMENT_WORD + { $$.word = $1; $$.redirect = 0; } + | redirection + { $$.redirect = $1; $$.word = 0; } + ; + +redirection_list: redirection + { + $$ = $1; + } + | redirection_list redirection + { + register REDIRECT *t; + + for (t = $1; t->next; t = t->next) + ; + t->next = $2; + $$ = $1; + } + ; + +simple_command: simple_command_element + { $$ = make_simple_command ($1, (COMMAND *)NULL); } + | simple_command simple_command_element + { $$ = make_simple_command ($2, $1); } + ; + +command: simple_command + { $$ = clean_simple_command ($1); } + | shell_command + { $$ = $1; } + | shell_command redirection_list + { + COMMAND *tc; + + tc = $1; + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = $2; + } + else + tc->redirects = $2; + $$ = $1; + } + | function_def + { $$ = $1; } + ; + +shell_command: for_command + { $$ = $1; } + | case_command + { $$ = $1; } + | WHILE compound_list DO compound_list DONE + { $$ = make_while_command ($2, $4); } + | UNTIL compound_list DO compound_list DONE + { $$ = make_until_command ($2, $4); } + | select_command + { $$ = $1; } + | if_command + { $$ = $1; } + | subshell + { $$ = $1; } + | group_command + { $$ = $1; } + | arith_command + { $$ = $1; } + | cond_command + { $$ = $1; } + | arith_for_command + { $$ = $1; } + ; + +for_command: FOR WORD newline_list DO compound_list DONE + { + $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD newline_list '{' compound_list '}' + { + $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD ';' newline_list DO compound_list DONE + { + $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD ';' newline_list '{' compound_list '}' + { + $$ = make_for_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD newline_list IN word_list list_terminator newline_list DO compound_list DONE + { + $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD newline_list IN word_list list_terminator newline_list '{' compound_list '}' + { + $$ = make_for_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD newline_list IN list_terminator newline_list DO compound_list DONE + { + $$ = make_for_command ($2, (WORD_LIST *)NULL, $8, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | FOR WORD newline_list IN list_terminator newline_list '{' compound_list '}' + { + $$ = make_for_command ($2, (WORD_LIST *)NULL, $8, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + ; + +arith_for_command: FOR ARITH_FOR_EXPRS list_terminator newline_list DO compound_list DONE + { + $$ = make_arith_for_command ($2, $6, arith_for_lineno); + if (word_top > 0) word_top--; + } + | FOR ARITH_FOR_EXPRS list_terminator newline_list '{' compound_list '}' + { + $$ = make_arith_for_command ($2, $6, arith_for_lineno); + if (word_top > 0) word_top--; + } + | FOR ARITH_FOR_EXPRS DO compound_list DONE + { + $$ = make_arith_for_command ($2, $4, arith_for_lineno); + if (word_top > 0) word_top--; + } + | FOR ARITH_FOR_EXPRS '{' compound_list '}' + { + $$ = make_arith_for_command ($2, $4, arith_for_lineno); + if (word_top > 0) word_top--; + } + ; + +select_command: SELECT WORD newline_list DO list DONE + { + $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | SELECT WORD newline_list '{' list '}' + { + $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $5, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | SELECT WORD ';' newline_list DO list DONE + { + $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | SELECT WORD ';' newline_list '{' list '}' + { + $$ = make_select_command ($2, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), $6, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | SELECT WORD newline_list IN word_list list_terminator newline_list DO list DONE + { + $$ = make_select_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | SELECT WORD newline_list IN word_list list_terminator newline_list '{' list '}' + { + $$ = make_select_command ($2, REVERSE_LIST ($5, WORD_LIST *), $9, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + ; + +case_command: CASE WORD newline_list IN newline_list ESAC + { + $$ = make_case_command ($2, (PATTERN_LIST *)NULL, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | CASE WORD newline_list IN case_clause_sequence newline_list ESAC + { + $$ = make_case_command ($2, $5, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + | CASE WORD newline_list IN case_clause ESAC + { + $$ = make_case_command ($2, $5, word_lineno[word_top]); + if (word_top > 0) word_top--; + } + ; + +function_def: WORD '(' ')' newline_list function_body + { $$ = make_function_def ($1, $5, function_dstart, function_bstart); } + + | FUNCTION WORD '(' ')' newline_list function_body + { $$ = make_function_def ($2, $6, function_dstart, function_bstart); } + + | FUNCTION WORD newline_list function_body + { $$ = make_function_def ($2, $4, function_dstart, function_bstart); } + ; + + +function_body: shell_command + { $$ = $1; } + | shell_command redirection_list + { + COMMAND *tc; + + tc = $1; + /* According to Posix.2 3.9.5, redirections + specified after the body of a function should + be attached to the function and performed when + the function is executed, not as part of the + function definition command. */ + /* XXX - I don't think it matters, but we might + want to change this in the future to avoid + problems differentiating between a function + definition with a redirection and a function + definition containing a single command with a + redirection. The two are semantically equivalent, + though -- the only difference is in how the + command printing code displays the redirections. */ + if (tc->redirects) + { + register REDIRECT *t; + for (t = tc->redirects; t->next; t = t->next) + ; + t->next = $2; + } + else + tc->redirects = $2; + $$ = $1; + } + ; + +subshell: '(' compound_list ')' + { + $$ = make_subshell_command ($2); + $$->flags |= CMD_WANT_SUBSHELL; + } + ; + +if_command: IF compound_list THEN compound_list FI + { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } + | IF compound_list THEN compound_list ELSE compound_list FI + { $$ = make_if_command ($2, $4, $6); } + | IF compound_list THEN compound_list elif_clause FI + { $$ = make_if_command ($2, $4, $5); } + ; + + +group_command: '{' compound_list '}' + { $$ = make_group_command ($2); } + ; + +arith_command: ARITH_CMD + { $$ = make_arith_command ($1); } + ; + +cond_command: COND_START COND_CMD COND_END + { $$ = $2; } + ; + +elif_clause: ELIF compound_list THEN compound_list + { $$ = make_if_command ($2, $4, (COMMAND *)NULL); } + | ELIF compound_list THEN compound_list ELSE compound_list + { $$ = make_if_command ($2, $4, $6); } + | ELIF compound_list THEN compound_list elif_clause + { $$ = make_if_command ($2, $4, $5); } + ; + +case_clause: pattern_list + | case_clause_sequence pattern_list + { $2->next = $1; $$ = $2; } + ; + +pattern_list: newline_list pattern ')' compound_list + { $$ = make_pattern_list ($2, $4); } + | newline_list pattern ')' newline_list + { $$ = make_pattern_list ($2, (COMMAND *)NULL); } + | newline_list '(' pattern ')' compound_list + { $$ = make_pattern_list ($3, $5); } + | newline_list '(' pattern ')' newline_list + { $$ = make_pattern_list ($3, (COMMAND *)NULL); } + ; + +case_clause_sequence: pattern_list SEMI_SEMI + | case_clause_sequence pattern_list SEMI_SEMI + { $2->next = $1; $$ = $2; } + ; + +pattern: WORD + { $$ = make_word_list ($1, (WORD_LIST *)NULL); } + | pattern '|' WORD + { $$ = make_word_list ($3, $1); } + ; + +/* A list allows leading or trailing newlines and + newlines as operators (equivalent to semicolons). + It must end with a newline or semicolon. + Lists are used within commands such as if, for, while. */ + +list: newline_list list0 + { + $$ = $2; + if (need_here_doc) + gather_here_documents (); + } + ; + +compound_list: list + | newline_list list1 + { + $$ = $2; + } + ; + +list0: list1 '\n' newline_list + | list1 '&' newline_list + { + if ($1->type == cm_connection) + $$ = connect_async_list ($1, (COMMAND *)NULL, '&'); + else + $$ = command_connect ($1, (COMMAND *)NULL, '&'); + } + | list1 ';' newline_list + + ; + +list1: list1 AND_AND newline_list list1 + { $$ = command_connect ($1, $4, AND_AND); } + | list1 OR_OR newline_list list1 + { $$ = command_connect ($1, $4, OR_OR); } + | list1 '&' newline_list list1 + { + if ($1->type == cm_connection) + $$ = connect_async_list ($1, $4, '&'); + else + $$ = command_connect ($1, $4, '&'); + } + | list1 ';' newline_list list1 + { $$ = command_connect ($1, $4, ';'); } + | list1 '\n' newline_list list1 + { $$ = command_connect ($1, $4, ';'); } + | pipeline_command + { $$ = $1; } + ; + +simple_list_terminator: '\n' + | yacc_EOF + ; + +list_terminator:'\n' + { $$ = '\n'; } + | ';' + { $$ = ';'; } + | yacc_EOF + { $$ = yacc_EOF; } + ; + +newline_list: + | newline_list '\n' + ; + +/* A simple_list is a list that contains no significant newlines + and no leading or trailing newlines. Newlines are allowed + only following operators, where they are not significant. + + This is what an inputunit consists of. */ + +simple_list: simple_list1 + { + $$ = $1; + if (need_here_doc) + gather_here_documents (); + } + | simple_list1 '&' + { + if ($1->type == cm_connection) + $$ = connect_async_list ($1, (COMMAND *)NULL, '&'); + else + $$ = command_connect ($1, (COMMAND *)NULL, '&'); + if (need_here_doc) + gather_here_documents (); + } + | simple_list1 ';' + { + $$ = $1; + if (need_here_doc) + gather_here_documents (); + } + ; + +simple_list1: simple_list1 AND_AND newline_list simple_list1 + { $$ = command_connect ($1, $4, AND_AND); } + | simple_list1 OR_OR newline_list simple_list1 + { $$ = command_connect ($1, $4, OR_OR); } + | simple_list1 '&' simple_list1 + { + if ($1->type == cm_connection) + $$ = connect_async_list ($1, $3, '&'); + else + $$ = command_connect ($1, $3, '&'); + } + | simple_list1 ';' simple_list1 + { $$ = command_connect ($1, $3, ';'); } + + | pipeline_command + { $$ = $1; } + ; + +pipeline_command: pipeline + { $$ = $1; } + | BANG pipeline + { + if ($2) + $2->flags |= CMD_INVERT_RETURN; + $$ = $2; + } + | timespec pipeline + { + if ($2) + $2->flags |= $1; + $$ = $2; + } + | timespec BANG pipeline + { + if ($3) + $3->flags |= $1|CMD_INVERT_RETURN; + $$ = $3; + } + | BANG timespec pipeline + { + if ($3) + $3->flags |= $2|CMD_INVERT_RETURN; + $$ = $3; + } + | timespec list_terminator + { + ELEMENT x; + + /* Boy, this is unclean. `time' by itself can + time a null command. We cheat and push a + newline back if the list_terminator was a newline + to avoid the double-newline problem (one to + terminate this, one to terminate the command) */ + x.word = 0; + x.redirect = 0; + $$ = make_simple_command (x, (COMMAND *)NULL); + $$->flags |= $1; + /* XXX - let's cheat and push a newline back */ + if ($2 == '\n') + token_to_read = '\n'; + } + + ; + +pipeline: + pipeline '|' newline_list pipeline + { $$ = command_connect ($1, $4, '|'); } + | command + { $$ = $1; } + ; + +timespec: TIME + { $$ = CMD_TIME_PIPELINE; } + | TIME TIMEOPT + { $$ = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } + ; +%% + +/* Possible states for the parser that require it to do special things. */ +#define PST_CASEPAT 0x0001 /* in a case pattern list */ +#define PST_ALEXPNEXT 0x0002 /* expand next word for aliases */ +#define PST_ALLOWOPNBRC 0x0004 /* allow open brace for function def */ +#define PST_NEEDCLOSBRC 0x0008 /* need close brace */ +#define PST_DBLPAREN 0x0010 /* double-paren parsing */ +#define PST_SUBSHELL 0x0020 /* ( ... ) subshell */ +#define PST_CMDSUBST 0x0040 /* $( ... ) command substitution */ +#define PST_CASESTMT 0x0080 /* parsing a case statement */ +#define PST_CONDCMD 0x0100 /* parsing a [[...]] command */ +#define PST_CONDEXPR 0x0200 /* parsing the guts of [[...]] */ +#define PST_ARITHFOR 0x0400 /* parsing an arithmetic for command */ +#define PST_ALEXPAND 0x0800 /* OK to expand aliases - unused */ +#define PST_CMDTOKEN 0x1000 /* command token OK - unused */ +#define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */ +#define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */ + +/* Initial size to allocate for tokens, and the + amount to grow them by. */ +#define TOKEN_DEFAULT_INITIAL_SIZE 496 +#define TOKEN_DEFAULT_GROW_SIZE 512 + +/* Should we call prompt_again? */ +#define SHOULD_PROMPT() \ + (interactive && (bash_input.type == st_stdin || bash_input.type == st_stream)) + +#if defined (ALIAS) +# define expanding_alias() (pushed_string_list && pushed_string_list->expander) +#else +# define expanding_alias() 0 +#endif + +/* The token currently being read. */ +static int current_token; + +/* The last read token, or NULL. read_token () uses this for context + checking. */ +static int last_read_token; + +/* The token read prior to last_read_token. */ +static int token_before_that; + +/* The token read prior to token_before_that. */ +static int two_tokens_ago; + +/* The current parser state. */ +static int parser_state; + +/* Global var is non-zero when end of file has been reached. */ +int EOF_Reached = 0; + +#ifdef DEBUG +static void +debug_parser (i) + int i; +{ +#if YYDEBUG != 0 + yydebug = i; +#endif +} +#endif + +/* yy_getc () returns the next available character from input or EOF. + yy_ungetc (c) makes `c' the next character to read. + init_yy_io (get, unget, type, location) makes the function GET the + installed function for getting the next character, makes UNGET the + installed function for un-getting a character, sets the type of stream + (either string or file) from TYPE, and makes LOCATION point to where + the input is coming from. */ + +/* Unconditionally returns end-of-file. */ +int +return_EOF () +{ + return (EOF); +} + +/* Variable containing the current get and unget functions. + See ./input.h for a clearer description. */ +BASH_INPUT bash_input; + +/* Set all of the fields in BASH_INPUT to NULL. Free bash_input.name if it + is non-null, avoiding a memory leak. */ +void +initialize_bash_input () +{ + bash_input.type = st_none; + FREE (bash_input.name); + bash_input.name = (char *)NULL; + bash_input.location.file = (FILE *)NULL; + bash_input.location.string = (char *)NULL; + bash_input.getter = (sh_cget_func_t *)NULL; + bash_input.ungetter = (sh_cunget_func_t *)NULL; +} + +/* Set the contents of the current bash input stream from + GET, UNGET, TYPE, NAME, and LOCATION. */ +void +init_yy_io (get, unget, type, name, location) + sh_cget_func_t *get; + sh_cunget_func_t *unget; + enum stream_type type; + const char *name; + INPUT_STREAM location; +{ + bash_input.type = type; + FREE (bash_input.name); + bash_input.name = name ? savestring (name) : (char *)NULL; + + /* XXX */ +#if defined (CRAY) + memcpy((char *)&bash_input.location.string, (char *)&location.string, sizeof(location)); +#else + bash_input.location = location; +#endif + bash_input.getter = get; + bash_input.ungetter = unget; +} + +char * +yy_input_name () +{ + return (bash_input.name ? bash_input.name : "stdin"); +} + +/* Call this to get the next character of input. */ +static int +yy_getc () +{ + return (*(bash_input.getter)) (); +} + +/* Call this to unget C. That is, to make C the next character + to be read. */ +static int +yy_ungetc (c) + int c; +{ + return (*(bash_input.ungetter)) (c); +} + +#if defined (BUFFERED_INPUT) +#ifdef INCLUDE_UNUSED +int +input_file_descriptor () +{ + switch (bash_input.type) + { + case st_stream: + return (fileno (bash_input.location.file)); + case st_bstream: + return (bash_input.location.buffered_fd); + case st_stdin: + default: + return (fileno (stdin)); + } +} +#endif +#endif /* BUFFERED_INPUT */ + +/* **************************************************************** */ +/* */ +/* Let input be read from readline (). */ +/* */ +/* **************************************************************** */ + +#if defined (READLINE) +char *current_readline_prompt = (char *)NULL; +char *current_readline_line = (char *)NULL; +int current_readline_line_index = 0; + +static int +yy_readline_get () +{ + SigHandler *old_sigint; + int line_len; + unsigned char c; + + if (!current_readline_line) + { + if (!bash_readline_initialized) + initialize_readline (); + +#if defined (JOB_CONTROL) + if (job_control) + give_terminal_to (shell_pgrp, 0); +#endif /* JOB_CONTROL */ + + old_sigint = (SigHandler *)NULL; + if (signal_is_ignored (SIGINT) == 0) + { + old_sigint = (SigHandler *)set_signal_handler (SIGINT, sigint_sighandler); + interrupt_immediately++; + } + + current_readline_line = readline (current_readline_prompt ? + current_readline_prompt : ""); + + if (signal_is_ignored (SIGINT) == 0 && old_sigint) + { + interrupt_immediately--; + set_signal_handler (SIGINT, old_sigint); + } + +#if 0 + /* Reset the prompt to the decoded value of prompt_string_pointer. */ + reset_readline_prompt (); +#endif + + if (current_readline_line == 0) + return (EOF); + + current_readline_line_index = 0; + line_len = strlen (current_readline_line); + + current_readline_line = (char *)xrealloc (current_readline_line, 2 + line_len); + current_readline_line[line_len++] = '\n'; + current_readline_line[line_len] = '\0'; + } + + if (current_readline_line[current_readline_line_index] == 0) + { + free (current_readline_line); + current_readline_line = (char *)NULL; + return (yy_readline_get ()); + } + else + { + c = current_readline_line[current_readline_line_index++]; + return (c); + } +} + +static int +yy_readline_unget (c) + int c; +{ + if (current_readline_line_index && current_readline_line) + current_readline_line[--current_readline_line_index] = c; + return (c); +} + +void +with_input_from_stdin () +{ + INPUT_STREAM location; + + if (bash_input.type != st_stdin && stream_on_stack (st_stdin) == 0) + { + location.string = current_readline_line; + init_yy_io (yy_readline_get, yy_readline_unget, + st_stdin, "readline stdin", location); + } +} + +#else /* !READLINE */ + +void +with_input_from_stdin () +{ + with_input_from_stream (stdin, "stdin"); +} +#endif /* !READLINE */ + +/* **************************************************************** */ +/* */ +/* Let input come from STRING. STRING is zero terminated. */ +/* */ +/* **************************************************************** */ + +static int +yy_string_get () +{ + register char *string; + register unsigned char c; + + string = bash_input.location.string; + + /* If the string doesn't exist, or is empty, EOF found. */ + if (string && *string) + { + c = *string++; + bash_input.location.string = string; + return (c); + } + else + return (EOF); +} + +static int +yy_string_unget (c) + int c; +{ + *(--bash_input.location.string) = c; + return (c); +} + +void +with_input_from_string (string, name) + char *string; + const char *name; +{ + INPUT_STREAM location; + + location.string = string; + init_yy_io (yy_string_get, yy_string_unget, st_string, name, location); +} + +/* **************************************************************** */ +/* */ +/* Let input come from STREAM. */ +/* */ +/* **************************************************************** */ + +/* These two functions used to test the value of the HAVE_RESTARTABLE_SYSCALLS + define, and just use getc/ungetc if it was defined, but since bash + installs its signal handlers without the SA_RESTART flag, some signals + (like SIGCHLD, SIGWINCH, etc.) received during a read(2) will not cause + the read to be restarted. We need to restart it ourselves. */ + +static int +yy_stream_get () +{ + int result; + + result = EOF; + if (bash_input.location.file) + { + if (interactive) + interrupt_immediately++; + result = getc_with_restart (bash_input.location.file); + if (interactive) + interrupt_immediately--; + } + return (result); +} + +static int +yy_stream_unget (c) + int c; +{ + return (ungetc_with_restart (c, bash_input.location.file)); +} + +void +with_input_from_stream (stream, name) + FILE *stream; + const char *name; +{ + INPUT_STREAM location; + + location.file = stream; + init_yy_io (yy_stream_get, yy_stream_unget, st_stream, name, location); +} + +typedef struct stream_saver { + struct stream_saver *next; + BASH_INPUT bash_input; + int line; +#if defined (BUFFERED_INPUT) + BUFFERED_STREAM *bstream; +#endif /* BUFFERED_INPUT */ +} STREAM_SAVER; + +/* The globally known line number. */ +int line_number = 0; + +#if defined (COND_COMMAND) +static int cond_lineno; +static int cond_token; +#endif + +STREAM_SAVER *stream_list = (STREAM_SAVER *)NULL; + +void +push_stream (reset_lineno) + int reset_lineno; +{ + STREAM_SAVER *saver = (STREAM_SAVER *)xmalloc (sizeof (STREAM_SAVER)); + + xbcopy ((char *)&bash_input, (char *)&(saver->bash_input), sizeof (BASH_INPUT)); + +#if defined (BUFFERED_INPUT) + saver->bstream = (BUFFERED_STREAM *)NULL; + /* If we have a buffered stream, clear out buffers[fd]. */ + if (bash_input.type == st_bstream && bash_input.location.buffered_fd >= 0) + saver->bstream = set_buffered_stream (bash_input.location.buffered_fd, + (BUFFERED_STREAM *)NULL); +#endif /* BUFFERED_INPUT */ + + saver->line = line_number; + bash_input.name = (char *)NULL; + saver->next = stream_list; + stream_list = saver; + EOF_Reached = 0; + if (reset_lineno) + line_number = 0; +} + +void +pop_stream () +{ + if (!stream_list) + EOF_Reached = 1; + else + { + STREAM_SAVER *saver = stream_list; + + EOF_Reached = 0; + stream_list = stream_list->next; + + init_yy_io (saver->bash_input.getter, + saver->bash_input.ungetter, + saver->bash_input.type, + saver->bash_input.name, + saver->bash_input.location); + +#if defined (BUFFERED_INPUT) + /* If we have a buffered stream, restore buffers[fd]. */ + /* If the input file descriptor was changed while this was on the + save stack, update the buffered fd to the new file descriptor and + re-establish the buffer <-> bash_input fd correspondence. */ + if (bash_input.type == st_bstream && bash_input.location.buffered_fd >= 0) + { + if (bash_input_fd_changed) + { + bash_input_fd_changed = 0; + if (default_buffered_input >= 0) + { + bash_input.location.buffered_fd = default_buffered_input; + saver->bstream->b_fd = default_buffered_input; + SET_CLOSE_ON_EXEC (default_buffered_input); + } + } + /* XXX could free buffered stream returned as result here. */ + set_buffered_stream (bash_input.location.buffered_fd, saver->bstream); + } +#endif /* BUFFERED_INPUT */ + + line_number = saver->line; + + FREE (saver->bash_input.name); + free (saver); + } +} + +/* Return 1 if a stream of type TYPE is saved on the stack. */ +int +stream_on_stack (type) + enum stream_type type; +{ + register STREAM_SAVER *s; + + for (s = stream_list; s; s = s->next) + if (s->bash_input.type == type) + return 1; + return 0; +} + +/* Save the current token state and return it in a malloced array. */ +int * +save_token_state () +{ + int *ret; + + ret = (int *)xmalloc (3 * sizeof (int)); + ret[0] = last_read_token; + ret[1] = token_before_that; + ret[2] = two_tokens_ago; + return ret; +} + +void +restore_token_state (ts) + int *ts; +{ + if (ts == 0) + return; + last_read_token = ts[0]; + token_before_that = ts[1]; + two_tokens_ago = ts[2]; +} + +/* + * This is used to inhibit alias expansion and reserved word recognition + * inside case statement pattern lists. A `case statement pattern list' is: + * + * everything between the `in' in a `case word in' and the next ')' + * or `esac' + * everything between a `;;' and the next `)' or `esac' + */ + +#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) + +#define END_OF_ALIAS 0 + +/* + * Pseudo-global variables used in implementing token-wise alias expansion. + */ + +/* + * Pushing and popping strings. This works together with shell_getc to + * implement alias expansion on a per-token basis. + */ + +typedef struct string_saver { + struct string_saver *next; + int expand_alias; /* Value to set expand_alias to when string is popped. */ + char *saved_line; +#if defined (ALIAS) + alias_t *expander; /* alias that caused this line to be pushed. */ +#endif + int saved_line_size, saved_line_index, saved_line_terminator; +} STRING_SAVER; + +STRING_SAVER *pushed_string_list = (STRING_SAVER *)NULL; + +/* + * Push the current shell_input_line onto a stack of such lines and make S + * the current input. Used when expanding aliases. EXPAND is used to set + * the value of expand_next_token when the string is popped, so that the + * word after the alias in the original line is handled correctly when the + * alias expands to multiple words. TOKEN is the token that was expanded + * into S; it is saved and used to prevent infinite recursive expansion. + */ +static void +push_string (s, expand, ap) + char *s; + int expand; + alias_t *ap; +{ + STRING_SAVER *temp = (STRING_SAVER *)xmalloc (sizeof (STRING_SAVER)); + + temp->expand_alias = expand; + temp->saved_line = shell_input_line; + temp->saved_line_size = shell_input_line_size; + temp->saved_line_index = shell_input_line_index; + temp->saved_line_terminator = shell_input_line_terminator; +#if defined (ALIAS) + temp->expander = ap; +#endif + temp->next = pushed_string_list; + pushed_string_list = temp; + +#if defined (ALIAS) + if (ap) + ap->flags |= AL_BEINGEXPANDED; +#endif + + shell_input_line = s; + shell_input_line_size = strlen (s); + shell_input_line_index = 0; + shell_input_line_terminator = '\0'; +#if 0 + parser_state &= ~PST_ALEXPNEXT; /* XXX */ +#endif + + set_line_mbstate (); +} + +/* + * Make the top of the pushed_string stack be the current shell input. + * Only called when there is something on the stack. Called from shell_getc + * when it thinks it has consumed the string generated by an alias expansion + * and needs to return to the original input line. + */ +static void +pop_string () +{ + STRING_SAVER *t; + + FREE (shell_input_line); + shell_input_line = pushed_string_list->saved_line; + shell_input_line_index = pushed_string_list->saved_line_index; + shell_input_line_size = pushed_string_list->saved_line_size; + shell_input_line_terminator = pushed_string_list->saved_line_terminator; + + if (pushed_string_list->expand_alias) + parser_state |= PST_ALEXPNEXT; + else + parser_state &= ~PST_ALEXPNEXT; + + t = pushed_string_list; + pushed_string_list = pushed_string_list->next; + +#if defined (ALIAS) + if (t->expander) + t->expander->flags &= ~AL_BEINGEXPANDED; +#endif + + free ((char *)t); + + set_line_mbstate (); +} + +static void +free_string_list () +{ + register STRING_SAVER *t, *t1; + + for (t = pushed_string_list; t; ) + { + t1 = t->next; + FREE (t->saved_line); +#if defined (ALIAS) + if (t->expander) + t->expander->flags &= ~AL_BEINGEXPANDED; +#endif + free ((char *)t); + t = t1; + } + pushed_string_list = (STRING_SAVER *)NULL; +} + +#endif /* ALIAS || DPAREN_ARITHMETIC */ + +void +free_pushed_string_input () +{ +#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) + free_string_list (); +#endif +} + +/* Return a line of text, taken from wherever yylex () reads input. + If there is no more input, then we return NULL. If REMOVE_QUOTED_NEWLINE + is non-zero, we remove unquoted \<newline> pairs. This is used by + read_secondary_line to read here documents. */ +static char * +read_a_line (remove_quoted_newline) + int remove_quoted_newline; +{ + static char *line_buffer = (char *)NULL; + static int buffer_size = 0; + int indx = 0, c, peekc, pass_next; + +#if defined (READLINE) + if (no_line_editing && SHOULD_PROMPT ()) +#else + if (SHOULD_PROMPT ()) +#endif + print_prompt (); + + pass_next = 0; + while (1) + { + /* Allow immediate exit if interrupted during input. */ + QUIT; + + c = yy_getc (); + + /* Ignore null bytes in input. */ + if (c == 0) + { +#if 0 + internal_warning ("read_a_line: ignored null byte in input"); +#endif + continue; + } + + /* If there is no more input, then we return NULL. */ + if (c == EOF) + { + if (interactive && bash_input.type == st_stream) + clearerr (stdin); + if (indx == 0) + return ((char *)NULL); + c = '\n'; + } + + /* `+2' in case the final character in the buffer is a newline. */ + RESIZE_MALLOCED_BUFFER (line_buffer, indx, 2, buffer_size, 128); + + /* IF REMOVE_QUOTED_NEWLINES is non-zero, we are reading a + here document with an unquoted delimiter. In this case, + the line will be expanded as if it were in double quotes. + We allow a backslash to escape the next character, but we + need to treat the backslash specially only if a backslash + quoting a backslash-newline pair appears in the line. */ + if (pass_next) + { + line_buffer[indx++] = c; + pass_next = 0; + } + else if (c == '\\' && remove_quoted_newline) + { + peekc = yy_getc (); + if (peekc == '\n') + { + line_number++; + continue; /* Make the unquoted \<newline> pair disappear. */ + } + else + { + yy_ungetc (peekc); + pass_next = 1; + line_buffer[indx++] = c; /* Preserve the backslash. */ + } + } + else + line_buffer[indx++] = c; + + if (c == '\n') + { + line_buffer[indx] = '\0'; + return (line_buffer); + } + } +} + +/* Return a line as in read_a_line (), but insure that the prompt is + the secondary prompt. This is used to read the lines of a here + document. REMOVE_QUOTED_NEWLINE is non-zero if we should remove + newlines quoted with backslashes while reading the line. It is + non-zero unless the delimiter of the here document was quoted. */ +char * +read_secondary_line (remove_quoted_newline) + int remove_quoted_newline; +{ + prompt_string_pointer = &ps2_prompt; + if (SHOULD_PROMPT()) + prompt_again (); + return (read_a_line (remove_quoted_newline)); +} + +/* **************************************************************** */ +/* */ +/* YYLEX () */ +/* */ +/* **************************************************************** */ + +/* Reserved words. These are only recognized as the first word of a + command. */ +STRING_INT_ALIST word_token_alist[] = { + { "if", IF }, + { "then", THEN }, + { "else", ELSE }, + { "elif", ELIF }, + { "fi", FI }, + { "case", CASE }, + { "esac", ESAC }, + { "for", FOR }, +#if defined (SELECT_COMMAND) + { "select", SELECT }, +#endif + { "while", WHILE }, + { "until", UNTIL }, + { "do", DO }, + { "done", DONE }, + { "in", IN }, + { "function", FUNCTION }, +#if defined (COMMAND_TIMING) + { "time", TIME }, +#endif + { "{", '{' }, + { "}", '}' }, + { "!", BANG }, +#if defined (COND_COMMAND) + { "[[", COND_START }, + { "]]", COND_END }, +#endif + { (char *)NULL, 0} +}; + +/* other tokens that can be returned by read_token() */ +STRING_INT_ALIST other_token_alist[] = { + /* Multiple-character tokens with special values */ + { "-p", TIMEOPT }, + { "&&", AND_AND }, + { "||", OR_OR }, + { ">>", GREATER_GREATER }, + { "<<", LESS_LESS }, + { "<&", LESS_AND }, + { ">&", GREATER_AND }, + { ";;", SEMI_SEMI }, + { "<<-", LESS_LESS_MINUS }, + { "<<<", LESS_LESS_LESS }, + { "&>", AND_GREATER }, + { "<>", LESS_GREATER }, + { ">|", GREATER_BAR }, + { "EOF", yacc_EOF }, + /* Tokens whose value is the character itself */ + { ">", '>' }, + { "<", '<' }, + { "-", '-' }, + { "{", '{' }, + { "}", '}' }, + { ";", ';' }, + { "(", '(' }, + { ")", ')' }, + { "|", '|' }, + { "&", '&' }, + { "newline", '\n' }, + { (char *)NULL, 0} +}; + +/* others not listed here: + WORD look at yylval.word + ASSIGNMENT_WORD look at yylval.word + NUMBER look at yylval.number + ARITH_CMD look at yylval.word_list + ARITH_FOR_EXPRS look at yylval.word_list + COND_CMD look at yylval.command +*/ + +/* These are used by read_token_word, but appear up here so that shell_getc + can use them to decide when to add otherwise blank lines to the history. */ + +/* The primary delimiter stack. */ +struct dstack dstack = { (char *)NULL, 0, 0 }; + +/* A temporary delimiter stack to be used when decoding prompt strings. + This is needed because command substitutions in prompt strings (e.g., PS2) + can screw up the parser's quoting state. */ +static struct dstack temp_dstack = { (char *)NULL, 0, 0 }; + +/* Macro for accessing the top delimiter on the stack. Returns the + delimiter or zero if none. */ +#define current_delimiter(ds) \ + (ds.delimiter_depth ? ds.delimiters[ds.delimiter_depth - 1] : 0) + +#define push_delimiter(ds, character) \ + do \ + { \ + if (ds.delimiter_depth + 2 > ds.delimiter_space) \ + ds.delimiters = (char *)xrealloc \ + (ds.delimiters, (ds.delimiter_space += 10) * sizeof (char)); \ + ds.delimiters[ds.delimiter_depth] = character; \ + ds.delimiter_depth++; \ + } \ + while (0) + +#define pop_delimiter(ds) ds.delimiter_depth-- + +/* Return the next shell input character. This always reads characters + from shell_input_line; when that line is exhausted, it is time to + read the next line. This is called by read_token when the shell is + processing normal command input. */ + +/* This implements one-character lookahead/lookbehind across physical input + lines, to avoid something being lost because it's pushed back with + shell_ungetc when we're at the start of a line. */ +static int eol_ungetc_lookahead = 0; + +static int +shell_getc (remove_quoted_newline) + int remove_quoted_newline; +{ + register int i; + int c; + unsigned char uc; + static int mustpop = 0; + + QUIT; + + if (eol_ungetc_lookahead) + { + c = eol_ungetc_lookahead; + eol_ungetc_lookahead = 0; + return (c); + } + +#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) + /* If shell_input_line[shell_input_line_index] == 0, but there is + something on the pushed list of strings, then we don't want to go + off and get another line. We let the code down below handle it. */ + + if (!shell_input_line || ((!shell_input_line[shell_input_line_index]) && + (pushed_string_list == (STRING_SAVER *)NULL))) +#else /* !ALIAS && !DPAREN_ARITHMETIC */ + if (!shell_input_line || !shell_input_line[shell_input_line_index]) +#endif /* !ALIAS && !DPAREN_ARITHMETIC */ + { + line_number++; + + restart_read: + + /* Allow immediate exit if interrupted during input. */ + QUIT; + + i = 0; + shell_input_line_terminator = 0; + + /* If the shell is interatctive, but not currently printing a prompt + (interactive_shell && interactive == 0), we don't want to print + notifies or cleanup the jobs -- we want to defer it until we do + print the next prompt. */ + if (interactive_shell == 0 || SHOULD_PROMPT()) + { +#if defined (JOB_CONTROL) + /* This can cause a problem when reading a command as the result + of a trap, when the trap is called from flush_child. This call + had better not cause jobs to disappear from the job table in + that case, or we will have big trouble. */ + notify_and_cleanup (); +#else /* !JOB_CONTROL */ + cleanup_dead_jobs (); +#endif /* !JOB_CONTROL */ + } + +#if defined (READLINE) + if (no_line_editing && SHOULD_PROMPT()) +#else + if (SHOULD_PROMPT()) +#endif + print_prompt (); + + if (bash_input.type == st_stream) + clearerr (stdin); + + while (1) + { + c = yy_getc (); + + /* Allow immediate exit if interrupted during input. */ + QUIT; + + if (c == '\0') + { +#if 0 + internal_warning ("shell_getc: ignored null byte in input"); +#endif + continue; + } + + RESIZE_MALLOCED_BUFFER (shell_input_line, i, 2, shell_input_line_size, 256); + + if (c == EOF) + { + if (bash_input.type == st_stream) + clearerr (stdin); + + if (i == 0) + shell_input_line_terminator = EOF; + + shell_input_line[i] = '\0'; + break; + } + + shell_input_line[i++] = c; + + if (c == '\n') + { + shell_input_line[--i] = '\0'; + current_command_line_count++; + break; + } + } + + shell_input_line_index = 0; + shell_input_line_len = i; /* == strlen (shell_input_line) */ + + set_line_mbstate (); + +#if defined (HISTORY) + if (remember_on_history && shell_input_line && shell_input_line[0]) + { + char *expansions; +# if defined (BANG_HISTORY) + int old_hist; + + /* If the current delimiter is a single quote, we should not be + performing history expansion, even if we're on a different + line from the original single quote. */ + old_hist = history_expansion_inhibited; + if (current_delimiter (dstack) == '\'') + history_expansion_inhibited = 1; +# endif + expansions = pre_process_line (shell_input_line, 1, 1); +# if defined (BANG_HISTORY) + history_expansion_inhibited = old_hist; +# endif + if (expansions != shell_input_line) + { + free (shell_input_line); + shell_input_line = expansions; + shell_input_line_len = shell_input_line ? + strlen (shell_input_line) : 0; + if (!shell_input_line_len) + current_command_line_count--; + + /* We have to force the xrealloc below because we don't know + the true allocated size of shell_input_line anymore. */ + shell_input_line_size = shell_input_line_len; + + set_line_mbstate (); + } + } + /* Try to do something intelligent with blank lines encountered while + entering multi-line commands. XXX - this is grotesque */ + else if (remember_on_history && shell_input_line && + shell_input_line[0] == '\0' && + current_command_line_count > 1) + { + if (current_delimiter (dstack)) + /* We know shell_input_line[0] == 0 and we're reading some sort of + quoted string. This means we've got a line consisting of only + a newline in a quoted string. We want to make sure this line + gets added to the history. */ + maybe_add_history (shell_input_line); + else + { + char *hdcs; + hdcs = history_delimiting_chars (); + if (hdcs && hdcs[0] == ';') + maybe_add_history (shell_input_line); + } + } + +#endif /* HISTORY */ + + if (shell_input_line) + { + /* Lines that signify the end of the shell's input should not be + echoed. */ + if (echo_input_at_read && (shell_input_line[0] || + shell_input_line_terminator != EOF)) + fprintf (stderr, "%s\n", shell_input_line); + } + else + { + shell_input_line_size = 0; + prompt_string_pointer = ¤t_prompt_string; + if (SHOULD_PROMPT ()) + prompt_again (); + goto restart_read; + } + + /* Add the newline to the end of this string, iff the string does + not already end in an EOF character. */ + if (shell_input_line_terminator != EOF) + { + if (shell_input_line_len + 3 > shell_input_line_size) + shell_input_line = (char *)xrealloc (shell_input_line, + 1 + (shell_input_line_size += 2)); + + shell_input_line[shell_input_line_len] = '\n'; + shell_input_line[shell_input_line_len + 1] = '\0'; + + set_line_mbstate (); + } + } + + uc = shell_input_line[shell_input_line_index]; + + if (uc) + shell_input_line_index++; + +#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) + /* If UC is NULL, we have reached the end of the current input string. If + pushed_string_list is non-empty, it's time to pop to the previous string + because we have fully consumed the result of the last alias expansion. + Do it transparently; just return the next character of the string popped + to. */ + if (!uc && (pushed_string_list != (STRING_SAVER *)NULL)) + { + pop_string (); + uc = shell_input_line[shell_input_line_index]; + if (uc) + shell_input_line_index++; + } +#endif /* ALIAS || DPAREN_ARITHMETIC */ + + if MBTEST(uc == '\\' && remove_quoted_newline && shell_input_line[shell_input_line_index] == '\n') + { + if (SHOULD_PROMPT ()) + prompt_again (); + line_number++; + goto restart_read; + } + + if (!uc && shell_input_line_terminator == EOF) + return ((shell_input_line_index != 0) ? '\n' : EOF); + + return (uc); +} + +/* Put C back into the input for the shell. This might need changes for + HANDLE_MULTIBYTE around EOLs. Since we (currently) never push back a + character different than we read, shell_input_line_property doesn't need + to change when manipulating shell_input_line. The define for + last_shell_getc_is_singlebyte should take care of it, though. */ +static void +shell_ungetc (c) + int c; +{ + if (shell_input_line && shell_input_line_index) + shell_input_line[--shell_input_line_index] = c; + else + eol_ungetc_lookahead = c; +} + +#ifdef INCLUDE_UNUSED +/* Back the input pointer up by one, effectively `ungetting' a character. */ +static void +shell_ungetchar () +{ + if (shell_input_line && shell_input_line_index) + shell_input_line_index--; +} +#endif + +/* Discard input until CHARACTER is seen, then push that character back + onto the input stream. */ +static void +discard_until (character) + int character; +{ + int c; + + while ((c = shell_getc (0)) != EOF && c != character) + ; + + if (c != EOF) + shell_ungetc (c); +} + +void +execute_prompt_command (command) + char *command; +{ + char *last_lastarg; + sh_parser_state_t ps; + + save_parser_state (&ps); + last_lastarg = get_string_value ("_"); + if (last_lastarg) + last_lastarg = savestring (last_lastarg); + + parse_and_execute (savestring (command), "PROMPT_COMMAND", SEVAL_NONINT|SEVAL_NOHIST); + + restore_parser_state (&ps); + bind_variable ("_", last_lastarg, 0); + FREE (last_lastarg); + + if (token_to_read == '\n') /* reset_parser was called */ + token_to_read = 0; +} + +/* Place to remember the token. We try to keep the buffer + at a reasonable size, but it can grow. */ +static char *token = (char *)NULL; + +/* Current size of the token buffer. */ +static int token_buffer_size; + +/* Command to read_token () explaining what we want it to do. */ +#define READ 0 +#define RESET 1 +#define prompt_is_ps1 \ + (!prompt_string_pointer || prompt_string_pointer == &ps1_prompt) + +/* Function for yyparse to call. yylex keeps track of + the last two tokens read, and calls read_token. */ +static int +yylex () +{ + if (interactive && (current_token == 0 || current_token == '\n')) + { + /* Before we print a prompt, we might have to check mailboxes. + We do this only if it is time to do so. Notice that only here + is the mail alarm reset; nothing takes place in check_mail () + except the checking of mail. Please don't change this. */ + if (prompt_is_ps1 && time_to_check_mail ()) + { + check_mail (); + reset_mail_timer (); + } + + /* Avoid printing a prompt if we're not going to read anything, e.g. + after resetting the parser with read_token (RESET). */ + if (token_to_read == 0 && SHOULD_PROMPT ()) + prompt_again (); + } + + two_tokens_ago = token_before_that; + token_before_that = last_read_token; + last_read_token = current_token; + current_token = read_token (READ); + return (current_token); +} + +/* When non-zero, we have read the required tokens + which allow ESAC to be the next one read. */ +static int esacs_needed_count; + +void +gather_here_documents () +{ + int r = 0; + while (need_here_doc) + { + make_here_document (redir_stack[r++]); + need_here_doc--; + } +} + +/* When non-zero, an open-brace used to create a group is awaiting a close + brace partner. */ +static int open_brace_count; + +#define command_token_position(token) \ + (((token) == ASSIGNMENT_WORD) || \ + ((token) != SEMI_SEMI && reserved_word_acceptable(token))) + +#define assignment_acceptable(token) \ + (command_token_position(token) && ((parser_state & PST_CASEPAT) == 0)) + +/* Check to see if TOKEN is a reserved word and return the token + value if it is. */ +#define CHECK_FOR_RESERVED_WORD(tok) \ + do { \ + if (!dollar_present && !quoted && \ + reserved_word_acceptable (last_read_token)) \ + { \ + int i; \ + for (i = 0; word_token_alist[i].word != (char *)NULL; i++) \ + if (STREQ (tok, word_token_alist[i].word)) \ + { \ + if ((parser_state & PST_CASEPAT) && (word_token_alist[i].token != ESAC)) \ + break; \ + if (word_token_alist[i].token == TIME && time_command_acceptable () == 0) \ + break; \ + if (word_token_alist[i].token == ESAC) \ + parser_state &= ~(PST_CASEPAT|PST_CASESTMT); \ + else if (word_token_alist[i].token == CASE) \ + parser_state |= PST_CASESTMT; \ + else if (word_token_alist[i].token == COND_END) \ + parser_state &= ~(PST_CONDCMD|PST_CONDEXPR); \ + else if (word_token_alist[i].token == COND_START) \ + parser_state |= PST_CONDCMD; \ + else if (word_token_alist[i].token == '{') \ + open_brace_count++; \ + else if (word_token_alist[i].token == '}' && open_brace_count) \ + open_brace_count--; \ + return (word_token_alist[i].token); \ + } \ + } \ + } while (0) + +#if defined (ALIAS) + + /* OK, we have a token. Let's try to alias expand it, if (and only if) + it's eligible. + + It is eligible for expansion if EXPAND_ALIASES is set, and + the token is unquoted and the last token read was a command + separator (or expand_next_token is set), and we are currently + processing an alias (pushed_string_list is non-empty) and this + token is not the same as the current or any previously + processed alias. + + Special cases that disqualify: + In a pattern list in a case statement (parser_state & PST_CASEPAT). */ + +static char * +mk_alexpansion (s) + char *s; +{ + int l; + char *r; + + l = strlen (s); + r = xmalloc (l + 2); + strcpy (r, s); + if (r[l -1] != ' ') + r[l++] = ' '; + r[l] = '\0'; + return r; +} + +static int +alias_expand_token (tokstr) + char *tokstr; +{ + char *expanded; + alias_t *ap; + + if (((parser_state & PST_ALEXPNEXT) || command_token_position (last_read_token)) && + (parser_state & PST_CASEPAT) == 0) + { + ap = find_alias (tokstr); + + /* Currently expanding this token. */ + if (ap && (ap->flags & AL_BEINGEXPANDED)) + return (NO_EXPANSION); + + /* mk_alexpansion puts an extra space on the end of the alias expansion, + so the lookahead by the parser works right. If this gets changed, + make sure the code in shell_getc that deals with reaching the end of + an expanded alias is changed with it. */ + expanded = ap ? mk_alexpansion (ap->value) : (char *)NULL; + + if (expanded) + { + push_string (expanded, ap->flags & AL_EXPANDNEXT, ap); + return (RE_READ_TOKEN); + } + else + /* This is an eligible token that does not have an expansion. */ + return (NO_EXPANSION); + } + return (NO_EXPANSION); +} +#endif /* ALIAS */ + +static int +time_command_acceptable () +{ +#if defined (COMMAND_TIMING) + switch (last_read_token) + { + case 0: + case ';': + case '\n': + case AND_AND: + case OR_OR: + case '&': + case DO: + case THEN: + case ELSE: + case '{': /* } */ + case '(': /* ) */ + return 1; + default: + return 0; + } +#else + return 0; +#endif /* COMMAND_TIMING */ +} + +/* Handle special cases of token recognition: + IN is recognized if the last token was WORD and the token + before that was FOR or CASE or SELECT. + + DO is recognized if the last token was WORD and the token + before that was FOR or SELECT. + + ESAC is recognized if the last token caused `esacs_needed_count' + to be set + + `{' is recognized if the last token as WORD and the token + before that was FUNCTION, or if we just parsed an arithmetic + `for' command. + + `}' is recognized if there is an unclosed `{' present. + + `-p' is returned as TIMEOPT if the last read token was TIME. + + ']]' is returned as COND_END if the parser is currently parsing + a conditional expression ((parser_state & PST_CONDEXPR) != 0) + + `time' is returned as TIME if and only if it is immediately + preceded by one of `;', `\n', `||', `&&', or `&'. +*/ + +static int +special_case_tokens (tokstr) + char *tokstr; +{ + if ((last_read_token == WORD) && +#if defined (SELECT_COMMAND) + ((token_before_that == FOR) || (token_before_that == CASE) || (token_before_that == SELECT)) && +#else + ((token_before_that == FOR) || (token_before_that == CASE)) && +#endif + (tokstr[0] == 'i' && tokstr[1] == 'n' && tokstr[2] == 0)) + { + if (token_before_that == CASE) + { + parser_state |= PST_CASEPAT; + esacs_needed_count++; + } + return (IN); + } + + if (last_read_token == WORD && +#if defined (SELECT_COMMAND) + (token_before_that == FOR || token_before_that == SELECT) && +#else + (token_before_that == FOR) && +#endif + (tokstr[0] == 'd' && tokstr[1] == 'o' && tokstr[2] == '\0')) + return (DO); + + /* Ditto for ESAC in the CASE case. + Specifically, this handles "case word in esac", which is a legal + construct, certainly because someone will pass an empty arg to the + case construct, and we don't want it to barf. Of course, we should + insist that the case construct has at least one pattern in it, but + the designers disagree. */ + if (esacs_needed_count) + { + esacs_needed_count--; + if (STREQ (tokstr, "esac")) + { + parser_state &= ~PST_CASEPAT; + return (ESAC); + } + } + + /* The start of a shell function definition. */ + if (parser_state & PST_ALLOWOPNBRC) + { + parser_state &= ~PST_ALLOWOPNBRC; + if (tokstr[0] == '{' && tokstr[1] == '\0') /* } */ + { + open_brace_count++; + function_bstart = line_number; + return ('{'); /* } */ + } + } + + /* We allow a `do' after a for ((...)) without an intervening + list_terminator */ + if (last_read_token == ARITH_FOR_EXPRS && tokstr[0] == 'd' && tokstr[1] == 'o' && !tokstr[2]) + return (DO); + if (last_read_token == ARITH_FOR_EXPRS && tokstr[0] == '{' && tokstr[1] == '\0') /* } */ + { + open_brace_count++; + return ('{'); /* } */ + } + + if (open_brace_count && reserved_word_acceptable (last_read_token) && tokstr[0] == '}' && !tokstr[1]) + { + open_brace_count--; /* { */ + return ('}'); + } + +#if defined (COMMAND_TIMING) + /* Handle -p after `time'. */ + if (last_read_token == TIME && tokstr[0] == '-' && tokstr[1] == 'p' && !tokstr[2]) + return (TIMEOPT); +#endif + +#if 0 +#if defined (COMMAND_TIMING) + if (STREQ (token, "time") && ((parser_state & PST_CASEPAT) == 0) && time_command_acceptable ()) + return (TIME); +#endif /* COMMAND_TIMING */ +#endif + +#if defined (COND_COMMAND) /* [[ */ + if ((parser_state & PST_CONDEXPR) && tokstr[0] == ']' && tokstr[1] == ']' && tokstr[2] == '\0') + return (COND_END); +#endif + + return (-1); +} + +/* Called from shell.c when Control-C is typed at top level. Or + by the error rule at top level. */ +void +reset_parser () +{ + dstack.delimiter_depth = 0; /* No delimiters found so far. */ + open_brace_count = 0; + + parser_state = 0; + +#if defined (ALIAS) || defined (DPAREN_ARITHMETIC) + if (pushed_string_list) + free_string_list (); +#endif /* ALIAS || DPAREN_ARITHMETIC */ + + if (shell_input_line) + { + free (shell_input_line); + shell_input_line = (char *)NULL; + shell_input_line_size = shell_input_line_index = 0; + } + + FREE (word_desc_to_read); + word_desc_to_read = (WORD_DESC *)NULL; + + last_read_token = '\n'; + token_to_read = '\n'; +} + +/* Read the next token. Command can be READ (normal operation) or + RESET (to normalize state). */ +static int +read_token (command) + int command; +{ + int character; /* Current character. */ + int peek_char; /* Temporary look-ahead character. */ + int result; /* The thing to return. */ + + if (command == RESET) + { + reset_parser (); + return ('\n'); + } + + if (token_to_read) + { + result = token_to_read; + if (token_to_read == WORD || token_to_read == ASSIGNMENT_WORD) + { + yylval.word = word_desc_to_read; + word_desc_to_read = (WORD_DESC *)NULL; + } + token_to_read = 0; + return (result); + } + +#if defined (COND_COMMAND) + if ((parser_state & (PST_CONDCMD|PST_CONDEXPR)) == PST_CONDCMD) + { + cond_lineno = line_number; + parser_state |= PST_CONDEXPR; + yylval.command = parse_cond_command (); + if (cond_token != COND_END) + { + cond_error (); + return (-1); + } + token_to_read = COND_END; + parser_state &= ~(PST_CONDEXPR|PST_CONDCMD); + return (COND_CMD); + } +#endif + +#if defined (ALIAS) + /* This is a place to jump back to once we have successfully expanded a + token with an alias and pushed the string with push_string () */ + re_read_token: +#endif /* ALIAS */ + + /* Read a single word from input. Start by skipping blanks. */ + while ((character = shell_getc (1)) != EOF && whitespace (character)) + ; + + if (character == EOF) + { + EOF_Reached = 1; + return (yacc_EOF); + } + + if MBTEST(character == '#' && (!interactive || interactive_comments)) + { + /* A comment. Discard until EOL or EOF, and then return a newline. */ + discard_until ('\n'); + shell_getc (0); + character = '\n'; /* this will take the next if statement and return. */ + } + + if (character == '\n') + { + /* If we're about to return an unquoted newline, we can go and collect + the text of any pending here document. */ + if (need_here_doc) + gather_here_documents (); + +#if defined (ALIAS) + parser_state &= ~PST_ALEXPNEXT; +#endif /* ALIAS */ + + parser_state &= ~PST_ASSIGNOK; + + return (character); + } + + /* Shell meta-characters. */ + if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0)) + { +#if defined (ALIAS) + /* Turn off alias tokenization iff this character sequence would + not leave us ready to read a command. */ + if (character == '<' || character == '>') + parser_state &= ~PST_ALEXPNEXT; +#endif /* ALIAS */ + + parser_state &= ~PST_ASSIGNOK; + + peek_char = shell_getc (1); + if (character == peek_char) + { + switch (character) + { + case '<': + /* If '<' then we could be at "<<" or at "<<-". We have to + look ahead one more character. */ + peek_char = shell_getc (1); + if (peek_char == '-') + return (LESS_LESS_MINUS); + else if (peek_char == '<') + return (LESS_LESS_LESS); + else + { + shell_ungetc (peek_char); + return (LESS_LESS); + } + + case '>': + return (GREATER_GREATER); + + case ';': + parser_state |= PST_CASEPAT; +#if defined (ALIAS) + parser_state &= ~PST_ALEXPNEXT; +#endif /* ALIAS */ + + return (SEMI_SEMI); + + case '&': + return (AND_AND); + + case '|': + return (OR_OR); + +#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND) + case '(': /* ) */ + result = parse_dparen (character); + if (result == -2) + break; + else + return result; +#endif + } + } + else if MBTEST(character == '<' && peek_char == '&') + return (LESS_AND); + else if MBTEST(character == '>' && peek_char == '&') + return (GREATER_AND); + else if MBTEST(character == '<' && peek_char == '>') + return (LESS_GREATER); + else if MBTEST(character == '>' && peek_char == '|') + return (GREATER_BAR); + else if MBTEST(peek_char == '>' && character == '&') + return (AND_GREATER); + + shell_ungetc (peek_char); + + /* If we look like we are reading the start of a function + definition, then let the reader know about it so that + we will do the right thing with `{'. */ + if MBTEST(character == ')' && last_read_token == '(' && token_before_that == WORD) + { + parser_state |= PST_ALLOWOPNBRC; +#if defined (ALIAS) + parser_state &= ~PST_ALEXPNEXT; +#endif /* ALIAS */ + function_dstart = line_number; + } + + /* case pattern lists may be preceded by an optional left paren. If + we're not trying to parse a case pattern list, the left paren + indicates a subshell. */ + if MBTEST(character == '(' && (parser_state & PST_CASEPAT) == 0) /* ) */ + parser_state |= PST_SUBSHELL; + /*(*/ + else if MBTEST((parser_state & PST_CASEPAT) && character == ')') + parser_state &= ~PST_CASEPAT; + /*(*/ + else if MBTEST((parser_state & PST_SUBSHELL) && character == ')') + parser_state &= ~PST_SUBSHELL; + +#if defined (PROCESS_SUBSTITUTION) + /* Check for the constructs which introduce process substitution. + Shells running in `posix mode' don't do process substitution. */ + if MBTEST(posixly_correct || ((character != '>' && character != '<') || peek_char != '(')) /*)*/ +#endif /* PROCESS_SUBSTITUTION */ + return (character); + } + + /* Hack <&- (close stdin) case. Also <&N- (dup and close). */ + if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND)) + return (character); + + /* Okay, if we got this far, we have to read a word. Read one, + and then check it against the known ones. */ + result = read_token_word (character); +#if defined (ALIAS) + if (result == RE_READ_TOKEN) + goto re_read_token; +#endif + return result; +} + +/* + * Match a $(...) or other grouping construct. This has to handle embedded + * quoted strings ('', ``, "") and nested constructs. It also must handle + * reprompting the user, if necessary, after reading a newline (unless the + * P_NONL flag is passed), and returning correct error values if it reads + * EOF. + */ +#define P_FIRSTCLOSE 0x01 +#define P_ALLOWESC 0x02 +#define P_DQUOTE 0x04 + +static char matched_pair_error; +static char * +parse_matched_pair (qc, open, close, lenp, flags) + int qc; /* `"' if this construct is within double quotes */ + int open, close; + int *lenp, flags; +{ + int count, ch, was_dollar; + int pass_next_character, nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans; + int retind, retsize, rflags; + + count = 1; + pass_next_character = was_dollar = 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ + rflags = (qc == '"') ? P_DQUOTE : (flags & P_DQUOTE); + + ret = (char *)xmalloc (retsize = 64); + retind = 0; + + start_lineno = line_number; + while (count) + { +#if 0 + ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0); +#else + ch = shell_getc (qc != '\'' && pass_next_character == 0); +#endif + if (ch == EOF) + { + free (ret); + parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), close); + EOF_Reached = 1; /* XXX */ + return (&matched_pair_error); + } + + /* Possible reprompting. */ + if (ch == '\n' && SHOULD_PROMPT ()) + prompt_again (); + + if (pass_next_character) /* last char was backslash */ + { + pass_next_character = 0; + if (qc != '\'' && ch == '\n') /* double-quoted \<newline> disappears. */ + { + if (retind > 0) retind--; /* swallow previously-added backslash */ + continue; + } + + RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); + if MBTEST(ch == CTLESC || ch == CTLNUL) + ret[retind++] = CTLESC; + ret[retind++] = ch; + continue; + } + else if MBTEST(ch == CTLESC || ch == CTLNUL) /* special shell escapes */ + { + RESIZE_MALLOCED_BUFFER (ret, retind, 2, retsize, 64); + ret[retind++] = CTLESC; + ret[retind++] = ch; + continue; + } + else if MBTEST(ch == close) /* ending delimiter */ + count--; +#if 1 + /* handle nested ${...} specially. */ + else if MBTEST(open != close && was_dollar && open == '{' && ch == open) /* } */ + count++; +#endif + else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && ch == open) /* nested begin */ + count++; + + /* Add this character. */ + RESIZE_MALLOCED_BUFFER (ret, retind, 1, retsize, 64); + ret[retind++] = ch; + + if (open == '\'') /* '' inside grouping construct */ + { + if MBTEST((flags & P_ALLOWESC) && ch == '\\') + pass_next_character++; + continue; + } + + if MBTEST(ch == '\\') /* backslashes */ + pass_next_character++; + + if (open != close) /* a grouping construct */ + { + if MBTEST(shellquote (ch)) + { + /* '', ``, or "" inside $(...) or other grouping construct. */ + push_delimiter (dstack, ch); + if MBTEST(was_dollar && ch == '\'') /* $'...' inside group */ + nestret = parse_matched_pair (ch, ch, ch, &nestlen, P_ALLOWESC|rflags); + else + nestret = parse_matched_pair (ch, ch, ch, &nestlen, rflags); + pop_delimiter (dstack); + if (nestret == &matched_pair_error) + { + free (ret); + return &matched_pair_error; + } + if MBTEST(was_dollar && ch == '\'' && (extended_quote || (rflags & P_DQUOTE) == 0)) + { + /* Translate $'...' here. */ + ttrans = ansiexpand (nestret, 0, nestlen - 1, &ttranslen); + xfree (nestret); + + nestret = sh_single_quote (ttrans); + free (ttrans); + nestlen = strlen (nestret); + retind -= 2; /* back up before the $' */ + } + else if MBTEST(was_dollar && ch == '"' && (extended_quote || (rflags & P_DQUOTE) == 0)) + { + /* Locale expand $"..." here. */ + ttrans = localeexpand (nestret, 0, nestlen - 1, start_lineno, &ttranslen); + xfree (nestret); + + nestret = sh_mkdoublequoted (ttrans, ttranslen, 0); + free (ttrans); + nestlen = ttranslen + 2; + retind -= 2; /* back up before the $" */ + } + + if (nestlen) + { + RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); + strcpy (ret + retind, nestret); + retind += nestlen; + } + FREE (nestret); + } + } + /* Parse an old-style command substitution within double quotes as a + single word. */ + /* XXX - sh and ksh93 don't do this - XXX */ + else if MBTEST(open == '"' && ch == '`') + { + nestret = parse_matched_pair (0, '`', '`', &nestlen, rflags); + if (nestret == &matched_pair_error) + { + free (ret); + return &matched_pair_error; + } + if (nestlen) + { + RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); + strcpy (ret + retind, nestret); + retind += nestlen; + } + FREE (nestret); + } + else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ + /* check for $(), $[], or ${} inside quoted string. */ + { + if (open == ch) /* undo previous increment */ + count--; + if (ch == '(') /* ) */ + nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); + else if (ch == '[') /* ] */ + nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags); + if (nestret == &matched_pair_error) + { + free (ret); + return &matched_pair_error; + } + if (nestlen) + { + RESIZE_MALLOCED_BUFFER (ret, retind, nestlen, retsize, 64); + strcpy (ret + retind, nestret); + retind += nestlen; + } + FREE (nestret); + } + was_dollar = MBTEST(ch == '$'); + } + + ret[retind] = '\0'; + if (lenp) + *lenp = retind; + return ret; +} + +#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND) +/* Parse a double-paren construct. It can be either an arithmetic + command, an arithmetic `for' command, or a nested subshell. Returns + the parsed token, -1 on error, or -2 if we didn't do anything and + should just go on. */ +static int +parse_dparen (c) + int c; +{ + int cmdtyp, len, sline; + char *wval, *wv2; + WORD_DESC *wd; + +#if defined (ARITH_FOR_COMMAND) + if (last_read_token == FOR) + { + arith_for_lineno = line_number; + cmdtyp = parse_arith_cmd (&wval, 0); + if (cmdtyp == 1) + { + wd = alloc_word_desc (); + wd->word = wval; + wd = make_word (wval); + yylval.word_list = make_word_list (wd, (WORD_LIST *)NULL); + return (ARITH_FOR_EXPRS); + } + else + return -1; /* ERROR */ + } +#endif + +#if defined (DPAREN_ARITHMETIC) + if (reserved_word_acceptable (last_read_token)) + { + sline = line_number; + + cmdtyp = parse_arith_cmd (&wval, 0); + if (cmdtyp == 1) /* arithmetic command */ + { + wd = alloc_word_desc (); + wd->word = wval; + wd->flags = W_QUOTED|W_NOSPLIT|W_NOGLOB|W_DQUOTE; + yylval.word_list = make_word_list (wd, (WORD_LIST *)NULL); + return (ARITH_CMD); + } + else if (cmdtyp == 0) /* nested subshell */ + { + push_string (wval, 0, (alias_t *)NULL); + if ((parser_state & PST_CASEPAT) == 0) + parser_state |= PST_SUBSHELL; + return (c); + } + else /* ERROR */ + return -1; + } +#endif + + return -2; /* XXX */ +} + +/* We've seen a `(('. Look for the matching `))'. If we get it, return 1. + If not, assume it's a nested subshell for backwards compatibility and + return 0. In any case, put the characters we've consumed into a locally- + allocated buffer and make *ep point to that buffer. Return -1 on an + error, for example EOF. */ +static int +parse_arith_cmd (ep, adddq) + char **ep; + int adddq; +{ + int exp_lineno, rval, c; + char *ttok, *tokstr; + int ttoklen; + + exp_lineno = line_number; + ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0); + rval = 1; + if (ttok == &matched_pair_error) + return -1; + /* Check that the next character is the closing right paren. If + not, this is a syntax error. ( */ + c = shell_getc (0); + if MBTEST(c != ')') + rval = 0; + + tokstr = (char *)xmalloc (ttoklen + 4); + + /* if ADDDQ != 0 then (( ... )) -> "..." */ + if (rval == 1 && adddq) /* arith cmd, add double quotes */ + { + tokstr[0] = '"'; + strncpy (tokstr + 1, ttok, ttoklen - 1); + tokstr[ttoklen] = '"'; + tokstr[ttoklen+1] = '\0'; + } + else if (rval == 1) /* arith cmd, don't add double quotes */ + { + strncpy (tokstr, ttok, ttoklen - 1); + tokstr[ttoklen-1] = '\0'; + } + else /* nested subshell */ + { + tokstr[0] = '('; + strncpy (tokstr + 1, ttok, ttoklen - 1); + tokstr[ttoklen] = ')'; + tokstr[ttoklen+1] = c; + tokstr[ttoklen+2] = '\0'; + } + + *ep = tokstr; + FREE (ttok); + return rval; +} +#endif /* DPAREN_ARITHMETIC || ARITH_FOR_COMMAND */ + +#if defined (COND_COMMAND) +static void +cond_error () +{ + char *etext; + + if (EOF_Reached && cond_token != COND_ERROR) /* [[ */ + parser_error (cond_lineno, _("unexpected EOF while looking for `]]'")); + else if (cond_token != COND_ERROR) + { + if (etext = error_token_from_token (cond_token)) + { + parser_error (cond_lineno, _("syntax error in conditional expression: unexpected token `%s'"), etext); + free (etext); + } + else + parser_error (cond_lineno, _("syntax error in conditional expression")); + } +} + +static COND_COM * +cond_expr () +{ + return (cond_or ()); +} + +static COND_COM * +cond_or () +{ + COND_COM *l, *r; + + l = cond_and (); + if (cond_token == OR_OR) + { + r = cond_or (); + l = make_cond_node (COND_OR, (WORD_DESC *)NULL, l, r); + } + return l; +} + +static COND_COM * +cond_and () +{ + COND_COM *l, *r; + + l = cond_term (); + if (cond_token == AND_AND) + { + r = cond_and (); + l = make_cond_node (COND_AND, (WORD_DESC *)NULL, l, r); + } + return l; +} + +static int +cond_skip_newlines () +{ + while ((cond_token = read_token (READ)) == '\n') + { + if (SHOULD_PROMPT ()) + prompt_again (); + } + return (cond_token); +} + +#define COND_RETURN_ERROR() \ + do { cond_token = COND_ERROR; return ((COND_COM *)NULL); } while (0) + +static COND_COM * +cond_term () +{ + WORD_DESC *op; + COND_COM *term, *tleft, *tright; + int tok, lineno; + char *etext; + + /* Read a token. It can be a left paren, a `!', a unary operator, or a + word that should be the first argument of a binary operator. Start by + skipping newlines, since this is a compound command. */ + tok = cond_skip_newlines (); + lineno = line_number; + if (tok == COND_END) + { + COND_RETURN_ERROR (); + } + else if (tok == '(') + { + term = cond_expr (); + if (cond_token != ')') + { + if (term) + dispose_cond_node (term); /* ( */ + if (etext = error_token_from_token (cond_token)) + { + parser_error (lineno, _("unexpected token `%s', expected `)'"), etext); + free (etext); + } + else + parser_error (lineno, _("expected `)'")); + COND_RETURN_ERROR (); + } + term = make_cond_node (COND_EXPR, (WORD_DESC *)NULL, term, (COND_COM *)NULL); + (void)cond_skip_newlines (); + } + else if (tok == BANG || (tok == WORD && (yylval.word->word[0] == '!' && yylval.word->word[1] == '\0'))) + { + if (tok == WORD) + dispose_word (yylval.word); /* not needed */ + term = cond_term (); + if (term) + term->flags |= CMD_INVERT_RETURN; + } + else if (tok == WORD && test_unop (yylval.word->word)) + { + op = yylval.word; + tok = read_token (READ); + if (tok == WORD) + { + tleft = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); + term = make_cond_node (COND_UNARY, op, tleft, (COND_COM *)NULL); + } + else + { + dispose_word (op); + if (etext = error_token_from_token (tok)) + { + parser_error (line_number, _("unexpected argument `%s' to conditional unary operator"), etext); + free (etext); + } + else + parser_error (line_number, _("unexpected argument to conditional unary operator")); + COND_RETURN_ERROR (); + } + + (void)cond_skip_newlines (); + } + else if (tok == WORD) /* left argument to binary operator */ + { + /* lhs */ + tleft = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); + + /* binop */ + tok = read_token (READ); + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; +#if defined (COND_REGEXP) + else if (tok == WORD && STREQ (yylval.word->word,"=~")) + op = yylval.word; +#endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ + /* There should be a check before blindly accepting the `)' that we have + seen the opening `('. */ + else if (tok == COND_END || tok == AND_AND || tok == OR_OR || tok == ')') + { + /* Special case. [[ x ]] is equivalent to [[ -n x ]], just like + the test command. Similarly for [[ x && expr ]] or + [[ x || expr ]] or [[ (x) ]]. */ + op = make_word ("-n"); + term = make_cond_node (COND_UNARY, op, tleft, (COND_COM *)NULL); + cond_token = tok; + return (term); + } + else + { + if (etext = error_token_from_token (tok)) + { + parser_error (line_number, _("unexpected token `%s', conditional binary operator expected"), etext); + free (etext); + } + else + parser_error (line_number, _("conditional binary operator expected")); + dispose_cond_node (tleft); + COND_RETURN_ERROR (); + } + + /* rhs */ + tok = read_token (READ); + if (tok == WORD) + { + tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); + term = make_cond_node (COND_BINARY, op, tleft, tright); + } + else + { + if (etext = error_token_from_token (tok)) + { + parser_error (line_number, _("unexpected argument `%s' to conditional binary operator"), etext); + free (etext); + } + else + parser_error (line_number, _("unexpected argument to conditional binary operator")); + dispose_cond_node (tleft); + dispose_word (op); + COND_RETURN_ERROR (); + } + + (void)cond_skip_newlines (); + } + else + { + if (tok < 256) + parser_error (line_number, _("unexpected token `%c' in conditional command"), tok); + else if (etext = error_token_from_token (tok)) + { + parser_error (line_number, _("unexpected token `%s' in conditional command"), etext); + free (etext); + } + else + parser_error (line_number, _("unexpected token %d in conditional command"), tok); + COND_RETURN_ERROR (); + } + return (term); +} + +/* This is kind of bogus -- we slip a mini recursive-descent parser in + here to handle the conditional statement syntax. */ +static COMMAND * +parse_cond_command () +{ + COND_COM *cexp; + + cexp = cond_expr (); + return (make_cond_command (cexp)); +} +#endif + +#if defined (ARRAY_VARS) +/* When this is called, it's guaranteed that we don't care about anything + in t beyond i. We do save and restore the chars, though. */ +static int +token_is_assignment (t, i) + char *t; + int i; +{ + unsigned char c, c1; + int r; + + c = t[i]; c1 = t[i+1]; + t[i] = '='; t[i+1] = '\0'; + r = assignment (t, (parser_state & PST_COMPASSIGN) != 0); + t[i] = c; t[i+1] = c1; + return r; +} + +/* XXX - possible changes here for `+=' */ +static int +token_is_ident (t, i) + char *t; + int i; +{ + unsigned char c; + int r; + + c = t[i]; + t[i] = '\0'; + r = legal_identifier (t); + t[i] = c; + return r; +} +#endif + +static int +read_token_word (character) + int character; +{ + /* The value for YYLVAL when a WORD is read. */ + WORD_DESC *the_word; + + /* Index into the token that we are building. */ + int token_index; + + /* ALL_DIGITS becomes zero when we see a non-digit. */ + int all_digit_token; + + /* DOLLAR_PRESENT becomes non-zero if we see a `$'. */ + int dollar_present; + + /* COMPOUND_ASSIGNMENT becomes non-zero if we are parsing a compound + assignment. */ + int compound_assignment; + + /* QUOTED becomes non-zero if we see one of ("), ('), (`), or (\). */ + int quoted; + + /* Non-zero means to ignore the value of the next character, and just + to add it no matter what. */ + int pass_next_character; + + /* The current delimiting character. */ + int cd; + int result, peek_char; + char *ttok, *ttrans; + int ttoklen, ttranslen; + intmax_t lvalue; + + if (token_buffer_size < TOKEN_DEFAULT_INITIAL_SIZE) + token = (char *)xrealloc (token, token_buffer_size = TOKEN_DEFAULT_INITIAL_SIZE); + + token_index = 0; + all_digit_token = DIGIT (character); + dollar_present = quoted = pass_next_character = compound_assignment = 0; + + for (;;) + { + if (character == EOF) + goto got_token; + + if (pass_next_character) + { + pass_next_character = 0; + goto got_character; + } + + cd = current_delimiter (dstack); + + /* Handle backslashes. Quote lots of things when not inside of + double-quotes, quote some things inside of double-quotes. */ + if MBTEST(character == '\\') + { + peek_char = shell_getc (0); + + /* Backslash-newline is ignored in all cases except + when quoted with single quotes. */ + if (peek_char == '\n') + { + character = '\n'; + goto next_character; + } + else + { + shell_ungetc (peek_char); + + /* If the next character is to be quoted, note it now. */ + if (cd == 0 || cd == '`' || + (cd == '"' && peek_char >= 0 && (sh_syntaxtab[peek_char] & CBSDQUOTE))) + pass_next_character++; + + quoted = 1; + goto got_character; + } + } + + /* Parse a matched pair of quote characters. */ + if MBTEST(shellquote (character)) + { + push_delimiter (dstack, character); + ttok = parse_matched_pair (character, character, character, &ttoklen, 0); + pop_delimiter (dstack); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ + RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, + token_buffer_size, TOKEN_DEFAULT_GROW_SIZE); + token[token_index++] = character; + strcpy (token + token_index, ttok); + token_index += ttoklen; + all_digit_token = 0; + quoted = 1; + dollar_present |= (character == '"' && strchr (ttok, '$') != 0); + FREE (ttok); + goto next_character; + } + +#ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ + if (extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ + { + push_delimiter (dstack, peek_char); + ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); + pop_delimiter (dstack); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ + RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, + token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + token[token_index++] = character; + token[token_index++] = peek_char; + strcpy (token + token_index, ttok); + token_index += ttoklen; + FREE (ttok); + dollar_present = all_digit_token = 0; + goto next_character; + } + else + shell_ungetc (peek_char); + } +#endif /* EXTENDED_GLOB */ + + /* If the delimiter character is not single quote, parse some of + the shell expansions that must be read as a single word. */ + if (shellexp (character)) + { + peek_char = shell_getc (1); + /* $(...), <(...), >(...), $((...)), ${...}, and $[...] constructs */ + if MBTEST(peek_char == '(' || \ + ((peek_char == '{' || peek_char == '[') && character == '$')) /* ) ] } */ + { + if (peek_char == '{') /* } */ + ttok = parse_matched_pair (cd, '{', '}', &ttoklen, P_FIRSTCLOSE); + else if (peek_char == '(') /* ) */ + { + /* XXX - push and pop the `(' as a delimiter for use by + the command-oriented-history code. This way newlines + appearing in the $(...) string get added to the + history literally rather than causing a possibly- + incorrect `;' to be added. ) */ + push_delimiter (dstack, peek_char); + ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); + pop_delimiter (dstack); + } + else + ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ + RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, + token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + token[token_index++] = character; + token[token_index++] = peek_char; + strcpy (token + token_index, ttok); + token_index += ttoklen; + FREE (ttok); + dollar_present = 1; + all_digit_token = 0; + goto next_character; + } + /* This handles $'...' and $"..." new-style quoted strings. */ + else if MBTEST(character == '$' && (peek_char == '\'' || peek_char == '"')) + { + int first_line; + + first_line = line_number; + push_delimiter (dstack, peek_char); + ttok = parse_matched_pair (peek_char, peek_char, peek_char, + &ttoklen, + (peek_char == '\'') ? P_ALLOWESC : 0); + pop_delimiter (dstack); + if (ttok == &matched_pair_error) + return -1; + if (peek_char == '\'') + { + ttrans = ansiexpand (ttok, 0, ttoklen - 1, &ttranslen); + free (ttok); + + /* Insert the single quotes and correctly quote any + embedded single quotes (allowed because P_ALLOWESC was + passed to parse_matched_pair). */ + ttok = sh_single_quote (ttrans); + free (ttrans); + ttranslen = strlen (ttok); + ttrans = ttok; + } + else + { + /* Try to locale)-expand the converted string. */ + ttrans = localeexpand (ttok, 0, ttoklen - 1, first_line, &ttranslen); + free (ttok); + + /* Add the double quotes back */ + ttok = sh_mkdoublequoted (ttrans, ttranslen, 0); + free (ttrans); + ttranslen += 2; + ttrans = ttok; + } + + RESIZE_MALLOCED_BUFFER (token, token_index, ttranslen + 2, + token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + strcpy (token + token_index, ttrans); + token_index += ttranslen; + FREE (ttrans); + quoted = 1; + all_digit_token = 0; + goto next_character; + } + /* This could eventually be extended to recognize all of the + shell's single-character parameter expansions, and set flags.*/ + else if MBTEST(character == '$' && peek_char == '$') + { + ttok = (char *)xmalloc (3); + ttok[0] = ttok[1] = '$'; + ttok[2] = '\0'; + RESIZE_MALLOCED_BUFFER (token, token_index, 3, + token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + strcpy (token + token_index, ttok); + token_index += 2; + dollar_present = 1; + all_digit_token = 0; + FREE (ttok); + goto next_character; + } + else + shell_ungetc (peek_char); + } + +#if defined (ARRAY_VARS) + /* Identify possible array subscript assignment; match [...] */ + else if MBTEST(character == '[' && token_index > 0 && assignment_acceptable (last_read_token) && token_is_ident (token, token_index)) /* ] */ + { + ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0); + if (ttok == &matched_pair_error) + return -1; /* Bail immediately. */ + RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, + token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + token[token_index++] = character; + strcpy (token + token_index, ttok); + token_index += ttoklen; + FREE (ttok); + all_digit_token = 0; + goto next_character; + } + /* Identify possible compound array variable assignment. */ + else if MBTEST(character == '=' && token_index > 0 && (assignment_acceptable (last_read_token) || (parser_state & PST_ASSIGNOK)) && token_is_assignment (token, token_index)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ + { + ttok = parse_compound_assignment (&ttoklen); + + RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 4, + token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + + token[token_index++] = '='; + token[token_index++] = '('; + if (ttok) + { + strcpy (token + token_index, ttok); + token_index += ttoklen; + } + token[token_index++] = ')'; + FREE (ttok); + all_digit_token = 0; + compound_assignment = 1; +#if 0 + goto next_character; +#else + goto got_token; /* ksh93 seems to do this */ +#endif + } + else + shell_ungetc (peek_char); + } +#endif + + /* When not parsing a multi-character word construct, shell meta- + characters break words. */ + if MBTEST(shellbreak (character)) + { + shell_ungetc (character); + goto got_token; + } + + got_character: + + all_digit_token &= DIGIT (character); + dollar_present |= character == '$'; + + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + + token[token_index++] = character; + + RESIZE_MALLOCED_BUFFER (token, token_index, 1, token_buffer_size, + TOKEN_DEFAULT_GROW_SIZE); + + next_character: + if (character == '\n' && SHOULD_PROMPT ()) + prompt_again (); + + /* We want to remove quoted newlines (that is, a \<newline> pair) + unless we are within single quotes or pass_next_character is + set (the shell equivalent of literal-next). */ + cd = current_delimiter (dstack); + character = shell_getc (cd != '\'' && pass_next_character == 0); + } /* end for (;;) */ + +got_token: + + token[token_index] = '\0'; + + /* Check to see what thing we should return. If the last_read_token + is a `<', or a `&', or the character which ended this token is + a '>' or '<', then, and ONLY then, is this input token a NUMBER. + Otherwise, it is just a word, and should be returned as such. */ + if MBTEST(all_digit_token && (character == '<' || character == '>' || \ + last_read_token == LESS_AND || \ + last_read_token == GREATER_AND)) + { + if (legal_number (token, &lvalue) && (int)lvalue == lvalue) + yylval.number = lvalue; + else + yylval.number = -1; + return (NUMBER); + } + + /* Check for special case tokens. */ + result = (last_shell_getc_is_singlebyte) ? special_case_tokens (token) : -1; + if (result >= 0) + return result; + +#if defined (ALIAS) + /* Posix.2 does not allow reserved words to be aliased, so check for all + of them, including special cases, before expanding the current token + as an alias. */ + if MBTEST(posixly_correct) + CHECK_FOR_RESERVED_WORD (token); + + /* Aliases are expanded iff EXPAND_ALIASES is non-zero, and quoting + inhibits alias expansion. */ + if (expand_aliases && quoted == 0) + { + result = alias_expand_token (token); + if (result == RE_READ_TOKEN) + return (RE_READ_TOKEN); + else if (result == NO_EXPANSION) + parser_state &= ~PST_ALEXPNEXT; + } + + /* If not in Posix.2 mode, check for reserved words after alias + expansion. */ + if MBTEST(posixly_correct == 0) +#endif + CHECK_FOR_RESERVED_WORD (token); + + the_word = (WORD_DESC *)xmalloc (sizeof (WORD_DESC)); + the_word->word = (char *)xmalloc (1 + token_index); + the_word->flags = 0; + strcpy (the_word->word, token); + if (dollar_present) + the_word->flags |= W_HASDOLLAR; + if (quoted) + the_word->flags |= W_QUOTED; + if (compound_assignment) + the_word->flags |= W_COMPASSIGN; + /* A word is an assignment if it appears at the beginning of a + simple command, or after another assignment word. This is + context-dependent, so it cannot be handled in the grammar. */ + if (assignment (token, (parser_state & PST_COMPASSIGN) != 0)) + { + the_word->flags |= W_ASSIGNMENT; + /* Don't perform word splitting on assignment statements. */ + if (assignment_acceptable (last_read_token) || (parser_state & PST_COMPASSIGN) != 0) + the_word->flags |= W_NOSPLIT; + } + + if (command_token_position (last_read_token)) + { + struct builtin *b; + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) + parser_state |= PST_ASSIGNOK; + } + + yylval.word = the_word; + + result = ((the_word->flags & (W_ASSIGNMENT|W_NOSPLIT)) == (W_ASSIGNMENT|W_NOSPLIT)) + ? ASSIGNMENT_WORD : WORD; + + switch (last_read_token) + { + case FUNCTION: + parser_state |= PST_ALLOWOPNBRC; + function_dstart = line_number; + break; + case CASE: + case SELECT: + case FOR: + if (word_top < MAX_CASE_NEST) + word_top++; + word_lineno[word_top] = line_number; + break; + } + + return (result); +} + +/* Return 1 if TOKSYM is a token that after being read would allow + a reserved word to be seen, else 0. */ +static int +reserved_word_acceptable (toksym) + int toksym; +{ + switch (toksym) + { + case '\n': + case ';': + case '(': + case ')': + case '|': + case '&': + case '{': + case '}': /* XXX */ + case AND_AND: + case BANG: + case DO: + case DONE: + case ELIF: + case ELSE: + case ESAC: + case FI: + case IF: + case OR_OR: + case SEMI_SEMI: + case THEN: + case TIME: + case TIMEOPT: + case UNTIL: + case WHILE: + case 0: + return 1; + default: + return 0; + } +} + +/* Return the index of TOKEN in the alist of reserved words, or -1 if + TOKEN is not a shell reserved word. */ +int +find_reserved_word (tokstr) + char *tokstr; +{ + int i; + for (i = 0; word_token_alist[i].word; i++) + if (STREQ (tokstr, word_token_alist[i].word)) + return i; + return -1; +} + +#if 0 +#if defined (READLINE) +/* Called after each time readline is called. This insures that whatever + the new prompt string is gets propagated to readline's local prompt + variable. */ +static void +reset_readline_prompt () +{ + char *temp_prompt; + + if (prompt_string_pointer) + { + temp_prompt = (*prompt_string_pointer) + ? decode_prompt_string (*prompt_string_pointer) + : (char *)NULL; + + if (temp_prompt == 0) + { + temp_prompt = (char *)xmalloc (1); + temp_prompt[0] = '\0'; + } + + FREE (current_readline_prompt); + current_readline_prompt = temp_prompt; + } +} +#endif /* READLINE */ +#endif /* 0 */ + +#if defined (HISTORY) +/* A list of tokens which can be followed by newlines, but not by + semi-colons. When concatenating multiple lines of history, the + newline separator for such tokens is replaced with a space. */ +static int no_semi_successors[] = { + '\n', '{', '(', ')', ';', '&', '|', + CASE, DO, ELSE, IF, SEMI_SEMI, THEN, UNTIL, WHILE, AND_AND, OR_OR, IN, + 0 +}; + +/* If we are not within a delimited expression, try to be smart + about which separators can be semi-colons and which must be + newlines. Returns the string that should be added into the + history entry. */ +char * +history_delimiting_chars () +{ + register int i; + + if (dstack.delimiter_depth != 0) + return ("\n"); + + /* First, handle some special cases. */ + /*(*/ + /* If we just read `()', assume it's a function definition, and don't + add a semicolon. If the token before the `)' was not `(', and we're + not in the midst of parsing a case statement, assume it's a + parenthesized command and add the semicolon. */ + /*)(*/ + if (token_before_that == ')') + { + if (two_tokens_ago == '(') /*)*/ /* function def */ + return " "; + /* This does not work for subshells inside case statement + command lists. It's a suboptimal solution. */ + else if (parser_state & PST_CASESTMT) /* case statement pattern */ + return " "; + else + return "; "; /* (...) subshell */ + } + else if (token_before_that == WORD && two_tokens_ago == FUNCTION) + return " "; /* function def using `function name' without `()' */ + + else if (token_before_that == WORD && two_tokens_ago == FOR) + { + /* Tricky. `for i\nin ...' should not have a semicolon, but + `for i\ndo ...' should. We do what we can. */ + for (i = shell_input_line_index; whitespace(shell_input_line[i]); i++) + ; + if (shell_input_line[i] && shell_input_line[i] == 'i' && shell_input_line[i+1] == 'n') + return " "; + return ";"; + } + else if (two_tokens_ago == CASE && token_before_that == WORD && (parser_state & PST_CASESTMT)) + return " "; + + for (i = 0; no_semi_successors[i]; i++) + { + if (token_before_that == no_semi_successors[i]) + return (" "); + } + + return ("; "); +} +#endif /* HISTORY */ + +/* Issue a prompt, or prepare to issue a prompt when the next character + is read. */ +static void +prompt_again () +{ + char *temp_prompt; + + if (interactive == 0 || expanding_alias()) /* XXX */ + return; + + ps1_prompt = get_string_value ("PS1"); + ps2_prompt = get_string_value ("PS2"); + + if (!prompt_string_pointer) + prompt_string_pointer = &ps1_prompt; + + temp_prompt = *prompt_string_pointer + ? decode_prompt_string (*prompt_string_pointer) + : (char *)NULL; + + if (temp_prompt == 0) + { + temp_prompt = (char *)xmalloc (1); + temp_prompt[0] = '\0'; + } + + current_prompt_string = *prompt_string_pointer; + prompt_string_pointer = &ps2_prompt; + +#if defined (READLINE) + if (!no_line_editing) + { + FREE (current_readline_prompt); + current_readline_prompt = temp_prompt; + } + else +#endif /* READLINE */ + { + FREE (current_decoded_prompt); + current_decoded_prompt = temp_prompt; + } +} + +int +get_current_prompt_level () +{ + return ((current_prompt_string && current_prompt_string == ps2_prompt) ? 2 : 1); +} + +void +set_current_prompt_level (x) + int x; +{ + prompt_string_pointer = (x == 2) ? &ps2_prompt : &ps1_prompt; + current_prompt_string = *prompt_string_pointer; +} + +static void +print_prompt () +{ + fprintf (stderr, "%s", current_decoded_prompt); + fflush (stderr); +} + +/* Return a string which will be printed as a prompt. The string + may contain special characters which are decoded as follows: + + \a bell (ascii 07) + \d the date in Day Mon Date format + \e escape (ascii 033) + \h the hostname up to the first `.' + \H the hostname + \j the number of active jobs + \l the basename of the shell's tty device name + \n CRLF + \r CR + \s the name of the shell + \t the time in 24-hour hh:mm:ss format + \T the time in 12-hour hh:mm:ss format + \@ the time in 12-hour hh:mm am/pm format + \A the time in 24-hour hh:mm format + \D{fmt} the result of passing FMT to strftime(3) + \u your username + \v the version of bash (e.g., 2.00) + \V the release of bash, version + patchlevel (e.g., 2.00.0) + \w the current working directory + \W the last element of $PWD + \! the history number of this command + \# the command number of this command + \$ a $ or a # if you are root + \nnn character code nnn in octal + \\ a backslash + \[ begin a sequence of non-printing chars + \] end a sequence of non-printing chars +*/ +#define PROMPT_GROWTH 48 +char * +decode_prompt_string (string) + char *string; +{ + WORD_LIST *list; + char *result, *t; + struct dstack save_dstack; + int last_exit_value; +#if defined (PROMPT_STRING_DECODE) + int result_size, result_index; + int c, n; + char *temp, octal_string[4]; + struct tm *tm; + time_t the_time; + char timebuf[128]; + char *timefmt; + + result = (char *)xmalloc (result_size = PROMPT_GROWTH); + result[result_index = 0] = 0; + temp = (char *)NULL; + + while (c = *string++) + { + if (posixly_correct && c == '!') + { + if (*string == '!') + { + temp = savestring ("!"); + goto add_string; + } + else + { +#if !defined (HISTORY) + temp = savestring ("1"); +#else /* HISTORY */ + temp = itos (history_number ()); +#endif /* HISTORY */ + string--; /* add_string increments string again. */ + goto add_string; + } + } + if (c == '\\') + { + c = *string; + + switch (c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + strncpy (octal_string, string, 3); + octal_string[3] = '\0'; + + n = read_octal (octal_string); + temp = (char *)xmalloc (3); + + if (n == CTLESC || n == CTLNUL) + { + temp[0] = CTLESC; + temp[1] = n; + temp[2] = '\0'; + } + else if (n == -1) + { + temp[0] = '\\'; + temp[1] = '\0'; + } + else + { + temp[0] = n; + temp[1] = '\0'; + } + + for (c = 0; n != -1 && c < 3 && ISOCTAL (*string); c++) + string++; + + c = 0; /* tested at add_string: */ + goto add_string; + + case 'd': + case 't': + case 'T': + case '@': + case 'A': + /* Make the current time/date into a string. */ + (void) time (&the_time); + tm = localtime (&the_time); + + if (c == 'd') + n = strftime (timebuf, sizeof (timebuf), "%a %b %d", tm); + else if (c == 't') + n = strftime (timebuf, sizeof (timebuf), "%H:%M:%S", tm); + else if (c == 'T') + n = strftime (timebuf, sizeof (timebuf), "%I:%M:%S", tm); + else if (c == '@') + n = strftime (timebuf, sizeof (timebuf), "%I:%M %p", tm); + else if (c == 'A') + n = strftime (timebuf, sizeof (timebuf), "%H:%M", tm); + + if (n == 0) + timebuf[0] = '\0'; + else + timebuf[sizeof(timebuf) - 1] = '\0'; + + temp = savestring (timebuf); + goto add_string; + + case 'D': /* strftime format */ + if (string[1] != '{') /* } */ + goto not_escape; + + (void) time (&the_time); + tm = localtime (&the_time); + string += 2; /* skip { */ + timefmt = xmalloc (strlen (string) + 3); + for (t = timefmt; *string && *string != '}'; ) + *t++ = *string++; + *t = '\0'; + c = *string; /* tested at add_string */ + if (timefmt[0] == '\0') + { + timefmt[0] = '%'; + timefmt[1] = 'X'; /* locale-specific current time */ + timefmt[2] = '\0'; + } + n = strftime (timebuf, sizeof (timebuf), timefmt, tm); + free (timefmt); + + if (n == 0) + timebuf[0] = '\0'; + else + timebuf[sizeof(timebuf) - 1] = '\0'; + + if (promptvars || posixly_correct) + /* Make sure that expand_prompt_string is called with a + second argument of Q_DOUBLE_QUOTES if we use this + function here. */ + temp = sh_backslash_quote_for_double_quotes (timebuf); + else + temp = savestring (timebuf); + goto add_string; + + case 'n': + temp = (char *)xmalloc (3); + temp[0] = no_line_editing ? '\n' : '\r'; + temp[1] = no_line_editing ? '\0' : '\n'; + temp[2] = '\0'; + goto add_string; + + case 's': + temp = base_pathname (shell_name); + temp = savestring (temp); + goto add_string; + + case 'v': + case 'V': + temp = (char *)xmalloc (16); + if (c == 'v') + strcpy (temp, dist_version); + else + sprintf (temp, "%s.%d", dist_version, patch_level); + goto add_string; + + case 'w': + case 'W': + { + /* Use the value of PWD because it is much more efficient. */ + char t_string[PATH_MAX], *t; + int tlen; + + temp = get_string_value ("PWD"); + + if (temp == 0) + { + if (getcwd (t_string, sizeof(t_string)) == 0) + { + t_string[0] = '.'; + tlen = 1; + } + else + tlen = strlen (t_string); + } + else + { + tlen = sizeof (t_string) - 1; + strncpy (t_string, temp, tlen); + } + t_string[tlen] = '\0'; + +#define ROOT_PATH(x) ((x)[0] == '/' && (x)[1] == 0) +#define DOUBLE_SLASH_ROOT(x) ((x)[0] == '/' && (x)[1] == '/' && (x)[2] == 0) + /* Abbreviate \W as ~ if $PWD == $HOME */ + if (c == 'W' && (((t = get_string_value ("HOME")) == 0) || STREQ (t, t_string) == 0)) + { + if (ROOT_PATH (t_string) == 0 && DOUBLE_SLASH_ROOT (t_string) == 0) + { + t = strrchr (t_string, '/'); + if (t) + strcpy (t_string, t + 1); + } + } +#undef ROOT_PATH +#undef DOUBLE_SLASH_ROOT + else + /* polite_directory_format is guaranteed to return a string + no longer than PATH_MAX - 1 characters. */ + strcpy (t_string, polite_directory_format (t_string)); + + /* If we're going to be expanding the prompt string later, + quote the directory name. */ + if (promptvars || posixly_correct) + /* Make sure that expand_prompt_string is called with a + second argument of Q_DOUBLE_QUOTES if we use this + function here. */ + temp = sh_backslash_quote_for_double_quotes (t_string); + else + temp = savestring (t_string); + + goto add_string; + } + + case 'u': + if (current_user.user_name == 0) + get_current_user_info (); + temp = savestring (current_user.user_name); + goto add_string; + + case 'h': + case 'H': + temp = savestring (current_host_name); + if (c == 'h' && (t = (char *)strchr (temp, '.'))) + *t = '\0'; + goto add_string; + + case '#': + temp = itos (current_command_number); + goto add_string; + + case '!': +#if !defined (HISTORY) + temp = savestring ("1"); +#else /* HISTORY */ + temp = itos (history_number ()); +#endif /* HISTORY */ + goto add_string; + + case '$': + t = temp = (char *)xmalloc (3); + if ((promptvars || posixly_correct) && (current_user.euid != 0)) + *t++ = '\\'; + *t++ = current_user.euid == 0 ? '#' : '$'; + *t = '\0'; + goto add_string; + + case 'j': + temp = itos (count_all_jobs ()); + goto add_string; + + case 'l': +#if defined (HAVE_TTYNAME) + temp = (char *)ttyname (fileno (stdin)); + t = temp ? base_pathname (temp) : "tty"; + temp = savestring (t); +#else + temp = savestring ("tty"); +#endif /* !HAVE_TTYNAME */ + goto add_string; + +#if defined (READLINE) + case '[': + case ']': + if (no_line_editing) + { + string++; + break; + } + temp = (char *)xmalloc (3); + temp[0] = '\001'; + temp[1] = (c == '[') ? RL_PROMPT_START_IGNORE : RL_PROMPT_END_IGNORE; + temp[2] = '\0'; + goto add_string; +#endif /* READLINE */ + + case '\\': + case 'a': + case 'e': + case 'r': + temp = (char *)xmalloc (2); + if (c == 'a') + temp[0] = '\07'; + else if (c == 'e') + temp[0] = '\033'; + else if (c == 'r') + temp[0] = '\r'; + else /* (c == '\\') */ + temp[0] = c; + temp[1] = '\0'; + goto add_string; + + default: +not_escape: + temp = (char *)xmalloc (3); + temp[0] = '\\'; + temp[1] = c; + temp[2] = '\0'; + + add_string: + if (c) + string++; + result = + sub_append_string (temp, result, &result_index, &result_size); + temp = (char *)NULL; /* Freed in sub_append_string (). */ + result[result_index] = '\0'; + break; + } + } + else + { + RESIZE_MALLOCED_BUFFER (result, result_index, 3, result_size, PROMPT_GROWTH); + result[result_index++] = c; + result[result_index] = '\0'; + } + } +#else /* !PROMPT_STRING_DECODE */ + result = savestring (string); +#endif /* !PROMPT_STRING_DECODE */ + + /* Save the delimiter stack and point `dstack' to temp space so any + command substitutions in the prompt string won't result in screwing + up the parser's quoting state. */ + save_dstack = dstack; + dstack = temp_dstack; + dstack.delimiter_depth = 0; + + /* Perform variable and parameter expansion and command substitution on + the prompt string. */ + if (promptvars || posixly_correct) + { + last_exit_value = last_command_exit_value; + list = expand_prompt_string (result, Q_DOUBLE_QUOTES); + free (result); + result = string_list (list); + dispose_words (list); + last_command_exit_value = last_exit_value; + } + else + { + t = dequote_string (result); + free (result); + result = t; + } + + dstack = save_dstack; + + return (result); +} + +/************************************************ + * * + * ERROR HANDLING * + * * + ************************************************/ + +/* Report a syntax error, and restart the parser. Call here for fatal + errors. */ +int +yyerror (msg) + const char *msg; +{ + report_syntax_error ((char *)NULL); + reset_parser (); + return (0); +} + +static char * +error_token_from_token (token) + int token; +{ + char *t; + + if (t = find_token_in_alist (token, word_token_alist, 0)) + return t; + + if (t = find_token_in_alist (token, other_token_alist, 0)) + return t; + + t = (char *)NULL; + /* This stuff is dicy and needs closer inspection */ + switch (current_token) + { + case WORD: + case ASSIGNMENT_WORD: + if (yylval.word) + t = savestring (yylval.word->word); + break; + case NUMBER: + t = itos (yylval.number); + break; + case ARITH_CMD: + if (yylval.word_list) + t = string_list (yylval.word_list); + break; + case ARITH_FOR_EXPRS: + if (yylval.word_list) + t = string_list_internal (yylval.word_list, " ; "); + break; + case COND_CMD: + t = (char *)NULL; /* punt */ + break; + } + + return t; +} + +static char * +error_token_from_text () +{ + char *msg, *t; + int token_end, i; + + t = shell_input_line; + i = shell_input_line_index; + token_end = 0; + msg = (char *)NULL; + + if (i && t[i] == '\0') + i--; + + while (i && (whitespace (t[i]) || t[i] == '\n')) + i--; + + if (i) + token_end = i + 1; + + while (i && (member (t[i], " \n\t;|&") == 0)) + i--; + + while (i != token_end && (whitespace (t[i]) || t[i] == '\n')) + i++; + + /* Return our idea of the offending token. */ + if (token_end || (i == 0 && token_end == 0)) + { + if (token_end) + msg = substring (t, i, token_end); + else /* one-character token */ + { + msg = (char *)xmalloc (2); + msg[0] = t[i]; + msg[1] = '\0'; + } + } + + return (msg); +} + +static void +print_offending_line () +{ + char *msg; + int token_end; + + msg = savestring (shell_input_line); + token_end = strlen (msg); + while (token_end && msg[token_end - 1] == '\n') + msg[--token_end] = '\0'; + + parser_error (line_number, "`%s'", msg); + free (msg); +} + +/* Report a syntax error with line numbers, etc. + Call here for recoverable errors. If you have a message to print, + then place it in MESSAGE, otherwise pass NULL and this will figure + out an appropriate message for you. */ +static void +report_syntax_error (message) + char *message; +{ + char *msg; + + if (message) + { + parser_error (line_number, "%s", message); + if (interactive && EOF_Reached) + EOF_Reached = 0; + last_command_exit_value = EX_USAGE; + return; + } + + /* If the line of input we're reading is not null, try to find the + objectionable token. First, try to figure out what token the + parser's complaining about by looking at current_token. */ + if (current_token != 0 && EOF_Reached == 0 && (msg = error_token_from_token (current_token))) + { + parser_error (line_number, _("syntax error near unexpected token `%s'"), msg); + free (msg); + + if (interactive == 0) + print_offending_line (); + + last_command_exit_value = EX_USAGE; + return; + } + + /* If looking at the current token doesn't prove fruitful, try to find the + offending token by analyzing the text of the input line near the current + input line index and report what we find. */ + if (shell_input_line && *shell_input_line) + { + msg = error_token_from_text (); + if (msg) + { + parser_error (line_number, _("syntax error near `%s'"), msg); + free (msg); + } + + /* If not interactive, print the line containing the error. */ + if (interactive == 0) + print_offending_line (); + } + else + { + msg = EOF_Reached ? _("syntax error: unexpected end of file") : _("syntax error"); + parser_error (line_number, "%s", msg); + /* When the shell is interactive, this file uses EOF_Reached + only for error reporting. Other mechanisms are used to + decide whether or not to exit. */ + if (interactive && EOF_Reached) + EOF_Reached = 0; + } + + last_command_exit_value = EX_USAGE; +} + +/* ??? Needed function. ??? We have to be able to discard the constructs + created during parsing. In the case of error, we want to return + allocated objects to the memory pool. In the case of no error, we want + to throw away the information about where the allocated objects live. + (dispose_command () will actually free the command.) */ +static void +discard_parser_constructs (error_p) + int error_p; +{ +} + +/************************************************ + * * + * EOF HANDLING * + * * + ************************************************/ + +/* Do that silly `type "bye" to exit' stuff. You know, "ignoreeof". */ + +/* A flag denoting whether or not ignoreeof is set. */ +int ignoreeof = 0; + +/* The number of times that we have encountered an EOF character without + another character intervening. When this gets above the limit, the + shell terminates. */ +int eof_encountered = 0; + +/* The limit for eof_encountered. */ +int eof_encountered_limit = 10; + +/* If we have EOF as the only input unit, this user wants to leave + the shell. If the shell is not interactive, then just leave. + Otherwise, if ignoreeof is set, and we haven't done this the + required number of times in a row, print a message. */ +static void +handle_eof_input_unit () +{ + if (interactive) + { + /* shell.c may use this to decide whether or not to write out the + history, among other things. We use it only for error reporting + in this file. */ + if (EOF_Reached) + EOF_Reached = 0; + + /* If the user wants to "ignore" eof, then let her do so, kind of. */ + if (ignoreeof) + { + if (eof_encountered < eof_encountered_limit) + { + fprintf (stderr, _("Use \"%s\" to leave the shell.\n"), + login_shell ? "logout" : "exit"); + eof_encountered++; + /* Reset the parsing state. */ + last_read_token = current_token = '\n'; + /* Reset the prompt string to be $PS1. */ + prompt_string_pointer = (char **)NULL; + prompt_again (); + return; + } + } + + /* In this case EOF should exit the shell. Do it now. */ + reset_parser (); + exit_builtin ((WORD_LIST *)NULL); + } + else + { + /* We don't write history files, etc., for non-interactive shells. */ + EOF_Reached = 1; + } +} + +/************************************************ + * * + * STRING PARSING FUNCTIONS * + * * + ************************************************/ + +/* It's very important that these two functions treat the characters + between ( and ) identically. */ + +static WORD_LIST parse_string_error; + +/* Take a string and run it through the shell parser, returning the + resultant word list. Used by compound array assignment. */ +WORD_LIST * +parse_string_to_word_list (s, flags, whom) + char *s; + int flags; + const char *whom; +{ + WORD_LIST *wl; + int tok, orig_current_token, orig_line_number, orig_input_terminator; + int orig_line_count; + int old_echo_input, old_expand_aliases; +#if defined (HISTORY) + int old_remember_on_history, old_history_expansion_inhibited; +#endif + +#if defined (HISTORY) + old_remember_on_history = remember_on_history; +# if defined (BANG_HISTORY) + old_history_expansion_inhibited = history_expansion_inhibited; +# endif + bash_history_disable (); +#endif + + orig_line_number = line_number; + orig_line_count = current_command_line_count; + orig_input_terminator = shell_input_line_terminator; + old_echo_input = echo_input_at_read; + old_expand_aliases = expand_aliases; + + push_stream (1); + last_read_token = WORD; /* WORD to allow reserved words here */ + current_command_line_count = 0; + echo_input_at_read = expand_aliases = 0; + + with_input_from_string (s, whom); + wl = (WORD_LIST *)NULL; + + if (flags & 1) + parser_state |= PST_COMPASSIGN; + + while ((tok = read_token (READ)) != yacc_EOF) + { + if (tok == '\n' && *bash_input.location.string == '\0') + break; + if (tok == '\n') /* Allow newlines in compound assignments */ + continue; + if (tok != WORD && tok != ASSIGNMENT_WORD) + { + line_number = orig_line_number + line_number - 1; + orig_current_token = current_token; + current_token = tok; + yyerror (NULL); /* does the right thing */ + current_token = orig_current_token; + if (wl) + dispose_words (wl); + wl = &parse_string_error; + break; + } + wl = make_word_list (yylval.word, wl); + } + + last_read_token = '\n'; + pop_stream (); + +#if defined (HISTORY) + remember_on_history = old_remember_on_history; +# if defined (BANG_HISTORY) + history_expansion_inhibited = old_history_expansion_inhibited; +# endif /* BANG_HISTORY */ +#endif /* HISTORY */ + + echo_input_at_read = old_echo_input; + expand_aliases = old_expand_aliases; + + current_command_line_count = orig_line_count; + shell_input_line_terminator = orig_input_terminator; + + if (flags & 1) + parser_state &= ~PST_COMPASSIGN; + + if (wl == &parse_string_error) + { + last_command_exit_value = EXECUTION_FAILURE; + if (interactive_shell == 0 && posixly_correct) + jump_to_top_level (FORCE_EOF); + else + jump_to_top_level (DISCARD); + } + + return (REVERSE_LIST (wl, WORD_LIST *)); +} + +static char * +parse_compound_assignment (retlenp) + int *retlenp; +{ + WORD_LIST *wl, *rl; + int tok, orig_line_number, orig_token_size; + char *saved_token, *ret; + + saved_token = token; + orig_token_size = token_buffer_size; + orig_line_number = line_number; + + last_read_token = WORD; /* WORD to allow reserved words here */ + + token = (char *)NULL; + token_buffer_size = 0; + + wl = (WORD_LIST *)NULL; /* ( */ + parser_state |= PST_COMPASSIGN; + + while ((tok = read_token (READ)) != ')') + { + if (tok == '\n') /* Allow newlines in compound assignments */ + { + if (SHOULD_PROMPT ()) + prompt_again (); + continue; + } + if (tok != WORD && tok != ASSIGNMENT_WORD) + { + current_token = tok; /* for error reporting */ + if (tok == yacc_EOF) /* ( */ + parser_error (orig_line_number, _("unexpected EOF while looking for matching `)'")); + else + yyerror(NULL); /* does the right thing */ + if (wl) + dispose_words (wl); + wl = &parse_string_error; + break; + } + wl = make_word_list (yylval.word, wl); + } + + FREE (token); + token = saved_token; + token_buffer_size = orig_token_size; + + parser_state &= ~PST_COMPASSIGN; + + if (wl == &parse_string_error) + { + last_command_exit_value = EXECUTION_FAILURE; + last_read_token = '\n'; /* XXX */ + if (interactive_shell == 0 && posixly_correct) + jump_to_top_level (FORCE_EOF); + else + jump_to_top_level (DISCARD); + } + + last_read_token = WORD; + if (wl) + { + rl = REVERSE_LIST (wl, WORD_LIST *); + ret = string_list (rl); + dispose_words (rl); + } + else + ret = (char *)NULL; + + if (retlenp) + *retlenp = (ret && *ret) ? strlen (ret) : 0; + return ret; +} + +/************************************************ + * * + * SAVING AND RESTORING PARTIAL PARSE STATE * + * * + ************************************************/ + +sh_parser_state_t * +save_parser_state (ps) + sh_parser_state_t *ps; +{ +#if defined (ARRAY_VARS) + SHELL_VAR *v; +#endif + + if (ps == 0) + ps = (sh_parser_state_t *)xmalloc (sizeof (sh_parser_state_t)); + if (ps == 0) + return ((sh_parser_state_t *)NULL); + + ps->parser_state = parser_state; + ps->token_state = save_token_state (); + + ps->input_line_terminator = shell_input_line_terminator; + ps->eof_encountered = eof_encountered; + + ps->current_command_line_count = current_command_line_count; + +#if defined (HISTORY) + ps->remember_on_history = remember_on_history; +# if defined (BANG_HISTORY) + ps->history_expansion_inhibited = history_expansion_inhibited; +# endif +#endif + + ps->last_command_exit_value = last_command_exit_value; +#if defined (ARRAY_VARS) + v = find_variable ("PIPESTATUS"); + if (v && array_p (v) && array_cell (v)) + ps->pipestatus = array_copy (array_cell (v)); + else + ps->pipestatus = (ARRAY *)NULL; +#endif + + ps->last_shell_builtin = last_shell_builtin; + ps->this_shell_builtin = this_shell_builtin; + + ps->expand_aliases = expand_aliases; + ps->echo_input_at_read = echo_input_at_read; + + return (ps); +} + +void +restore_parser_state (ps) + sh_parser_state_t *ps; +{ +#if defined (ARRAY_VARS) + SHELL_VAR *v; +#endif + + if (ps == 0) + return; + + parser_state = ps->parser_state; + if (ps->token_state) + { + restore_token_state (ps->token_state); + free (ps->token_state); + } + + shell_input_line_terminator = ps->input_line_terminator; + eof_encountered = ps->eof_encountered; + + current_command_line_count = ps->current_command_line_count; + +#if defined (HISTORY) + remember_on_history = ps->remember_on_history; +# if defined (BANG_HISTORY) + history_expansion_inhibited = ps->history_expansion_inhibited; +# endif +#endif + + last_command_exit_value = ps->last_command_exit_value; +#if defined (ARRAY_VARS) + v = find_variable ("PIPESTATUS"); + if (v && array_p (v) && array_cell (v)) + { + array_dispose (array_cell (v)); + var_setarray (v, ps->pipestatus); + } +#endif + + last_shell_builtin = ps->last_shell_builtin; + this_shell_builtin = ps->this_shell_builtin; + + expand_aliases = ps->expand_aliases; + echo_input_at_read = ps->echo_input_at_read; +} + +/************************************************ + * * + * MULTIBYTE CHARACTER HANDLING * + * * + ************************************************/ + +#if defined (HANDLE_MULTIBYTE) +static void +set_line_mbstate () +{ + int i, previ, len, c; + mbstate_t mbs, prevs; + size_t mbclen; + + if (shell_input_line == NULL) + return; + len = strlen (shell_input_line); /* XXX - shell_input_line_len ? */ + FREE (shell_input_line_property); + shell_input_line_property = (char *)xmalloc (len + 1); + + memset (&prevs, '\0', sizeof (mbstate_t)); + for (i = previ = 0; i < len; i++) + { + mbs = prevs; + + c = shell_input_line[i]; + if (c == EOF) + { + int j; + for (j = i; j < len; j++) + shell_input_line_property[j] = 1; + break; + } + + mbclen = mbrlen (shell_input_line + previ, i - previ + 1, &mbs); + if (mbclen == 1 || mbclen == (size_t)-1) + { + mbclen = 1; + previ = i + 1; + } + else if (mbclen == (size_t)-2) + mbclen = 0; + else if (mbclen > 1) + { + mbclen = 0; + previ = i + 1; + prevs = mbs; + } + else + { + /* XXX - what to do if mbrlen returns 0? (null wide character) */ + int j; + for (j = i; j < len; j++) + shell_input_line_property[j] = 1; + break; + } + + shell_input_line_property[i] = mbclen; + } +} +#endif /* HANDLE_MULTIBYTE */ @@ -2703,9 +2703,8 @@ read_token (command) /* * Match a $(...) or other grouping construct. This has to handle embedded * quoted strings ('', ``, "") and nested constructs. It also must handle - * reprompting the user, if necessary, after reading a newline (unless the - * P_NONL flag is passed), and returning correct error values if it reads - * EOF. + * reprompting the user, if necessary, after reading a newline, and returning + * correct error values if it reads EOF. */ #define P_FIRSTCLOSE 0x01 #define P_ALLOWESC 0x02 @@ -2852,6 +2851,7 @@ parse_matched_pair (qc, open, close, lenp, flags) else if MBTEST(open == '"' && ch == '`') { nestret = parse_matched_pair (0, '`', '`', &nestlen, rflags); +add_nestret: if (nestret == &matched_pair_error) { free (ret); @@ -2865,6 +2865,11 @@ parse_matched_pair (qc, open, close, lenp, flags) } FREE (nestret); } + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'')) + { + nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); + goto add_nestret; + } else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ /* check for $(), $[], or ${} inside quoted string. */ { @@ -1,6 +1,6 @@ /* shell.c -- GNU's idea of the POSIX shell specification. */ -/* Copyright (C) 1987-2004 Free Software Foundation, Inc. +/* Copyright (C) 1987-2005 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. @@ -362,7 +362,7 @@ main (argc, argv, env) #endif /* __CYGWIN__ */ /* Wait forever if we are debugging a login shell. */ - while (debugging_login_shell); + while (debugging_login_shell) sleep (3); set_default_locale (); @@ -387,6 +387,8 @@ main (argc, argv, env) /* Initialize `local' variables for all `invocations' of main (). */ arg_index = 1; + if (arg_index > argc) + arg_index = argc; command_execution_string = (char *)NULL; want_pending_command = locally_skip_execution = read_from_stdin = 0; default_input = stdin; @@ -1272,7 +1274,7 @@ bind_args (argv, arg_start, arg_end, start_index) register int i; WORD_LIST *args; - for (i = arg_start, args = (WORD_LIST *)NULL; i != arg_end; i++) + for (i = arg_start, args = (WORD_LIST *)NULL; i < arg_end; i++) args = make_word_list (make_word (argv[i]), args); if (args) { @@ -1523,7 +1525,7 @@ set_shell_name (argv0) { /* Here's a hack. If the name of this shell is "sh", then don't do any startup files; just try to be more like /bin/sh. */ - shell_name = base_pathname (argv0); + shell_name = argv0 ? base_pathname (argv0) : PROGRAM; if (*shell_name == '-') { @@ -1536,7 +1538,7 @@ set_shell_name (argv0) if (shell_name[0] == 's' && shell_name[1] == 'u' && shell_name[2] == '\0') su_shell++; - shell_name = argv0; + shell_name = argv0 ? argv0 : PROGRAM; FREE (dollar_vars[0]); dollar_vars[0] = savestring (shell_name); diff --git a/variables.c b/variables.c index 2a58a14f..96683de0 100644 --- a/variables.c +++ b/variables.c @@ -25,8 +25,12 @@ #include "posixtime.h" #if defined (qnx) -# include <sys/vc.h> -#endif +# if defined (qnx6) +# include <sy/netmgr.h> +# else +# include <sys/vc.h> +# endif /* !qnx6 */ +#endif /* qnx */ #if defined (HAVE_UNISTD_H) # include <unistd.h> @@ -377,7 +381,11 @@ initialize_shell_variables (env, privmode) /* set node id -- don't import it from the environment */ { char node_name[22]; +# if defined (qnx6) + netmgr_ndtostr(ND2S_LOCAL_STR, ND_LOCAL_NODE, node_name, sizeof(node_name)); +# else qnx_nidtostr (getnid (), node_name, sizeof (node_name)); +# endif temp_var = bind_variable ("NODE", node_name, 0); set_auto_export (temp_var); } |