diff options
Diffstat (limited to 'dev-libs/libpcre/files/libpcre-8.40-pcregrep-multiline-1.patch')
-rw-r--r-- | dev-libs/libpcre/files/libpcre-8.40-pcregrep-multiline-1.patch | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/dev-libs/libpcre/files/libpcre-8.40-pcregrep-multiline-1.patch b/dev-libs/libpcre/files/libpcre-8.40-pcregrep-multiline-1.patch deleted file mode 100644 index f15968dfe98e..000000000000 --- a/dev-libs/libpcre/files/libpcre-8.40-pcregrep-multiline-1.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 5be027b624bc866702808abadfe5f99360414086 Mon Sep 17 00:00:00 2001 -From: Philip Hazel <ph10@cam.ac.uk> -Date: Fri, 10 Feb 2017 17:47:34 +0000 -Subject: [PATCH] Correct fix for pcre2grep multiline with --only-matching. - -git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1678 2f5784b3-3f2a-0410-8824-cb99058d5e15 ---- - ChangeLog | 5 +++++ - configure.ac | 6 +++--- - pcregrep.c | 20 +++++++++++++++----- - 3 files changed, 23 insertions(+), 8 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index ab4e053e601e..373ee8422ef5 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -10,6 +10,11 @@ Version 8.41 - 1. Fixed typo in CMakeLists.txt (wrong number of arguments for - PCRE_STATIC_RUNTIME (affects MSVC only). - -+2. Issue 1 for 8.40 below was not correctly fixed. If pcregrep in multiline -+mode with --only-matching matched several lines, it restarted scanning at the -+next line instead of moving on to the end of the matched string, which can be -+several lines after the start. -+ - - Version 8.40 11-January-2017 - ---------------------------- -diff --git a/pcregrep.c b/pcregrep.c -index fd2a67622baa..2070c057e4a0 100644 ---- a/pcregrep.c -+++ b/pcregrep.c -@@ -1804,11 +1804,6 @@ while (ptr < endptr) - if (line_buffered) fflush(stdout); - rc = 0; /* Had some success */ - -- /* If the current match ended past the end of the line (only possible -- in multiline mode), we are done with this line. */ -- -- if ((unsigned int)offsets[1] > linelength) goto END_ONE_MATCH; -- - startoffset = offsets[1]; /* Restart after the match */ - if (startoffset <= oldstartoffset) - { -@@ -1818,6 +1813,21 @@ while (ptr < endptr) - if (utf8) - while ((matchptr[startoffset] & 0xc0) == 0x80) startoffset++; - } -+ -+ /* If the current match ended past the end of the line (only possible -+ in multiline mode), we must move on to the line in which it did end -+ before searching for more matches. */ -+ -+ while (startoffset > (int)linelength) -+ { -+ matchptr = ptr += linelength + endlinelength; -+ filepos += (int)(linelength + endlinelength); -+ linenumber++; -+ startoffset -= (int)(linelength + endlinelength); -+ t = end_of_line(ptr, endptr, &endlinelength); -+ linelength = t - ptr - endlinelength; -+ } -+ - goto ONLY_MATCHING_RESTART; - } - } --- -2.12.0 - |