--- texinfo/install-info/install-info.c +++ texinfo/install-info/install-info.c @@ -22,6 +22,14 @@ #define TAB_WIDTH 8 +/* Explicit .exe suffix yields a better diagnostics from popen + on systems where STRIP_DOT_EXE is enabled. */ +#if STRIP_DOT_EXE +# define APPEND_DOT_EXE_SUFFIX ".exe" +#else +# define APPEND_DOT_EXE_SUFFIX "" +#endif + static char *progname = "install-info"; static char *default_section = NULL; @@ -797,43 +805,21 @@ determine_file_type: compression_program = &local_compression_program; if (data[0] == '\x1f' && data[1] == '\x8b') -#if STRIP_DOT_EXE - /* An explicit .exe yields a better diagnostics from popen below - if they don't have gzip installed. */ - *compression_program = "gzip.exe"; -#else - *compression_program = "gzip"; -#endif + *compression_program = "gzip" APPEND_DOT_EXE_SUFFIX; else if (data[0] == '\xFD' && data[1] == '7' && data[2] == 'z' && data[3] == 'X' && data[4] == 'Z' && data[5] == 0) -#ifndef STRIP_DOT_EXE - *compression_program = "xz.exe"; -#else - *compression_program = "xz"; -#endif + *compression_program = "xz" APPEND_DOT_EXE_SUFFIX; else if (data[0] == 'B' && data[1] == 'Z' && data[2] == 'h') -#ifndef STRIP_DOT_EXE - *compression_program = "bzip2.exe"; -#else - *compression_program = "bzip2"; -#endif + *compression_program = "bzip2" APPEND_DOT_EXE_SUFFIX; else if (data[0] == 'B' && data[1] == 'Z' && data[2] == '0') -#ifndef STRIP_DOT_EXE - *compression_program = "bzip.exe"; -#else - *compression_program = "bzip"; -#endif + *compression_program = "bzip" APPEND_DOT_EXE_SUFFIX; else if (data[0] == 0x4C && data[1] == 0x5A && data[2] == 0x49 && data[3] == 0x50 && data[4] == 1) /* "LZIP" */ -#ifndef STRIP_DOT_EXE - *compression_program = "lzip.exe"; -#else - *compression_program = "lzip"; -#endif + *compression_program = "lzip" APPEND_DOT_EXE_SUFFIX; /* We (try to) match against old lzma format (which lacks proper header, two first matches), as well as the new format (last match). */ @@ -844,11 +830,7 @@ determine_file_type: && data[11] == '\xFF' && data[12] == '\xFF') || (data[0] == '\xFF' && data[1] == 'L' && data[2] == 'Z' && data[3] == 'M' && data[4] == 'A' && data[5] == 0x00)) -#ifndef STRIP_DOT_EXE - *compression_program = "lzma.exe"; -#else - *compression_program = "lzma"; -#endif + *compression_program = "lzma" APPEND_DOT_EXE_SUFFIX; else *compression_program = NULL;