From: Denys Vlasenko Date: Sun, 21 Jul 2013 20:09:44 +0000 (+0200) Subject: sed: fix matching of newlines by $ X-Git-Tag: 1_22_0~145 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b0e9b72915a87121aabf21d4e382e16e0a9a5175;p=oweals%2Fbusybox.git sed: fix matching of newlines by $ Signed-off-by: Denys Vlasenko --- diff --git a/editors/sed.c b/editors/sed.c index e625a0965..3a0d917aa 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -330,7 +330,7 @@ static int get_address(const char *my_str, int *linenum, regex_t ** regex) next = index_of_next_unescaped_regexp_delim(delimiter, ++pos); temp = copy_parsing_escapes(pos, next); *regex = xzalloc(sizeof(regex_t)); - xregcomp(*regex, temp, G.regex_type|REG_NEWLINE); + xregcomp(*regex, temp, G.regex_type); free(temp); /* Move position to next character after last delimiter */ pos += (next+1); diff --git a/testsuite/sed.tests b/testsuite/sed.tests index 468565f47..2af1e4c97 100755 --- a/testsuite/sed.tests +++ b/testsuite/sed.tests @@ -310,6 +310,27 @@ testing "sed zero chars match/replace logic must not falsely trigger here 2" \ "sed 's/ *$/_/g'" \ "qwerty_\n" "" "qwerty\n" +testing "sed /\$_in_regex/ should not match newlines, only end-of-line" \ + "sed ': testcont; /\\\\$/{ =; N; b testcont }'" \ + "\ +this is a regular line +2 +line with \\ +continuation +more regular lines +5 +line with \\ +continuation +" \ + "" "\ +this is a regular line +line with \\ +continuation +more regular lines +line with \\ +continuation +" + # testing "description" "commands" "result" "infile" "stdin" exit $FAILCOUNT