diff options
author | Mark Whitley <markw@lineo.com> | 2000-07-13 22:52:02 +0000 |
---|---|---|
committer | Mark Whitley <markw@lineo.com> | 2000-07-13 22:52:02 +0000 |
commit | 496e33feeb2d0eb4aa2bf3cc2f34f6e29987c1bd (patch) | |
tree | b1647a50d97a31c8e68cfc6e92d68ca236805db9 | |
parent | 4f7fe77d07294586687382597d04fb46a24092e5 (diff) | |
download | busybox-w32-496e33feeb2d0eb4aa2bf3cc2f34f6e29987c1bd.tar.gz busybox-w32-496e33feeb2d0eb4aa2bf3cc2f34f6e29987c1bd.tar.bz2 busybox-w32-496e33feeb2d0eb4aa2bf3cc2f34f6e29987c1bd.zip |
Fixed bug where sed '/foo/p' was printing "invalid command".
-rw-r--r-- | editors/sed.c | 3 | ||||
-rw-r--r-- | sed.c | 3 |
2 files changed, 2 insertions, 4 deletions
diff --git a/editors/sed.c b/editors/sed.c index 22d642ee9..bf8ca1b29 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -188,11 +188,9 @@ static int get_address(const char *str, int *line, regex_t **regex) | |||
188 | } while (isdigit(my_str[idx])); | 188 | } while (isdigit(my_str[idx])); |
189 | my_str[idx] = 0; | 189 | my_str[idx] = 0; |
190 | *line = atoi(my_str); | 190 | *line = atoi(my_str); |
191 | *regex = NULL; | ||
192 | } | 191 | } |
193 | else if (my_str[idx] == '$') { | 192 | else if (my_str[idx] == '$') { |
194 | *line = -1; | 193 | *line = -1; |
195 | *regex = NULL; | ||
196 | idx++; | 194 | idx++; |
197 | } | 195 | } |
198 | else if (my_str[idx] == '/') { | 196 | else if (my_str[idx] == '/') { |
@@ -202,6 +200,7 @@ static int get_address(const char *str, int *line, regex_t **regex) | |||
202 | my_str[idx] = '\0'; | 200 | my_str[idx] = '\0'; |
203 | *regex = (regex_t *)xmalloc(sizeof(regex_t)); | 201 | *regex = (regex_t *)xmalloc(sizeof(regex_t)); |
204 | xregcomp(*regex, my_str+1, REG_NEWLINE); | 202 | xregcomp(*regex, my_str+1, REG_NEWLINE); |
203 | idx++; /* so it points to the next character after the last '/' */ | ||
205 | } | 204 | } |
206 | else { | 205 | else { |
207 | fprintf(stderr, "sed.c:get_address: no address found in string\n"); | 206 | fprintf(stderr, "sed.c:get_address: no address found in string\n"); |
@@ -188,11 +188,9 @@ static int get_address(const char *str, int *line, regex_t **regex) | |||
188 | } while (isdigit(my_str[idx])); | 188 | } while (isdigit(my_str[idx])); |
189 | my_str[idx] = 0; | 189 | my_str[idx] = 0; |
190 | *line = atoi(my_str); | 190 | *line = atoi(my_str); |
191 | *regex = NULL; | ||
192 | } | 191 | } |
193 | else if (my_str[idx] == '$') { | 192 | else if (my_str[idx] == '$') { |
194 | *line = -1; | 193 | *line = -1; |
195 | *regex = NULL; | ||
196 | idx++; | 194 | idx++; |
197 | } | 195 | } |
198 | else if (my_str[idx] == '/') { | 196 | else if (my_str[idx] == '/') { |
@@ -202,6 +200,7 @@ static int get_address(const char *str, int *line, regex_t **regex) | |||
202 | my_str[idx] = '\0'; | 200 | my_str[idx] = '\0'; |
203 | *regex = (regex_t *)xmalloc(sizeof(regex_t)); | 201 | *regex = (regex_t *)xmalloc(sizeof(regex_t)); |
204 | xregcomp(*regex, my_str+1, REG_NEWLINE); | 202 | xregcomp(*regex, my_str+1, REG_NEWLINE); |
203 | idx++; /* so it points to the next character after the last '/' */ | ||
205 | } | 204 | } |
206 | else { | 205 | else { |
207 | fprintf(stderr, "sed.c:get_address: no address found in string\n"); | 206 | fprintf(stderr, "sed.c:get_address: no address found in string\n"); |