Author: gabor
Date: Sat Jan  5 14:52:31 2013
New Revision: 245057
URL: http://svnweb.freebsd.org/changeset/base/245057

Log:
  - Fix handling of the case when multiple patterns are specified in a single
    command line argument, separated by newlines
  
  PR:           bin/173673
  Submitted by: ache
  MFC after:    1 week

Modified:
  head/usr.bin/grep/grep.c

Modified: head/usr.bin/grep/grep.c
==============================================================================
--- head/usr.bin/grep/grep.c    Sat Jan  5 11:13:48 2013        (r245056)
+++ head/usr.bin/grep/grep.c    Sat Jan  5 14:52:31 2013        (r245057)
@@ -479,7 +479,13 @@ main(int argc, char *argv[])
                        grepbehave = GREP_EXTENDED;
                        break;
                case 'e':
-                       add_pattern(optarg, strlen(optarg));
+                       {
+                               char *token;
+                               char *string = strdup(optarg);
+
+                               while ((token = strsep(&string, "\n")) != NULL)
+                                       add_pattern(token, strlen(token));
+                       }
                        needpattern = 0;
                        break;
                case 'F':
@@ -668,7 +674,11 @@ main(int argc, char *argv[])
 
        /* Process patterns from command line */
        if (aargc != 0 && needpattern) {
-               add_pattern(*aargv, strlen(*aargv));
+               char *token;
+               char *string = strdup(*aargv);
+
+               while ((token = strsep(&string, "\n")) != NULL)
+                       add_pattern(token, strlen(token));
                --aargc;
                ++aargv;
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to