> Date: Tue, 14 Feb 2006 22:09:49 +0200
> From: Eli Zaretskii <[EMAIL PROTECTED]>
> Cc: [email protected]
>
> > From: "J. David Bryan" <[EMAIL PROTECTED]>
> > Date: Mon, 13 Feb 2006 19:55:22 -0500
> >
> > Running the current CVS version under Windows with the "-n" (--dry-run)
> > option against the following example makefile:
> >
> >
> > all:
> > @echo hello
> > @echo there
> >
> >
> > ...will leave two batch files in the TEMP directory each time it is run.
> > Running without -n properly cleans up the files.
>
> Thanks, I will look into fixing this.
The patches below fix this problem. They also fix another small
blunder: the temporary batch file, when it was created, was written in
binary mode, so it had Unix-style LF-only line endings. This works
with cmd.exe from modern Windows versions, but would fail with
command.com that is the shell on Windows 9x. Oops!
2006-02-18 Eli Zaretskii <[EMAIL PROTECTED]>
* job.c (construct_command_argv_internal): Don't create a
temporary script/batch file if we are under -n. Call _setmode to
switch the script file stream to text mode.
--- job.c~4 2006-01-21 21:37:14.812500000 +0200
+++ job.c 2006-02-18 20:18:17.546875000 +0200
@@ -2767,7 +2767,9 @@ construct_command_argv_internal (char *l
/* Some shells do not work well when invoked as 'sh -c xxx' to run a
command line (e.g. Cygnus GNUWIN32 sh.exe on WIN32 systems). In these
cases, run commands via a script file. */
- if ((no_default_sh_exe || batch_mode_shell) && batch_filename_ptr) {
+ if (just_print_flag)
+ ; /* nothing */
+ else if ((no_default_sh_exe || batch_mode_shell) && batch_filename_ptr) {
int temp_fd;
FILE* batch = NULL;
int id = GetCurrentProcessId();
@@ -2782,7 +2784,8 @@ construct_command_argv_internal (char *l
/* Create a FILE object for the batch file, and write to it the
commands to be executed. */
- batch = _fdopen (temp_fd, "w");
+ _setmode (temp_fd, _O_TEXT); /* _fdopen doesn't switch to O_TEXT! */
+ batch = _fdopen (temp_fd, "wt");
if (!unixy_shell)
fputs ("@echo off\n", batch);
fputs (command_ptr, batch);
_______________________________________________
Make-w32 mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/make-w32