+++ /dev/null
-From 6e4c8728f0e75af57f839625d0bd51b0a02d091e Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Wed, 8 Feb 2017 13:00:11 -0800
-Subject: grep: do not mishandle \. in multiple patterns
-
-Problem reported by Lars Wendler (Bug#25655).
-* NEWS: Document this.
-* src/grep.c (try_fgrep_pattern): Fix typo that prevented
-keys from being properly updated.
-* tests/foad1: Test for the bug.
----
- src/grep.c | 15 ++++++++-------
- tests/foad1 | 7 +++++++
- 3 files changed, 20 insertions(+), 7 deletions(-)
-
-diff --git a/src/grep.c b/src/grep.c
-index 81654c3..74acb0b 100644
---- a/src/grep.c
-+++ b/src/grep.c
-@@ -2361,11 +2361,12 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
- size_t len = *len_p;
- char *new_keys = xmalloc (len + 1);
- char *p = new_keys;
-+ char const *q = keys;
- mbstate_t mb_state = { 0 };
-
- while (len != 0)
- {
-- switch (*keys)
-+ switch (*q)
- {
- case '$': case '*': case '.': case '[': case '^':
- goto fail;
-@@ -2377,7 +2378,7 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
-
- case '\\':
- if (1 < len)
-- switch (keys[1])
-+ switch (q[1])
- {
- case '\n':
- case 'B': case 'S': case 'W': case'\'': case '<':
-@@ -2391,7 +2392,7 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
- goto fail;
- /* Fall through. */
- default:
-- keys++, len--;
-+ q++, len--;
- break;
- }
- break;
-@@ -2401,20 +2402,20 @@ try_fgrep_pattern (int matcher, char *keys, size_t *len_p)
- size_t n;
- if (match_icase)
- {
-- int ni = fgrep_icase_charlen (keys, len, &mb_state);
-+ int ni = fgrep_icase_charlen (q, len, &mb_state);
- if (ni < 0)
- goto fail;
- n = ni;
- }
- else
- {
-- n = mb_clen (keys, len, &mb_state);
-+ n = mb_clen (q, len, &mb_state);
- if (MB_LEN_MAX < n)
- goto fail;
- }
-
-- p = mempcpy (p, keys, n);
-- keys += n;
-+ p = mempcpy (p, q, n);
-+ q += n;
- len -= n;
- }
- }
-diff --git a/tests/foad1 b/tests/foad1
-index 286c449..0163f1a 100755
---- a/tests/foad1
-+++ b/tests/foad1
-@@ -137,6 +137,13 @@ grep_test "$x2" "$y2" -F -w --color=always bc
- grep_test "$x3" "$y3" -E -w --color=always bc
- grep_test "$x3" "$y3" -F -w --color=always bc
-
-+# Bug#25655
-+grep_test .tar/ .tar/ -e '\.tar' -e '\.tbz'
-+grep_test .tar/ .tar/ -o -e '\.tar' -e 'tar'
-+grep_test '$*.[^\/' '$*.[^\/' -o -e '\$\*\.\[\^\\' -e abc
-+grep_test '$*.[^\/(+?{|/' '$*.[^\/(+?{|/' -o -E \
-+ -e '\$\*\.\[\^\\' -e '\(\+\?\{\|'
-+
- # Skip the rest of the tests - known to fail. TAA.
- Exit $failures
-
---
-cgit v1.0-41-gc330
-
+++ /dev/null
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs
-
-DESCRIPTION="GNU regular expression matcher"
-HOMEPAGE="https://www.gnu.org/software/grep/"
-SRC_URI="mirror://gnu/${PN}/${P}.tar.xz
- mirror://gentoo/${P}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="nls pcre static"
-
-LIB_DEPEND="pcre? ( >=dev-libs/libpcre-7.8-r1[static-libs(+)] )"
-RDEPEND="!static? ( ${LIB_DEPEND//\[static-libs(+)]} )
- nls? ( virtual/libintl )
- virtual/libiconv"
-DEPEND="${RDEPEND}
- virtual/pkgconfig
- nls? ( sys-devel/gettext )
- static? ( ${LIB_DEPEND} )"
-
-DOCS=( AUTHORS ChangeLog NEWS README THANKS TODO )
-
-PATCHES=(
- "${FILESDIR}"/${P}-multiple_pattern_fix.patch
-)
-
-src_prepare() {
- epatch "${PATCHES[@]}"
- sed -i \
- -e "s:@SHELL@:${EPREFIX}/bin/sh:g" \
- src/egrep.sh || die #523898
-}
-
-src_configure() {
- use static && append-ldflags -static
- # Always use pkg-config to get lib info for pcre.
- export ac_cv_search_pcre_compile=$(
- usex pcre "$($(tc-getPKG_CONFIG) --libs $(usex static --static '') libpcre)" ''
- )
- econf \
- --bindir="${EPREFIX}"/bin \
- $(use_enable nls) \
- $(use_enable pcre perl-regexp)
-}