Patch by Rob Landley, fix "newline after edit command"
authorGlenn L McGrath <bug1@ihug.co.nz>
Wed, 1 Oct 2003 06:45:11 +0000 (06:45 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Wed, 1 Oct 2003 06:45:11 +0000 (06:45 -0000)
editors/sed.c

index 6452a321c89fb16e0fda0ff722c1abe133c2f989..3d6d72c6873b783d35713b3947fac7541baefe40 100644 (file)
@@ -176,8 +176,8 @@ static void parse_escapes(char *dest, const char *string, int len, char from, ch
 
        while(i<len) {
                if(string[i] == '\\') {
-                       if(string[i+1] == from) {
-                               *(dest++) = to;
+                       if(!to || string[i+1] == from) {
+                               *(dest++) = to ? to : string[i+1];
                                i+=2;
                                continue;
                        } else *(dest++)=string[i++];
@@ -403,6 +403,7 @@ static char *parse_cmd_args(sed_cmd_t *sed_cmd, char *cmdstr)
                                ("only a beginning address can be specified for edit commands");
                while(isspace(*cmdstr)) cmdstr++;
                sed_cmd->string = bb_xstrdup(cmdstr);
+               parse_escapes(sed_cmd->string,sed_cmd->string,strlen(cmdstr),0,0);
                cmdstr += strlen(cmdstr);
        /* handle file cmds: (r)ead */
        } else if(strchr("rw", sed_cmd->cmd)) {