[git commit] sed: shrink by 17 bytes

Denys Vlasenko vda.linux at googlemail.com
Wed May 4 22:26:37 UTC 2011


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

Signed-off-by: Pascal Bellard <pascal.bellard at ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 editors/sed.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/editors/sed.c b/editors/sed.c
index 11c4763..99e56ff 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -215,12 +215,16 @@ static void parse_escapes(char *dest, const char *string, int len, char from, ch
 
 static char *copy_parsing_escapes(const char *string, int len)
 {
+	const char *s;
 	char *dest = xmalloc(len + 1);
 
-	parse_escapes(dest, string, len, 'n', '\n');
+	/* sed recognizes \n */
 	/* GNU sed also recognizes \t and \r */
-	parse_escapes(dest, dest, strlen(dest), 't', '\t');
-	parse_escapes(dest, dest, strlen(dest), 'r', '\r');
+	for (s = "\nn\tt\rr"; *s; s += 2) {
+		parse_escapes(dest, string, len, s[1], s[0]);
+		string = dest;
+		len = strlen(dest);
+	}
 	return dest;
 }
 
-- 
1.7.3.4



More information about the busybox-cvs mailing list