Projects
Mega:23.03
grep
_service:tar_scm:backport-grep-bug-backref-in-l...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-grep-bug-backref-in-last-of-multiple-patter.patch of Package grep
From b061d24916fb9a14da37a3f2a05cb80dc65cfd38 Mon Sep 17 00:00:00 2001 From: Paul Eggert <eggert@cs.ucla.edu> Date: Mon, 5 Dec 2022 14:16:45 -0800 Subject: [PATCH] backport: grep: bug backref in last of multiple patterns --- src/dfasearch.c | 25 ++++++++++++------------- tests/backref | 8 ++++++++ 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/dfasearch.c b/src/dfasearch.c index d6afa8d..2d0e861 100644 --- a/src/dfasearch.c +++ b/src/dfasearch.c @@ -267,20 +267,19 @@ GEAcompile (char *pattern, size_t size, reg_syntax_t syntax_bits, if (compilation_failed) exit (EXIT_TROUBLE); - if (prev <= patlim) + if (patlim < prev) + buflen--; + else if (pattern < prev) { - if (pattern < prev) - { - idx_t prevlen = patlim - prev; - buf = xirealloc (buf, buflen + prevlen); - memcpy (buf + buflen, prev, prevlen); - buflen += prevlen; - } - else - { - buf = pattern; - buflen = size; - } + idx_t prevlen = patlim - prev; + buf = xirealloc (buf, buflen + prevlen); + memcpy (buf + buflen, prev, prevlen); + buflen += prevlen; + } + else + { + buf = pattern; + buflen = size; } /* In the match_words and match_lines cases, we use a different pattern diff --git a/tests/backref b/tests/backref index 947981b..5cc3060 100755 --- a/tests/backref +++ b/tests/backref @@ -43,4 +43,12 @@ if test $? -ne 2 ; then failures=1 fi +# https://bugs.gnu.org/36148#13 +echo 'Total failed: 2 (1 ignored)' | + grep -e '^Total failed: 0$' -e '^Total failed: \([0-9]*\) (\1 ignored)$' +if test $? -ne 1 ; then + echo "Backref: Multiple -e test, test #5 failed" + failures=1 +fi + Exit $failures -- 2.30.1 (Apple Git-130)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2