Commit Graph

73 Commits

Author SHA1 Message Date
Michael Forney 6327290cf2 grep: Fix -c flag 2014-11-02 09:46:52 +00:00
Michael Forney 1ca8a314f8 grep: Remove newlines before matching a line
Otherwise, a pattern with a '$' anchor will never match and POSIX says that

  "By default, an input line shall be selected if any pattern ... matches any
   part of the line excluding the terminating <newline>"
2014-11-02 09:46:46 +00:00
Hiltjo Posthuma 97fb4a1f9c grep: improvements
improvements:
- improve statuscode behaviour
  - don't exit if a file in a series fails. exit 2 if an error occured
    in a file series. don't exit if there is a read error (like: grep
     input file is a directory).
- use agetline instead of agets().

with the simple test: time seq 1 100000000 | grep 'a'
its 12 seconds (from 24 seconds) on my machine.

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>
2014-06-01 18:02:01 +01:00
sin 4896bdf6de Revert "Make grep more memory-efficient"
This reverts commit d9a098ae6bc07188cbaefcd188e5911dec41815d.

Conflicts:
	grep.c

Hiltjo Posthuma <hiltjo@codemadness.org> said:

(Re)compiling the regex for each line doesn't make sense (imho) and
slows it down a lot.

A simple test:

time seq 1 100000000 | grep 'a'

sbase grep (before patch):
    0m22.21s real     0m0.00s user     0m0.00s system

sbase grep (after patch):
    2m16.28s real     0m0.00s user     0m0.00s system

coreutils grep:
    0m1.15s real     0m0.00s user     0m0.00s system

So the patch should be reverted I think.
2014-05-12 12:06:40 +01:00
sin 11eef783fe Declare error buffer at start of block 2014-05-12 00:40:29 +01:00
FRIGN fb1bfe24bb Make grep more memory-efficient 2014-05-12 00:32:50 +01:00
dwts 459161481a use always static for usage and keep usage definition above main 2014-04-22 14:49:23 +01:00
sin f526ad099f Implement -e support for grep 2013-10-05 13:51:45 +01:00
Connor Lane Smith c68bba6867 grep: fix ARGC() 2012-06-09 18:49:02 +01:00
Connor Lane Smith c2c5ea9c60 grep: ARGBEGIN 2012-05-31 19:38:25 +01:00
Robert Ransom e6238dda31 grep: Remove trailing newline before trying to match RE
This unbreaks the "$" operator
and some uses of grep with other REs
(e.g. 'grep . TODO' to remove empty lines).
2012-05-22 00:05:03 +00:00
Connor Lane Smith 1360f568bb grep: better regerror message 2012-05-12 18:01:27 +01:00
Connor Lane Smith cd73d1b330 grep: check regcomp succeeds 2012-05-12 17:54:36 +01:00
Connor Lane Smith 8ec404cdec update cmp, grep 2011-06-18 06:42:24 +01:00
Connor Lane Smith de221bc6f5 grep: cleanup 2011-06-04 12:00:23 +01:00
Connor Lane Smith 763409841f grep -E 2011-06-04 11:57:31 +01:00
Connor Lane Smith 6427386b02 grep: default REG_NOSUB 2011-05-29 20:38:15 +01:00
Connor Lane Smith d6a9e35d0b really long lines 2011-05-25 20:40:47 +01:00
Connor Lane Smith f458397d5a no, getopt.h is gnu specific 2011-05-24 18:58:36 +01:00
pancake da547fb294 add missing #include <getopt.h>
do not override CC in config.mk
2011-05-24 14:34:26 +02:00
Connor Lane Smith 4c6c379812 handle -- 2011-05-24 11:05:36 +01:00
Connor Lane Smith 9714d7b1d3 getopt 2011-05-24 01:13:34 +01:00
Connor Lane Smith 8e26716a5a initial commit 2011-05-23 02:36:34 +01:00