diff options
-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 22d642e..bf8ca1b 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) } while (isdigit(my_str[idx])); my_str[idx] = 0; *line = atoi(my_str); - *regex = NULL; } else if (my_str[idx] == '$') { *line = -1; - *regex = NULL; idx++; } else if (my_str[idx] == '/') { @@ -202,6 +200,7 @@ static int get_address(const char *str, int *line, regex_t **regex) my_str[idx] = '\0'; *regex = (regex_t *)xmalloc(sizeof(regex_t)); xregcomp(*regex, my_str+1, REG_NEWLINE); + idx++; /* so it points to the next character after the last '/' */ } else { 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) } while (isdigit(my_str[idx])); my_str[idx] = 0; *line = atoi(my_str); - *regex = NULL; } else if (my_str[idx] == '$') { *line = -1; - *regex = NULL; idx++; } else if (my_str[idx] == '/') { @@ -202,6 +200,7 @@ static int get_address(const char *str, int *line, regex_t **regex) my_str[idx] = '\0'; *regex = (regex_t *)xmalloc(sizeof(regex_t)); xregcomp(*regex, my_str+1, REG_NEWLINE); + idx++; /* so it points to the next character after the last '/' */ } else { fprintf(stderr, "sed.c:get_address: no address found in string\n"); |