ActivePerl Build 630のBUG

このページはActivePerl build 630のsystem関数がWindows 9xで正しく動かないバグに関するページです。


ActivePerl build 630ではwin32.cのcreate_command_lineがcmd.exeに偏った修正がされたため、 例えば system "echo help!"; などcommand.comのビルトインコマンドがWindows 9xで正しく動かないバグが あります。 これはwin32.cに次のパッチを当てることで解消できます。
このバグは bugs.activestate.com に報告してありますので、build 631以降で修正されると思います。
--- win32.c.old	Wed Oct 31 22:45:00 2001
+++ win32.c	Sun Nov 11 00:21:26 2001
@@ -3125,6 +3125,18 @@
     New(1310, cmd, len, char);
     ptr = cmd;
 
+    get_shell();
+    if (stricmp(w32_perlshell_vec[0], "cmd.exe")) {
+	if (args[0]) strcpy(ptr, args[0]);
+	for (index = 1; (arg = (char*)args[index]) != NULL; ++index) {
+	    ptr += strlen(ptr);
+	    *ptr++ = ' ';
+	    strcpy(ptr, arg);
+	}
+	DEBUG_p(PerlIO_printf(Perl_debug_log, "return cmd [%s]\n",cmd));
+	return cmd;
+    }
+
     if (bat_file) {
 	*ptr++ = '"';
 	extra_quotes = TRUE;
@@ -3193,6 +3205,7 @@
 
     *ptr = '\0';
 
+    DEBUG_p(PerlIO_printf(Perl_debug_log, "return cmd [%s]\n",cmd));
     return cmd;
 }
 
Makeしたperlのbinaryをap630bin.zipとして置きました。 build 630をインストールしたbin/に解凍してお使いください。


Perl
ホームページ

リンクはご自由にどうぞ。問合わせ等の必要はありません。

Last modified: Sun Nov 11 2001
Copyright (C) 2001 SUZUKI Norio, 鈴木紀夫