summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--win32/win32.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 697875b4d..110999e8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jan 14 13:19:21 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * win32/win32.c (rb_w32_aspawn): should not escape with carret
+ unless using cmd.exe.
+
Tue Jan 13 02:21:43 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c (internal_cmd_match): extracted from
diff --git a/win32/win32.c b/win32/win32.c
index e8907b664..24d457a85 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -1011,7 +1011,7 @@ rb_pid_t
rb_w32_aspawn(int mode, const char *prog, char *const *argv)
{
int len, differ = 0, c_switch = 0;
- BOOL ntcmd = FALSE;
+ BOOL ntcmd = FALSE, tmpnt;
const char *shell;
char *cmd, fbuf[MAXPATHLEN];
@@ -1019,7 +1019,8 @@ rb_w32_aspawn(int mode, const char *prog, char *const *argv)
if (!prog) prog = argv[0];
if ((shell = getenv("COMSPEC")) &&
- internal_cmd_match(prog, ntcmd = !is_command_com(shell))) {
+ internal_cmd_match(prog, tmpnt = !is_command_com(shell))) {
+ ntcmd = tmpnt;
prog = shell;
c_switch = 1;
differ = 1;