[Toybox] [patch] grep: add -b flag

Strake strake888 at gmail.com
Wed Jul 24 15:53:43 PDT 2013


# HG changeset patch
# User Strake
# Date 1055085317 18000
# Node ID 7fd031a672f6f6835373b75d0987a61da2c8d3bc
# Parent  50b52474ea9f8fb3b016e1bc3e41780f8d943c0e
grep: add -b flag

diff -r 50b52474ea9f -r 7fd031a672f6 toys/pending/grep.c
--- a/toys/pending/grep.c	Sun Jun 08 10:09:05 2003 -0500
+++ b/toys/pending/grep.c	Sun Jun 08 10:15:17 2003 -0500
@@ -5,13 +5,13 @@
  * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/
  * See http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/cmdbehav.html

-USE_GREP(NEWTOY(grep, "EFHahinosvwclqe*f*m#", TOYFLAG_BIN))
+USE_GREP(NEWTOY(grep, "EFHabhinosvwclqe*f*m#", TOYFLAG_BIN))

 config GREP
   bool "grep"
   default n
   help
-    usage: grep [-clq] [-EFHhinosvw] (-e RE | -f REfile | RE) [file...]
+    usage: grep [-clq] [-EFHbhinosvw] (-e RE | -f REfile | RE) [file...]

     modes:
       default: print lines from each file what match regular expression RE.
@@ -23,6 +23,7 @@
       -E:   extended RE syntax
       -F:   fixed RE syntax, i.e. all characters literal
       -H:   print file name
+      -b:   print byte offset of match
       -h:   not print file name
       -i:   case insensitive
       -n:   print line numbers
@@ -73,6 +74,8 @@
       default:
         if (!(toys.optflags & FLAG_h)) printf ("%s:", name);
         if ( (toys.optflags & FLAG_n)) printf ("%d:", n);
+        if ( (toys.optflags & FLAG_b)) printf ("%ld:", lseek (0, 0,
SEEK_CUR) - strlen (y) +
+                                                       (toys.optflags
& FLAG_o ? matches[2].rm_so : 0));
         if (!(toys.optflags & FLAG_o)) fputs (x, stdout);
         else {
           y += matches[2].rm_so;


More information about the Toybox mailing list