From 496e33feeb2d0eb4aa2bf3cc2f34f6e29987c1bd Mon Sep 17 00:00:00 2001 From: Mark Whitley Date: Thu, 13 Jul 2000 22:52:02 +0000 Subject: [PATCH] Fixed bug where sed '/foo/p' was printing "invalid command". --- editors/sed.c | 3 +-- 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) } 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"); diff --git a/sed.c b/sed.c index 22d642ee9..bf8ca1b29 100644 --- a/sed.c +++ b/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");