[前][次][番号順一覧][スレッド一覧]

ruby-changes:23868

From: akr <ko1@a...>
Date: Tue, 5 Jun 2012 19:21:31 +0900 (JST)
Subject: [ruby-changes:23868] akr:r35919 (trunk): * process.c (rb_exec_fillarg): bail out a loop eagerly.

akr	2012-06-05 19:21:22 +0900 (Tue, 05 Jun 2012)

  New Revision: 35919

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35919

  Log:
    * process.c (rb_exec_fillarg): bail out a loop eagerly.

  Modified files:
    trunk/ChangeLog
    trunk/process.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 35918)
+++ ChangeLog	(revision 35919)
@@ -1,3 +1,7 @@
+Tue Jun  5 19:21:10 2012  Tanaka Akira  <akr@f...>
+
+	* process.c (rb_exec_fillarg): bail out a loop eagerly.
+
 Tue Jun  5 19:15:14 2012  Tanaka Akira  <akr@f...>
 
 	* process.c: add comments about async-signal-safe.
Index: process.c
===================================================================
--- process.c	(revision 35918)
+++ process.c	(revision 35919)
@@ -1805,10 +1805,12 @@
         int has_meta = 0;
         int has_nonspace = 0;
         for (p = RSTRING_PTR(prog); *p; p++) {
-            if (*p != ' ' && *p != '\t')
+            if (!has_nonspace && *p != ' ' && *p != '\t')
                 has_nonspace = 1;
-            if (strchr("*?{}[]<>()~&|\\$;'`\"\n", *p))
+            if (!has_meta && strchr("*?{}[]<>()~&|\\$;'`\"\n", *p))
                 has_meta = 1;
+            if (has_nonspace && has_meta)
+                break;
         }
         if (has_nonspace && !has_meta) {
             /* avoid shell since no shell meta charactor found. */

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]