aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2011-05-03 00:52:22 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2011-05-03 00:52:22 +0200
commit6a0abcc02f0773f32f2d31b3532eec1b11e1f67d (patch)
tree723311362dbf162b079f2ef88045a128967c0d64
parent52d83708364f85463fbc3756420b4068df13aab7 (diff)
downloadbusybox-w32-6a0abcc02f0773f32f2d31b3532eec1b11e1f67d.tar.gz
busybox-w32-6a0abcc02f0773f32f2d31b3532eec1b11e1f67d.tar.bz2
busybox-w32-6a0abcc02f0773f32f2d31b3532eec1b11e1f67d.zip
sed: support \r in s command
function old new delta copy_parsing_escapes 65 91 +26 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--editors/sed.c3
-rwxr-xr-xtestsuite/sed.tests3
2 files changed, 5 insertions, 1 deletions
diff --git a/editors/sed.c b/editors/sed.c
index 9e27e3e18..11c476321 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -218,8 +218,9 @@ static char *copy_parsing_escapes(const char *string, int len)
218 char *dest = xmalloc(len + 1); 218 char *dest = xmalloc(len + 1);
219 219
220 parse_escapes(dest, string, len, 'n', '\n'); 220 parse_escapes(dest, string, len, 'n', '\n');
221 /* GNU sed also recognizes \t */ 221 /* GNU sed also recognizes \t and \r */
222 parse_escapes(dest, dest, strlen(dest), 't', '\t'); 222 parse_escapes(dest, dest, strlen(dest), 't', '\t');
223 parse_escapes(dest, dest, strlen(dest), 'r', '\r');
223 return dest; 224 return dest;
224} 225}
225 226
diff --git a/testsuite/sed.tests b/testsuite/sed.tests
index 395372ae6..e9d0ed601 100755
--- a/testsuite/sed.tests
+++ b/testsuite/sed.tests
@@ -287,6 +287,9 @@ testing "sed -i with address modifies all files, not only first" \
287 "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \ 287 "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
288 "bar\nbar\n" "foo\n" "" 288 "bar\nbar\n" "foo\n" ""
289 289
290testing "sed understands \r" \
291 "sed 's/r/\r/'" \
292 "\rrr\n" "" "rrr\n"
290 293
291# testing "description" "arguments" "result" "infile" "stdin" 294# testing "description" "arguments" "result" "infile" "stdin"
292 295