bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bug with Windows interface: echo. in command only works when redirec


From: Eli Zaretskii
Subject: Re: bug with Windows interface: echo. in command only works when redirected
Date: Fri, 11 Dec 2009 18:00:56 +0200

> From: "Mark Galeck (CW)" <address@hidden>
> Date: Sun, 29 Nov 2009 20:31:51 -0800
> Accept-Language: en-US
> acceptlanguage: en-US
> 
> Hello,  I asked for help on this issue (with GNU make on Windows) on the 
> help-make list, and Paul Smith says, this is a bug.  I am using WinXP Pro, 
> SP3.  Here is an SSCCE:  
> 
> makefile:
> -------------------------
> SHELL=cmd.exe
> foobar:
>               @echo.>foo
> ------------------------
> 
> gives me:
> C:\tmp>make foobar
> 
> C:\tmp>
> 
> 
> However, this one:
> 
> makefile:
> -------------------------
> SHELL=cmd.exe
> foobar:
>               @echo.
> ------------------------
> 
> gives:
> 
> C:\tmp>make foobar
> process_begin: CreateProcess(NULL, echo., ...) failed.
> make (e=2): The system cannot find the file specified.
> make: *** [foobar] Error 2

Thanks, I just fixed this in CVS.  Patch below.

2009-12-11  Eli Zaretskii  <address@hidden>

        * job.c (construct_command_argv_internal) <sh_cmds_dos>
        [WINDOWS32]: Add "echo." and a few more commands that are built
        into cmd.exe.  Fixes Savannah bug #28126.

--- job.c~      2008-09-30 13:15:03.465375000 +0200
+++ job.c       2009-12-11 17:22:22.698250000 +0200
@@ -2287,12 +2287,15 @@
                             0 };
 #elif defined (WINDOWS32)
   static char sh_chars_dos[] = "\"|&<>";
-  static char *sh_cmds_dos[] = { "break", "call", "cd", "chcp", "chdir", "cls",
-                            "copy", "ctty", "date", "del", "dir", "echo",
-                            "erase", "exit", "for", "goto", "if", "if", "md",
-                            "mkdir", "path", "pause", "prompt", "rd", "rem",
-                             "ren", "rename", "rmdir", "set", "shift", "time",
-                             "type", "ver", "verify", "vol", ":", 0 };
+  static char *sh_cmds_dos[] = { "assoc", "break", "call", "cd", "chcp",
+                                "chdir", "cls", "color", "copy", "ctty",
+                                "date", "del", "dir", "echo", "echo.",
+                                "endlocal", "erase", "exit", "for", "ftype",
+                                "goto", "if", "if", "md", "mkdir", "path",
+                                "pause", "prompt", "rd", "rem", "ren",
+                                "rename", "rmdir", "set", "setlocal",
+                                "shift", "time", "title", "type", "ver",
+                                "verify", "vol", ":", 0 };
   static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^";
   static char *sh_cmds_sh[] = { "cd", "eval", "exec", "exit", "login",
                             "logout", "set", "umask", "wait", "while", "for",




reply via email to

[Prev in Thread] Current Thread [Next in Thread]