aboutsummaryrefslogtreecommitdiffstats
path: root/main/busybox/sed-performance.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/busybox/sed-performance.patch')
-rw-r--r--main/busybox/sed-performance.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/main/busybox/sed-performance.patch b/main/busybox/sed-performance.patch
new file mode 100644
index 0000000000..e6c8f78de7
--- /dev/null
+++ b/main/busybox/sed-performance.patch
@@ -0,0 +1,54 @@
+From b0e9b72915a87121aabf21d4e382e16e0a9a5175 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Sun, 21 Jul 2013 20:09:44 +0000
+Subject: sed: fix matching of newlines by $
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+diff --git a/editors/sed.c b/editors/sed.c
+index e625a09..3a0d917 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 468565f..2af1e4c 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
+--
+cgit v0.9.1