ruby-changes:23869
From: akr <ko1@a...>
Date: Tue, 5 Jun 2012 19:35:57 +0900 (JST)
Subject: [ruby-changes:23869] akr:r35920 (trunk): * process.c (proc_spawn): don't detect simple command line here
akr 2012-06-05 19:35:47 +0900 (Tue, 05 Jun 2012) New Revision: 35920 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35920 Log: * process.c (proc_spawn): don't detect simple command line here because rb_exec_fillarg already did. Modified files: trunk/ChangeLog trunk/process.c Index: ChangeLog =================================================================== --- ChangeLog (revision 35919) +++ ChangeLog (revision 35920) @@ -1,3 +1,8 @@ +Tue Jun 5 19:33:51 2012 Tanaka Akira <akr@f...> + + * process.c (proc_spawn): don't detect simple command line here + because rb_exec_fillarg already did. + Tue Jun 5 19:21:10 2012 Tanaka Akira <akr@f...> * process.c (rb_exec_fillarg): bail out a loop eagerly. Index: process.c =================================================================== --- process.c (revision 35919) +++ process.c (revision 35920) @@ -1278,30 +1278,13 @@ proc_spawn(char *str) { char fbuf[MAXPATHLEN]; - char *s, *t; - char **argv, **a; rb_pid_t status; - VALUE v; - for (s = str; *s; s++) { - if (*s != ' ' && !ISALPHA(*s) && strchr("*?{}[]<>()~&|\\$;'`\"\n",*s)) { - char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf)); - before_exec(); - status = spawnl(P_NOWAIT, (shell ? shell : "/bin/sh"), "sh", "-c", str, (char*)NULL); - rb_last_status_set(status == -1 ? 127 : status, 0); - after_exec(); - return status; - } - } - a = argv = ALLOC_ARGV_WITH_STR((s - str) / 2 + 2, v, s, s - str + 1); - strcpy(s, str); - if (*a++ = strtok(s, " \t")) { - while (t = strtok(NULL, " \t")) - *a++ = t; - *a = NULL; - } - status = argv[0] ? proc_spawn_v(argv, 0) : -1; - ALLOCV_END(v); + char *shell = dln_find_exe_r("sh", 0, fbuf, sizeof(fbuf)); + before_exec(); + status = spawnl(P_NOWAIT, (shell ? shell : "/bin/sh"), "sh", "-c", str, (char*)NULL); + rb_last_status_set(status == -1 ? 127 : status, 0); + after_exec(); return status; } #endif -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/