diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2011-05-03 00:52:22 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2011-05-03 00:52:22 +0200 |
| commit | 6a0abcc02f0773f32f2d31b3532eec1b11e1f67d (patch) | |
| tree | 723311362dbf162b079f2ef88045a128967c0d64 | |
| parent | 52d83708364f85463fbc3756420b4068df13aab7 (diff) | |
| download | busybox-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.c | 3 | ||||
| -rwxr-xr-x | testsuite/sed.tests | 3 |
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 | ||
| 290 | testing "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 | ||
