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>
This commit is contained in:
Denys Vlasenko 2011-05-03 00:52:22 +02:00
parent 52d8370836
commit 6a0abcc02f
2 changed files with 5 additions and 1 deletions

View File

@ -218,8 +218,9 @@ static char *copy_parsing_escapes(const char *string, int len)
char *dest = xmalloc(len + 1); char *dest = xmalloc(len + 1);
parse_escapes(dest, string, len, 'n', '\n'); 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), 't', '\t');
parse_escapes(dest, dest, strlen(dest), 'r', '\r');
return dest; return dest;
} }

View File

@ -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" \ "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
"bar\nbar\n" "foo\n" "" "bar\nbar\n" "foo\n" ""
testing "sed understands \r" \
"sed 's/r/\r/'" \
"\rrr\n" "" "rrr\n"
# testing "description" "arguments" "result" "infile" "stdin" # testing "description" "arguments" "result" "infile" "stdin"