From 1e9dc3ce45ac44ea51292ca964b52ce47fee3ad3 Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Tue, 12 Jul 2005 04:35:13 +0000 Subject: [PATCH] Various minor updates and code cleanups. --- ChangeLog | 25 ++ config.h-vms.template | 12 +- config.h.W32.template | 716 ++++++++++++++++++--------------- configure.in | 5 +- expand.c | 2 +- main.c | 2 +- maintMakefile | 13 +- signame.c | 5 + tests/ChangeLog | 13 + tests/scripts/features/export | 8 +- tests/scripts/functions/eval | 4 +- tests/scripts/functions/origin | 2 +- tests/scripts/options/dash-e | 2 +- tests/scripts/variables/SHELL | 13 +- tests/test_driver.pl | 51 ++- 15 files changed, 502 insertions(+), 371 deletions(-) diff --git a/ChangeLog b/ChangeLog index b3e0a07e..2a22cbb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2005-07-08 Paul D. Smith + + * config.h.W32.template: Reorder to match the standard config.h, + for easier comparisons. + From J. Grant + + * maintMakefile: Remove .dep_segment before overwriting it, in + case it's not writable or noclobber is set. + * expand.c (variable_expand_string): Cast result of pointer + arithmetic to avoid a warning. + * main.c (switches): Add full-fledged final initializer. + +2005-07-06 Paul D. Smith + + * configure.in: IRIX has _sys_siglist. Tru64 UNIX has __sys_siglist. + * signame.c (strsignal): If we found _sys_siglist[] or + __sys_siglist[] use those instead of sys_siglist[]. + From Albert Chin + +2005-07-04 Paul D. Smith + + * config.h-vms.template [VMS]: Latest VMS has its own glob() and + globfree(); set up to use the GNU versions. + From Martin Zinser + 2005-07-03 Paul D. Smith From J. Grant : diff --git a/config.h-vms.template b/config.h-vms.template index 118627d1..c252b9c1 100644 --- a/config.h-vms.template +++ b/config.h-vms.template @@ -383,11 +383,13 @@ #ifdef __DECC #include #include -#define getopt gnu_getopt -#define optarg gnu_optarg -#define optopt gnu_optopt -#define optind gnu_optind -#define opterr gnu_opterr +#define getopt gnu_getopt +#define optarg gnu_optarg +#define optopt gnu_optopt +#define optind gnu_optind +#define opterr gnu_opterr +#define globfree gnu_globfree +#define glob gnu_glob #endif #if defined (__cplusplus) || (defined (__STDC__) && __STDC__) diff --git a/config.h.W32.template b/config.h.W32.template index edb2f290..956fc172 100644 --- a/config.h.W32.template +++ b/config.h.W32.template @@ -1,82 +1,406 @@ -/* config.h.in. Generated automatically from configure.in by autoheader. */ +/* config.h.W32 -*-C-*- */ -/* Define if on AIX 3. +/* Define to 1 if the `closedir' function returns void instead of `int'. */ +/* #undef CLOSEDIR_VOID */ + +/* 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 */ + +/* Define to 1 if using `alloca.c'. */ +/* #undef C_ALLOCA */ + +/* Define to 1 if using `getloadavg.c'. */ +/*#define C_GETLOADAVG 1*/ + +/* Define to 1 for DGUX with . */ +/* #undef DGUX */ + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +/* #undef ENABLE_NLS */ + +/* Use high resolution file timestamps if nonzero. */ +#define FILE_TIMESTAMP_HI_RES 0 + +/* Define to 1 if the `getloadavg' function needs to be run setuid or setgid. + */ +/* #undef GETLOADAVG_PRIVILEGED */ + +/* Define to 1 if you have `alloca', as a function or macro. */ +#define HAVE_ALLOCA 1 + +/* Define to 1 if you have and it should be used (not on Ultrix). + */ +/* #undef HAVE_ALLOCA_H */ + +/* Define if your compiler conforms to the ANSI C standard. */ +#define HAVE_ANSI_COMPILER 1 + +/* Define to 1 if you have the `bsd_signal' function. */ +/* #undef HAVE_BSD_SIGNAL */ + +/* Use case insensitive file names */ +/* #undef HAVE_CASE_INSENSITIVE_FS */ + +/* Define if you have the clock_gettime function. */ +/* #undef HAVE_CLOCK_GETTIME */ + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +/* #undef HAVE_DCGETTEXT */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +#define HAVE_DIRENT_H 1 + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +/* #undef HAVE_DOPRNT */ + +/* Use platform specific coding */ +#define HAVE_DOS_PATHS 1 + +/* Define to 1 if you have the `dup2' function. */ +#define HAVE_DUP2 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `fdopen' function. */ +/*#define HAVE_FDOPEN 1*/ + +/* Define to 1 if you have the `fork' function. */ +/* #undef HAVE_FORK */ + +/* Define to 1 if you have the `getcwd' function. */ +#define HAVE_GETCWD 1 + +/* Define to 1 if you have the `getgroups' function. */ +/* #undef HAVE_GETGROUPS */ + +/* Define to 1 if you have the `gethostbyname' function. */ +/* #undef HAVE_GETHOSTBYNAME */ + +/* Define to 1 if you have the `gethostname' function. */ +/* #undef HAVE_GETHOSTNAME */ + +/* Define to 1 if you have the `getloadavg' function. */ +/* #undef HAVE_GETLOADAVG */ + +/* Define to 1 if you have the `getrlimit' function. */ +/* #undef HAVE_GETRLIMIT */ + +/* Define if the GNU gettext() function is already present or preinstalled. */ +/* #undef HAVE_GETTEXT */ + +/* Define if you have a standard gettimeofday function */ +/* #undef HAVE_GETTIMEOFDAY */ + +/* Define if you have the iconv() function. */ +/* #undef HAVE_ICONV */ + +/* Define to 1 if you have the header file. */ +/*#define HAVE_INTTYPES_H 1*/ + +/* Define to 1 if you have the `dgc' library (-ldgc). */ +/* #undef HAVE_LIBDGC */ + +/* Define to 1 if you have the `kstat' library (-lkstat). */ +/* #undef HAVE_LIBKSTAT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +/*#define HAVE_LOCALE_H 1*/ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_MACH_MACH_H */ + +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mkstemp' function. */ +/* #undef HAVE_MKSTEMP */ + +/* Define to 1 if you have the `mktemp' function. */ +#define HAVE_MKTEMP 1 + +/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* #undef HAVE_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NLIST_H */ + +/* Define to 1 if you have the `pipe' function. */ +/* #undef HAVE_PIPE */ + +/* Define to 1 if you have the `pstat_getdynamic' function. */ +/* #undef HAVE_PSTAT_GETDYNAMIC */ + +/* Define to 1 if you have the `realpath' function. */ +/* #undef HAVE_REALPATH */ + +/* Define if defines the SA_RESTART constant. */ +/* #undef HAVE_SA_RESTART */ + +/* Define to 1 if you have the `setegid' function. */ +/* #undef HAVE_SETEGID */ + +/* Define to 1 if you have the `seteuid' function. */ +/* #undef HAVE_SETEUID */ + +/* Define to 1 if you have the `setlinebuf' function. */ +/* #undef HAVE_SETLINEBUF */ + +/* Define to 1 if you have the `setlocale' function. */ +/*#define HAVE_SETLOCALE 1*/ + +/* Define to 1 if you have the `setregid' function. */ +/* #undef HAVE_SETREGID */ + +/* Define to 1 if you have the `setreuid' function. */ +/* #undef HAVE_SETREUID */ + +/* Define to 1 if you have the `setrlimit' function. */ +/* #undef HAVE_SETRLIMIT */ + +/* Define to 1 if you have the `setvbuf' function. */ +/*#define HAVE_SETVBUF 1 */ + +/* Define to 1 if you have the `sigaction' function. */ +/* #undef HAVE_SIGACTION */ + +/* Define to 1 if you have the `sigsetmask' function. */ +/* #undef HAVE_SIGSETMASK */ + +/* Define to 1 if you have the `socket' function. */ +/* #undef HAVE_SOCKET */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDARG_H 1 + +/* Define to 1 if you have the header file. */ +/*#define HAVE_STDINT_H 1*/ + +/* Define to 1 if you have the header file. */ +/* #define HAVE_STDLIB_H 1*/ + +/* Define to 1 if you have the `strcasecmp' function. */ +/* #undef HAVE_STRCASECMP */ + +/* Define to 1 if you have the `strchr' function. */ +/* #define HAVE_STRCHR 1 */ + +/* Define to 1 if you have the `strcoll' function and it is properly defined. + */ +#define HAVE_STRCOLL 1 + +/* Define to 1 if you have the `strdup' function. */ +/* #define HAVE_STRDUP 1*/ + +/* Define to 1 if you have the `strerror' function. */ +#define HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +/* #define HAVE_STRINGS_H 1 */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the `strsignal' function. */ +/* #undef HAVE_STRSIGNAL */ + +/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */ +/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_DIR_H */ + +/* Define to 1 if you have the header file, and it defines `DIR'. + */ +/* #undef HAVE_SYS_NDIR_H */ + +/* Define to 1 if you have the header file. */ +/* #define HAVE_SYS_PARAM_H 1 */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_RESOURCE_H */ + +/* Define to 1 if you have the header file. */ +/* #define HAVE_SYS_STAT_H 1 */ + +/* Define to 1 if you have the header file. */ +/*#define HAVE_SYS_TIMEB_H 1*/ + +/* Define to 1 if you have the header file. */ +/*#define HAVE_SYS_TIME_H 1*/ + +/* Define to 1 if you have the header file. */ +/*#define HAVE_SYS_TYPES_H 1*/ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_WAIT_H */ + +/* Define this if you have the \`union wait' type in . */ +/* #undef HAVE_UNION_WAIT */ + +/* Define to 1 if you have the header file. */ +/* #define HAVE_UNISTD_H 1*/ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VARARGS_H */ + +/* Define to 1 if you have the `vfork' function. */ +/* #undef HAVE_VFORK */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_VFORK_H */ + +/* Define to 1 if you have the `vprintf' function. */ +#define HAVE_VPRINTF 1 + + +/* Define to 1 if you have the `wait3' function. */ +/* #undef HAVE_WAIT3 */ + +/* Define to 1 if you have the `waitpid' function. */ +/* #undef HAVE_WAITPID */ + +/* Define to 1 if `fork' works. */ +/* #undef HAVE_WORKING_FORK */ + +/* Define to 1 if `vfork' works. */ +/* #undef HAVE_WORKING_VFORK */ + +/* Build host information. */ +#define MAKE_HOST "Windows32" + +/* Define this to enable job server support in GNU make. */ +/* #undef MAKE_JOBSERVER */ + +/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend + on `HAVE_STRUCT_NLIST_N_UN_N_NAME */ +/* #undef NLIST_NAME_UNION */ + +/* Define if struct nlist.n_name is a pointer rather than an array. */ +/* #undef NLIST_STRUCT */ + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +/* #undef NO_MINUS_C_MINUS_O */ + +/* Name of this package (needed by automake) */ +#define PACKAGE "%PACKAGE%" + +/* Define to 1 if the C compiler supports function prototypes. */ +/*#define PROTOTYPES 1*/ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE void + +/* Define to the name of the SCCS 'get' command. */ +#define SCCS_GET "echo no sccs get" + +/* Define this if the SCCS 'get' command understands the '-G' option. */ +/* #undef SCCS_GET_MINUS_G */ + +/* 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 */ + +/* 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 */ + +/* Define to 1 if the `S_IS*' macros in do not work properly. */ +/* #undef STAT_MACROS_BROKEN */ + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if struct stat contains a nanoseconds field */ +/* #undef ST_MTIM_NSEC */ + +/* Define to 1 on System V Release 4. */ +/* #undef SVR4 */ + +/* Define to 1 if you can safely include both and . */ +/* #define TIME_WITH_SYS_TIME 1 */ + +/* Define to 1 for Encore UMAX. */ +/* #undef UMAX */ + +/* Define to 1 for Encore UMAX 4.3 that has instead of + . */ +/* #undef UMAX4_3 */ + +/* Version number of package */ +#define VERSION "%VERSION%" + +/* Define if using the dmalloc debugging malloc package */ +/* #undef WITH_DMALLOC */ + +/* Define to 1 if on AIX 3. System headers sometimes define this. We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE -/* #undef _ALL_SOURCE */ +/* # undef _ALL_SOURCE */ #endif -/* Define if using alloca.c. */ -/* #undef C_ALLOCA */ +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ -/* Define if the closedir function returns void instead of int. */ -/* #undef CLOSEDIR_VOID */ +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ -/* Define to empty if the keyword does not work. */ +/* Define to 1 if on MINIX. */ +/* #undef _MINIX */ + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +/* #undef _POSIX_1_SOURCE */ + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#define _POSIX_SOURCE 1 + +/* Define like PROTOTYPES; this can be used by system headers. */ +/*#define __PROTOTYPES 1*/ + +/* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ -/* 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 */ +/* Define to `int' if doesn't define. */ +#define gid_t int -/* Define for DGUX with . */ -/* #undef DGUX */ +/* Define to `int' if does not define. */ +#define pid_t int -/* Define if the `getloadavg' function needs to be run setuid or setgid. */ -/* #undef GETLOADAVG_PRIVILEGED */ +/* Define to `int' if doesn't define. */ +#define uid_t int + +/* Define uintmax_t if not defined in or . */ +#define uintmax_t unsigned long + +/* Define as `fork' if `vfork' does not work. */ +/*#define vfork fork*/ /* Define to `unsigned long' or `unsigned long long' if doesn't define. */ #define uintmax_t unsigned long -/* Define to `int' if doesn't define. */ -#undef gid_t -#define gid_t int - -/* Define if you have alloca, as a function or macro. */ -#undef HAVE_ALLOCA -#define HAVE_ALLOCA 1 - -/* Define if you have and it should be used (not on Ultrix). */ -/* #undef HAVE_ALLOCA_H */ - -/* Define if you don't have vprintf but do have _doprnt. */ -/* #undef HAVE_DOPRNT */ - -/* Define if your system has a working fnmatch function. */ -/* #undef HAVE_FNMATCH */ - -/* Define if your system has its own `getloadavg' function. */ -/* #undef HAVE_GETLOADAVG */ - -/* Define if you have the getmntent function. */ -/* #undef HAVE_GETMNTENT */ - -/* Define if the `long double' type works. */ -/* #undef HAVE_LONG_DOUBLE */ - /* Define if you support file names longer than 14 characters. */ -#undef HAVE_LONG_FILE_NAMES #define HAVE_LONG_FILE_NAMES 1 -/* Define if you have a working `mmap' system call. */ -/* #undef HAVE_MMAP */ - -/* Define if system calls automatically restart after interruption - by a signal. */ -/* #undef HAVE_RESTARTABLE_SYSCALLS */ - -/* Define if your struct stat has st_blksize. */ -/* #undef HAVE_ST_BLKSIZE */ - -/* Define if your struct stat has st_blocks. */ -/* #undef HAVE_ST_BLOCKS */ - -/* Define if you have the strcoll function and it is properly defined. */ -#undef HAVE_STRCOLL -#define HAVE_STRCOLL 1 - /* Define if your struct stat has st_rdev. */ #undef HAVE_ST_RDEV #define HAVE_ST_RDEV 1 @@ -96,299 +420,36 @@ #undef HAVE_TZNAME #define HAVE_TZNAME 1 -/* Define if you have . */ -/* #undef HAVE_UNISTD_H */ - /* Define if utime(file, NULL) sets file's timestamp to the present. */ #undef HAVE_UTIME_NULL #define HAVE_UTIME_NULL 1 -/* Define if you have . */ -/* #undef HAVE_VFORK_H */ - -/* Define if you have the vprintf function. */ -#undef HAVE_VPRINTF -#define HAVE_VPRINTF 1 - -/* Define if you have the wait3 system call. */ -/* #undef HAVE_WAIT3 */ - -/* Define if on MINIX. */ -/* #undef _MINIX */ - -/* Define if your struct nlist has an n_un member. */ -/* #undef NLIST_NAME_UNION */ - -/* Define if you have . */ -/* #undef NLIST_STRUCT */ - -/* Define if your C compiler doesn't accept -c and -o together. */ -/* #undef NO_MINUS_C_MINUS_O */ - -/* Define to `int' if doesn't define. */ -#undef pid_t -#define pid_t int - -/* Define if the system does not provide POSIX.1 features except - with this defined. */ -/* #undef _POSIX_1_SOURCE */ - -/* Define if you need to in order for stat and other things to work. */ -#undef _POSIX_SOURCE -#define _POSIX_SOURCE 1 - -/* Define as the return type of signal handlers (int or void). */ -#undef RETSIGTYPE -#define RETSIGTYPE void - -/* Define 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 */ - -/* 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 */ - -/* Define if the `S_IS*' macros in do not work properly. */ -/* #undef STAT_MACROS_BROKEN */ - -/* Define if your compiler conforms to the ANSI C standard. */ -#define HAVE_ANSI_COMPILER 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDARG_H 1 - -/* Define if you have the ANSI C header files. */ -#undef STDC_HEADERS -#define STDC_HEADERS 1 - -/* Define on System V Release 4. */ -/* #undef SVR4 */ - -/* Define if `sys_siglist' is declared by . */ -/* #undef SYS_SIGLIST_DECLARED */ - -/* Define to `int' if doesn't define. */ -#undef uid_t -#define uid_t int - -/* Define for Encore UMAX. */ -/* #undef UMAX */ - -/* Define for Encore UMAX 4.3 that has - instead of . */ -/* #undef UMAX4_3 */ - -/* Define vfork as fork if vfork does not work. */ -/* #undef vfork */ - -/* Name of this package (needed by automake) */ -#define PACKAGE "%PACKAGE%" - -/* Version of this package (needed by automake) */ -#define VERSION "%VERSION%" - -/* Define to the name of the SCCS `get' command. */ -#undef SCCS_GET -#define SCCS_GET "echo no sccs get" - -/* Define to 1 if NLS is requested. */ -/* #undef ENABLE_NLS */ - -/* Define as 1 if you have dcgettext. */ -/* #undef HAVE_DCGETTEXT */ - -/* Define as 1 if you have gettext and don't want to use GNU gettext. */ -/* #undef HAVE_GETTEXT */ - -/* Define if your locale.h file contains LC_MESSAGES. */ -/* #undef HAVE_LC_MESSAGES */ - /* Define to the installation directory for locales. */ #define LOCALEDIR "" -/* Define this if the SCCS `get' command understands the `-G' option. */ -/* #undef SCCS_GET_MINUS_G */ - -/* Define this to enable job server support in GNU make. */ -/* #undef MAKE_JOBSERVER */ - -/* Define to be the nanoseconds member of struct stat's st_mtim, - if it exists. */ -/* #undef ST_MTIM_NSEC */ - -/* Define this if the C library defines the variable `sys_siglist'. */ -/* #undef HAVE_SYS_SIGLIST */ - -/* Define this if the C library defines the variable `_sys_siglist'. */ -/* #undef HAVE__SYS_SIGLIST */ - -/* Define this if you have the `union wait' type in . */ -/* #undef HAVE_UNION_WAIT */ - -/* Define if you have the dup2 function. */ -#undef HAVE_DUP2 -#define HAVE_DUP2 1 - -/* Define if you have the getcwd function. */ -#undef HAVE_GETCWD -#define HAVE_GETCWD 1 - -/* Define if you have the getgroups function. */ -/* #undef HAVE_GETGROUPS */ - -/* Define if you have the gethostbyname function. */ -/* #undef HAVE_GETHOSTBYNAME */ - -/* Define if you have the gethostname function. */ -/* #undef HAVE_GETHOSTNAME */ - -/* Define if you have the getloadavg function. */ -/* #undef HAVE_GETLOADAVG */ - -/* Define if you have the memmove function. */ -#undef HAVE_MEMMOVE -#define HAVE_MEMMOVE 1 - -/* Define if you have the mktemp function. */ -#undef HAVE_MKTEMP -#define HAVE_MKTEMP 1 - -/* Define if you have the psignal function. */ -/* #undef HAVE_PSIGNAL */ - -/* Define if you have the pstat_getdynamic function. */ -/* #undef HAVE_PSTAT_GETDYNAMIC */ - -/* Define if you have the setegid function. */ -/* #undef HAVE_SETEGID */ - -/* Define if you have the seteuid function. */ -/* #undef HAVE_SETEUID */ - -/* Define if you have the setlinebuf function. */ -/* #undef HAVE_SETLINEBUF */ - -/* Define if you have the setregid function. */ -/* #undef HAVE_SETREGID */ - -/* Define if you have the setreuid function. */ -/* #undef HAVE_SETREUID */ - -/* Define if you have the sigsetmask function. */ -/* #undef HAVE_SIGSETMASK */ - -/* Define if you have the socket function. */ -/* #undef HAVE_SOCKET */ - -/* Define if you have the strcasecmp function. */ -/* #undef HAVE_STRCASECMP */ - -/* Define if you have the strerror function. */ -#undef HAVE_STRERROR -#define HAVE_STRERROR 1 - -/* Define if you have the strsignal function. */ -/* #undef HAVE_STRSIGNAL */ - -/* Define if you have the wait3 function. */ -/* #undef HAVE_WAIT3 */ - -/* Define if you have the waitpid function. */ -/* #undef HAVE_WAITPID */ - -/* Define if you have the header file. */ -#undef HAVE_DIRENT_H -#define HAVE_DIRENT_H 1 - -/* Define if you have the header file. */ -#undef HAVE_FCNTL_H -#define HAVE_FCNTL_H 1 - -/* Define if you have the header file. */ -#undef HAVE_LIMITS_H -#define HAVE_LIMITS_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_MACH_MACH_H */ - -/* Define if you have the header file. */ -#undef HAVE_MEMORY_H -#define HAVE_MEMORY_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_NDIR_H */ - -/* Define if you have the header file. */ -#undef HAVE_STRING_H -#define HAVE_STRING_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_DIR_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_NDIR_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_PARAM_H */ - -/* Define if you have the header file. */ -#undef HAVE_SYS_TIMEB_H -#define HAVE_SYS_TIMEB_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_SYS_WAIT_H */ - -/* Define if you have the header file. */ -/* #undef HAVE_UNISTD_H */ - -/* Define if you have the dgc library (-ldgc). */ -/* #undef HAVE_LIBDGC */ - -/* Define if you have the kstat library (-lkstat). */ -/* #undef HAVE_LIBKSTAT */ - -/* Define if you have the sun library (-lsun). */ -/* #undef HAVE_LIBSUN */ - -/* Use high resolution file timestamps if nonzero. */ -#define FILE_TIMESTAMP_HI_RES 0 - -/* Build host information. */ -#define MAKE_HOST "Windows32" - -/* Grok DOS paths (drive specs and backslash path element separators) */ -#define HAVE_DOS_PATHS - /* * Refer to README.W32 for info on the following settings */ + /* * If you have a shell that does not grok 'sh -c quoted-command-line' * correctly, you need this setting. Please see below for specific * shell support. */ -#undef BATCH_MODE_ONLY_SHELL -#define BATCH_MODE_ONLY_SHELL 1 +/*#define BATCH_MODE_ONLY_SHELL 1 */ /* * Define if you have the Cygnus "Cygwin" GNU Windows32 tool set. * Do NOT define BATCH_MODE_ONLY_SHELL if you define HAVE_CYGWIN_SHELL */ -#undef HAVE_CYGWIN_SHELL +/*#define HAVE_CYGWIN_SHELL*/ /* * Define if you have the MKS tool set or shell. Do NOT define * BATCH_MODE_ONLY_SHELL if you define HAVE_MKS_SHELL */ -#undef HAVE_MKS_SHELL +/*#define HAVE_MKS_SHELL */ /* * Enforce the mutual exclusivity restriction. @@ -400,6 +461,3 @@ #ifdef HAVE_CYGWIN_SHELL #undef BATCH_MODE_ONLY_SHELL #endif - -/* Define if you prefer Case Insensitive behavior */ -#undef HAVE_CASE_INSENSITIVE_FS diff --git a/configure.in b/configure.in index 2c981c96..2fd545f4 100644 --- a/configure.in +++ b/configure.in @@ -167,8 +167,9 @@ if test "$ac_cv_header_nlist_h" = yes; then fi fi -AC_CHECK_DECLS([sys_siglist],,, -[#include +AC_CHECK_DECLS([sys_siglist, _sys_siglist, __sys_siglist], , , + [AC_INCLUDES_DEFAULT +#include /* NetBSD declares sys_siglist in unistd.h. */ #if HAVE_UNISTD_H # include diff --git a/expand.c b/expand.c index 372a0f59..c91416b3 100644 --- a/expand.c +++ b/expand.c @@ -205,7 +205,7 @@ variable_expand_string (char *line, char *string, long length) p1 = strchr (p, '$'); - o = variable_buffer_output (o, p, p1 != 0 ? p1 - p : strlen (p) + 1); + o = variable_buffer_output (o, p, p1 != 0 ? (unsigned int)(p1 - p) : strlen (p) + 1); if (p1 == 0) break; diff --git a/main.c b/main.c index 776d0edf..71e34a17 100644 --- a/main.c +++ b/main.c @@ -417,7 +417,7 @@ static const struct command_switch switches[] = { 'W', string, (char *) &new_files, 0, 0, 0, 0, 0, "what-if" }, { CHAR_MAX+4, flag, (char *) &warn_undefined_variables_flag, 1, 1, 0, 0, 0, "warn-undefined-variables" }, - { 0 } + { 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; /* Secondary long names for options. */ diff --git a/maintMakefile b/maintMakefile index 73af0515..b679eb46 100644 --- a/maintMakefile +++ b/maintMakefile @@ -64,15 +64,16 @@ build.sh.in: build.template Makefile # DEP_FILES := $(wildcard $(DEPDIR)/*.Po) .dep_segment: Makefile.am maintMakefile $(DEP_FILES) + rm -f $@ (for f in $(DEPDIR)/*.Po; do \ echo ""; \ echo "# $$f"; \ - cat $$f \ - | sed -e '/^[^:]*\.[ch] *:/d' \ - -e 's, /usr/[^ ]*,,g' \ - -e 's, $(srcdir)/, ,g' \ - -e '/^ *\\$$/d' \ - -e '/^ *$$/d'; \ + sed -e '/^[^:]*\.[ch] *:/d' \ + -e 's, /usr/[^ ]*,,g' \ + -e 's, $(srcdir)/, ,g' \ + -e '/^ *\\$$/d' \ + -e '/^ *$$/d' \ + < $$f; \ done) > $@ # Get rid of everything "else". diff --git a/signame.c b/signame.c index ef00a6a3..c5583d28 100644 --- a/signame.c +++ b/signame.c @@ -235,6 +235,11 @@ strsignal (int signal) static char buf[] = "Signal 12345678901234567890"; #if ! HAVE_DECL_SYS_SIGLIST +# if HAVE_DECL__SYS_SIGLIST +# define sys_siglist _sys_siglist +# elif HAVE_DECL___SYS_SIGLIST +# define sys_siglist __sys_siglist +# endif static char sig_initted = 0; if (!sig_initted) diff --git a/tests/ChangeLog b/tests/ChangeLog index a7ceaaa5..ee3bab54 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,16 @@ +2005-07-08 Paul D. Smith + + * test_driver.pl: Reset the environment to a clean value every + time before we invoke make. I'm suspicious that the environment + isn't handled the same way in Windows as it is in UNIX, and some + variables are leaking out beyond the tests they are intended for. + Create an %extraENV hash tests can set to add more env. vars. + * tests/scripts/features/export: Change to use %extraENV. + * tests/scripts/functions/eval: Ditto. + * tests/scripts/functions/origin: Ditto. + * tests/scripts/options/dash-e: Ditto. + * tests/scripts/variables/SHELL: Ditto. + 2005-06-27 Paul D. Smith * scripts/options/dash-W: Use 'echo >>' instead of touch to update diff --git a/tests/scripts/features/export b/tests/scripts/features/export index 1690ee80..38efe11b 100644 --- a/tests/scripts/features/export +++ b/tests/scripts/features/export @@ -56,7 +56,7 @@ FOO= BAR= BAZ=baz BOZ=boz BITZ=bitz BOTZ=\n"; # TEST 1: make sure vars inherited from the parent are exported -$ENV{FOO} = 1; +$extraENV{FOO} = 1; &run_make_with_options($makefile,"",&get_logfile,0); @@ -65,8 +65,6 @@ FOO=foo BAR= BAZ=baz BOZ=boz BITZ=bitz BOTZ=\n"; &compare_output($answer,&get_logfile(1)); -delete $ENV{FOO}; - # TEST 2: global export. Explicit unexport takes precedence. &run_make_with_options($makefile,"EXPORT_ALL=1",&get_logfile,0); @@ -237,14 +235,12 @@ EOF close(MAKEFILE); -@ENV{qw(A B C D E F G H I J)} = qw(1 2 3 4 5 6 7 8 9 10); +@extraENV{qw(A B C D E F G H I J)} = qw(1 2 3 4 5 6 7 8 9 10); &run_make_with_options($makefile5,"",&get_logfile,0); $answer = "A= B= C= D= E= F= G= H= I= J=\n"; &compare_output($answer,&get_logfile(1)); -delete @ENV{qw(A B C D E F G H I J)}; - # This tells the test driver that the perl test script executed properly. 1; diff --git a/tests/scripts/functions/eval b/tests/scripts/functions/eval index bc430532..9595d4e3 100644 --- a/tests/scripts/functions/eval +++ b/tests/scripts/functions/eval @@ -127,13 +127,11 @@ EOF close(MAKEFILE); -$ENV{EVAR} = '1'; +$extraENV{EVAR} = '1'; &run_make_with_options($makefile4, "", &get_logfile); $answer = "OK\n"; &compare_output($answer,&get_logfile(1)); -delete $ENV{EVAR}; - # Clean out previous information to allow new run_make_test() interface. # If we ever convert all the above to run_make_test() we can remove this line. diff --git a/tests/scripts/functions/origin b/tests/scripts/functions/origin index d5116cd7..49e6f38e 100644 --- a/tests/scripts/functions/origin +++ b/tests/scripts/functions/origin @@ -16,7 +16,7 @@ defined per the following list: 'automatic' Automatic variable\n"; # Set an environment variable -$ENV{MAKETEST} = 1; +$extraENV{MAKETEST} = 1; open(MAKEFILE,"> $makefile"); diff --git a/tests/scripts/options/dash-e b/tests/scripts/options/dash-e index 472270de..17c3fc86 100644 --- a/tests/scripts/options/dash-e +++ b/tests/scripts/options/dash-e @@ -4,7 +4,7 @@ $description = "The following test creates a makefile to ..."; $details = ""; -$ENV{GOOGLE} = 'boggle'; +$extraENV{GOOGLE} = 'boggle'; open(MAKEFILE,"> $makefile"); diff --git a/tests/scripts/variables/SHELL b/tests/scripts/variables/SHELL index 93c18723..adfa5b10 100644 --- a/tests/scripts/variables/SHELL +++ b/tests/scripts/variables/SHELL @@ -4,15 +4,16 @@ $description = "Test proper handling of SHELL."; # Find the default value when SHELL is not set. On UNIX it will be /bin/sh, # but on other platforms who knows? -$oshell = $ENV{SHELL}; +resetENV(); delete $ENV{SHELL}; $mshell = `echo 'all:;\@echo \$(SHELL)' | $make_path -f-`; chop $mshell; # According to POSIX, the value of SHELL in the environment has no impact on # the value in the makefile. +# Note %extraENV takes precedence over the default value for the shell. -$ENV{SHELL} = '/dev/null'; +$extraENV{SHELL} = '/dev/null'; run_make_test('all:;@echo "$(SHELL)"', '', $mshell); # According to POSIX, any value of SHELL set in the makefile should _NOT_ be @@ -21,7 +22,7 @@ run_make_test('all:;@echo "$(SHELL)"', '', $mshell); # all when $(SHELL) is perl :-/. So, we just add an extra initial / and hope # for the best on non-UNIX platforms :-/. -$ENV{SHELL} = $mshell; +$extraENV{SHELL} = $mshell; run_make_test("SHELL := /$mshell\n".' all:;@echo "$(SHELL) $$SHELL" @@ -30,6 +31,8 @@ all:;@echo "$(SHELL) $$SHELL" # As a GNU make extension, if make's SHELL variable is explicitly exported, # then we really _DO_ export it. +$extraENV{SHELL} = $mshell; + run_make_test("export SHELL := /$mshell\n".' all:;@echo "$(SHELL) $$SHELL" ', '', "/$mshell /$mshell"); @@ -38,10 +41,14 @@ all:;@echo "$(SHELL) $$SHELL" # Test out setting of SHELL, both exported and not, as a target-specific # variable. +$extraENV{SHELL} = $mshell; + run_make_test("all: SHELL := /$mshell\n".' all:;@echo "$(SHELL) $$SHELL" ', '', "/$mshell $mshell"); +$extraENV{SHELL} = $mshell; + run_make_test("all: export SHELL := /$mshell\n".' all:;@echo "$(SHELL) $$SHELL" ', '', "/$mshell $mshell"); diff --git a/tests/test_driver.pl b/tests/test_driver.pl index 7cd40b58..4b4e72bd 100644 --- a/tests/test_driver.pl +++ b/tests/test_driver.pl @@ -32,12 +32,35 @@ $tests_passed = 0; # Yeesh. This whole test environment is such a hack! $test_passed = 1; + +# %makeENV is the cleaned-out environment. +%makeENV = (); + +# %extraENV are any extra environment variables the tests might want to set. +# These are RESET AFTER EVERY TEST! +%extraENV = (); + +# %origENV is the caller's original environment +%origENV = %ENV; + +sub resetENV +{ + # We used to say "%ENV = ();" but this doesn't work in Perl 5.000 + # through Perl 5.004. It was fixed in Perl 5.004_01, but we don't + # want to require that here, so just delete each one individually. + foreach $v (keys %ENV) { + delete $ENV{$v}; + } + + %ENV = %makeENV; + foreach $v (keys %extraENV) { + $ENV{$v} = $extraENV{$v}; + delete $extraENV{$v}; + } +} + sub toplevel { - # Get a clean environment - - %makeENV = (); - # Pull in benign variables from the user's environment # foreach (# UNIX-specific things @@ -57,15 +80,7 @@ sub toplevel # %origENV = %ENV; - # We used to say "%ENV = ();" but this doesn't work in Perl 5.000 - # through Perl 5.004. It was fixed in Perl 5.004_01, but we don't - # want to require that here, so just delete each one individually. - - foreach $v (keys %ENV) { - delete $ENV{$v}; - } - - %ENV = %makeENV; + resetENV(); $| = 1; # unbuffered output @@ -744,6 +759,11 @@ sub run_command { local ($code); + # We reset this before every invocation. On Windows I think there is only + # one environment, not one per process, so I think that variables set in + # test scripts might leak into subsequent tests if this isn't reset--??? + resetENV(); + print "\nrun_command: @_\n" if $debug; $code = system @_; print "run_command: \"@_\" returned $code.\n" if $debug; @@ -761,6 +781,11 @@ sub run_command_with_output local ($filename) = shift; local ($code); + # We reset this before every invocation. On Windows I think there is only + # one environment, not one per process, so I think that variables set in + # test scripts might leak into subsequent tests if this isn't reset--??? + resetENV(); + &attach_default_output ($filename); $code = system @_; &detach_default_output;