The grep -i '^$' bug is big enough to merit a new release. I expect to release grep-2.14 early next week, so here's a snapshot. Please test this and report any problems.
grep snapshot: http://meyering.net/grep/grep-ss.tar.xz 1.2 MB http://meyering.net/grep/grep-ss.tar.xz.sig http://meyering.net/grep/grep-2.13.16-86a70.tar.xz There are .sig files here, too: http://people.redhat.com/meyering/grep/grep-ss.tar.xz http://people.redhat.com/meyering/grep/grep-2.13.16-86a70.tar.xz ========================================= NEWS ** Bug fixes grep -i '^$' could exit 0 (i.e., report a match) in a multi-byte locale, even though there was no match, and the command generated no output. E.g., seq 2 | LC_ALL=en_US.utf8 grep -il '^$' would mistakenly print "(standard input)". Related, seq 9 | LC_ALL=en_US.utf8 grep -in '^$' would print "2:4:6:8:10:12:14:16" and exit 0. Now it prints nothing and exits with status of 1. [bug introduced in grep-2.6] 'grep' no longer falsely reports text files as being binary on file systems that compress contents or that store tiny contents in metadata. ========================================= Changes in grep since v2.13: Jim Meyering (11): maint: post-release administrivia maint: correct log typo, to reflect in generated ChangeLog maint: fix misspellings in old ChangeLog build: update gnulib and bootstrap tests: avoid false positive upon kernel OOM-kill maint: optimize long-line processing tests: skip failing test on FS/system that lack SEEK_HOLE support tests: fix a skip diagnostic that mentioned the wrong locale grep -i '^$' in a multi-byte locale could report a false match tests: test for bug with -i and ^$ in a multi-byte locale build: update gnulib and bootstrap Paul Eggert (5): grep: fix ptrdiff/size_t clash doc: document -r/-R in man page grep: don't falsely report tiny text files as binary grep: don't falsely report compressed text files as binary maint: remove stat-size ========================================= Changes in gnulib since v2.13: * gnulib d8f90ad...a451aa0 (72): > maintainer-makefile: Fix syntax error with dash. > extern-inline: also ignore -Wmissing-declarations > autoupdate > maint.mk: sc_prohibit_magic_number_exit: avoid new false positives > gnumakefile: better interaction with Automake-NG > base64: Use extern C scope in header file, for C++. > stat-time, timespec, u64: support naive out-of-dir builds > Fix typo: 'linline' -> 'inline' (thanks to Eric Blake). > Keep the extern-inline macros closer together. > Fix indenting. > utimens: use extern-inline > u64: use extern-inline > timespec: use extern-inline > stat-time: use extern-inline > extern-inline: new module > maint.mk: a "release-commit" wrapper to do-release-commit-and-tag > autoupdate > autoupdate > maint.mk: use silent-rules support from Automake > maint.mk: provide a web-manual-update target > README-release: shorten the circuit to post a news > gnu-web-doc-update: fix --help > passfd: fix comment on recvfd > maint.mk: avoid a sub-shell > maint.mk: absolute VPATH issue > update from texinfo > gitlog-to-changelog: fix previous change > gitlog-to-changelog: don't expect .git to be in $srcdir > maint.mk: absolute VPATH build fix > clean-temp: Fix memory leak. > maint: fix grammar in a ChangeLog entry > maint.mk: new rule: refresh-gnulib-patches > gnulib-tool: Fix handling of inctests variable. > getpass: Assume AC_CHECK_DECLS_ONCE invocation, like in getpass.m4. > verify: document conflict with -Wnested-externs > maint.mk: forbid exit(-1) > fsusage: port back to Solaris > gnu-web-doc-update: fix error messages > gnu-web-doc-update: check the requirements. > maint.mk: minor simplification. > gitlog-to-changelog: VPATH build issues. > fpending: Assume AC_CHECK_DECLS_ONCE invocation, like in fpending.m4. > pthread_sigmask: fix bug on FreeBSD 9 > README-release: make it more legible > autoupdate > maint: require that each sc_... command start with "@" > maint.mk: add leading "@" to quiet new "make syntax-check" rule > autoupdate > maint.mk: new syntax check for HAVE_DECL checks > argp: make HAVE_DECL usage consistent > stat-time: relax license to LGPLv2+ > strndup: fix m4 usage error > maint: enable the sc_avoid_if_before_free syntax-check rule > gettext: do not assume '#define ... defined ...' behavior > getloadavg: clean out old Emacs and Autoconf cruft > bootstrap: let warn be like tests/init.sh's warn_ > getopt: Simplify after Emacs changed. > maint.mk: add sc_vulnerable_makefile_CVE-2012-3386 > maint.mk: _sc_search_regexp, sc_vulnerable_makefile_CVE-2009-4029: fix > getloadavg, getopt: fix commentary re configure.in > timespec: mark functions with const attributes > canonicalize[-lgpl]: handle "guessing" values when cross-building > canonicalize: make the right guess when cross-compiling to GNU > update from texinfo > timespec-sub: avoid duplicate include > bootstrap: use a more consistent error reporting scheme > sys_time: allow too-wide tv_sec > pthread: check for both pthread_create and pthread_join > parse-datetime: doc tuneup > do-release-commit-and-tag: fix the previous commit > do-release-commit-and-tag: fix typo > pthread: check for pthread_create, not pthread_join
