[git commit] sed: support \r in s command

Denys Vlasenko vda.linux at googlemail.com
Mon May 2 22:52:22 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=6a0abcc02f0773f32f2d31b3532eec1b11e1f67d
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
copy_parsing_escapes                                  65      91     +26

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 editors/sed.c       |    3 ++-
 testsuite/sed.tests |    3 +++
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/editors/sed.c b/editors/sed.c
index 9e27e3e..11c4763 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -218,8 +218,9 @@ static char *copy_parsing_escapes(const char *string, int len)
 	char *dest = xmalloc(len + 1);
 
 	parse_escapes(dest, string, len, 'n', '\n');
-	/* GNU sed also recognizes \t */
+	/* GNU sed also recognizes \t and \r */
 	parse_escapes(dest, dest, strlen(dest), 't', '\t');
+	parse_escapes(dest, dest, strlen(dest), 'r', '\r');
 	return dest;
 }
 
diff --git a/testsuite/sed.tests b/testsuite/sed.tests
index 395372a..e9d0ed6 100755
--- a/testsuite/sed.tests
+++ b/testsuite/sed.tests
@@ -287,6 +287,9 @@ testing "sed -i with address modifies all files, not only first" \
 	"cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
 	"bar\nbar\n" "foo\n" ""
 
+testing "sed understands \r" \
+	"sed 's/r/\r/'" \
+	"\rrr\n" "" "rrr\n"
 
 # testing "description" "arguments" "result" "infile" "stdin"
 
-- 
1.7.3.4



More information about the busybox-cvs mailing list