2006-08-18 Eli Zaretskii * configure.in (PATH_SEPARATOR_CHAR): Define to the value of $PATH_SEPARATOR. * make.h (PATH_SEPARATOR_CHAR): Define only if still undefined. Normally, it is defined in config.h. * config/dospaths.m4 : Define to yes on Cygwin as well. * job.c (construct_command_argv_internal) [HAVE_DOS_PATHS]: Define sh_chars_sh for Windows platforms that emulate Unix. --- old/make-3.81/configure.in 2006-04-01 12:36:40.000000000 +0300 +++ new/make-3.81/configure.in 2006-08-18 21:12:32.828125000 +0300 @@ -384,6 +384,8 @@ ;; esac +AC_DEFINE_UNQUOTED(PATH_SEPARATOR_CHAR,'$PATH_SEPARATOR',[Define to the character that separates directories in PATH.]) + # Include the Maintainer's Makefile section, if it's here. MAINT_MAKEFILE=/dev/null --- old/make-3.81/make.h 2006-02-16 03:54:43.000000000 +0200 +++ new/make-3.81/make.h 2006-08-18 21:12:32.859375000 +0300 @@ -347,12 +347,14 @@ #define S_(msg1,msg2,num) ngettext (msg1,msg2,num) /* Handle other OSs. */ -#if defined(HAVE_DOS_PATHS) -# define PATH_SEPARATOR_CHAR ';' -#elif defined(VMS) -# define PATH_SEPARATOR_CHAR ',' -#else -# define PATH_SEPARATOR_CHAR ':' +#ifndef PATH_SEPARATOR_CHAR +# if defined(HAVE_DOS_PATHS) +# define PATH_SEPARATOR_CHAR ';' +# elif defined(VMS) +# define PATH_SEPARATOR_CHAR ',' +# else +# define PATH_SEPARATOR_CHAR ':' +# endif #endif /* This is needed for getcwd() and chdir(). */ --- old/make-3.81/config/dospaths.m4 2006-03-10 06:20:45.000000000 +0200 +++ new/make-3.81/config/dospaths.m4 2006-08-18 21:12:32.859375000 +0300 @@ -22,7 +22,7 @@ AC_CACHE_CHECK([whether system uses MSDOS-style paths], [ac_cv_dos_paths], [ AC_COMPILE_IFELSE([ -#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ +#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __EMX__ && !defined __MSYS__ && !defined __CYGWIN__ neither MSDOS nor Windows nor OS2 #endif ], --- old/make-3.81/job.c 2006-03-20 07:03:04.000000000 +0200 +++ new/make-3.81/job.c 2006-08-19 09:25:07.687500000 +0300 @@ -2307,6 +2307,12 @@ construct_command_argv_internal (char *l "login", "logout", "read", "readonly", "set", "shift", "switch", "test", "times", "trap", "umask", "wait", "while", 0 }; +# ifdef HAVE_DOS_PATHS + /* This is required if the MSYS/Cygwin ports (which do not define + WINDOWS32) are compiled with HAVE_DOS_PATHS defined, which uses + sh_chars_sh[] directly (see below). */ + static char *sh_chars_sh = sh_chars; +# endif /* HAVE_DOS_PATHS */ #endif register int i; register char *p;