diff options
-rw-r--r-- | pc/ChangeLog | 14 | ||||
-rw-r--r-- | pc/Makefile.tst | 6 | ||||
-rw-r--r-- | pc/popen.c | 23 |
3 files changed, 26 insertions, 17 deletions
diff --git a/pc/ChangeLog b/pc/ChangeLog index eb5636e9..12bf2f89 100644 --- a/pc/ChangeLog +++ b/pc/ChangeLog @@ -1,3 +1,17 @@ +2014-01-15 Eli Zaretskii <eliz@gnu.org> + + * Makefile.tst (mbprintf4, profile5, backbigs1, backsmalls1): + Announce expected failures. + (fts): Fail gracefully, to avoid bailing out of the test suite too + early. + + * popen.c (os_system): Use spawnl, and quote the command line, to + be consistent with what gawk_popen does. + (os_popen) [__MINGW32__]: Don't scriptify the command, to be + consistent with gawk_popen. + (os_pclose) [__MINGW32__]: Update to match os_open: no need to + unlink the script file. + 2013-12-10 Scott Deifik <scottd.mail@sbcglobal.net> * gawkmisc.c (init_sockets): Move into the right part of the diff --git a/pc/Makefile.tst b/pc/Makefile.tst index 6a2216a0..2cff3c2e 100644 --- a/pc/Makefile.tst +++ b/pc/Makefile.tst @@ -797,6 +797,7 @@ mbprintf3:: mbprintf4:: @echo $@ + @echo Expect mbprintf4 to fail with MinGW @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \ $(AWK) -f "$(srcdir)"/$@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @@ -870,6 +871,7 @@ profile4: profile5: @echo $@ + @echo Expect profile5 to fail with MinGW due to 3 digits in %e output @GAWK_NO_PP_RUN=1 $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null @sed 1,2d < ap-$@.out > _$@; rm ap-$@.out @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @@ -1041,7 +1043,7 @@ fts: fi @echo $@ @echo Expect $@ to fail with MinGW because function 'fts' is not defined. - @$(AWK) -f "$(srcdir)"/fts.awk + @$(AWK) -f "$(srcdir)"/fts.awk || echo EXIT CODE: $$? >>_$@ @-$(CMP) $@.ok _$@ && rm -f $@.ok _$@ charasbytes: @@ -1098,12 +1100,14 @@ dfamb1: backbigs1: @echo $@ + @echo Expect backbigs1 to fail with MinGW @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ backsmalls1: @echo $@ + @echo Expect backsmalls1 to fail with MinGW @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ AWKPATH="$(srcdir)" $(AWK) -f $@.awk "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ @@ -13,7 +13,6 @@ #define _NFILE 40 #endif -static char template[] = "piXXXXXX"; static struct { char *command; char *name; @@ -34,6 +33,7 @@ static struct { #define WIN32_LEAN_AND_MEAN #include <windows.h> +#if 0 static int unixshell(char *p) { @@ -119,20 +119,16 @@ unlink_and_free(char *cmd) s = cmd; unlink(s); free(cmd); } +#endif int os_system(const char *cmd) { - char *s; - int i; - char *cmd1; + char *cmdexe = getenv("ComSpec"); + char *cmd1 = quote_cmd(cmd); + int i = spawnl(P_WAIT, cmdexe, "cmd.exe", "/c", cmd1, NULL); - if ((cmd1 = scriptify(cmd)) == NULL) return(1); - if (s = getenv("SHELL")) - i = spawnlp(P_WAIT, s, s, cmd1 + strlen(s), NULL); - else - i = system(cmd1); - unlink_and_free(cmd1); + free(cmd1); return(i); } @@ -209,19 +205,15 @@ os_popen(const char *command, const char *mode ) char *name; int cur; char curmode[4]; -#if defined(__MINGW32__) - char *cmd; -#endif if (*mode != 'r' && *mode != 'w') return NULL; strncpy(curmode, mode, 3); curmode[3] = '\0'; #if defined(__MINGW32__) - current = popen(cmd = scriptify(command), mode); + current = popen(command, mode); cur = fileno(current); strcpy(pipes[cur].pmode, curmode); - pipes[cur].command = cmd; return(current); #endif @@ -268,7 +260,6 @@ os_pclose( FILE * current) #if defined(__MINGW32__) rval = pclose(current); *pipes[cur].pmode = '\0'; - unlink_and_free(pipes[cur].command); return rval; #endif |