diff --git a/editors/sed.c b/editors/sed.c index 9e4a002d8..21f868167 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -97,6 +97,7 @@ static const char sed_usage[] = #endif ; +#if 0 static void destroy_cmd_strs() { if (sed_cmds == NULL) @@ -125,6 +126,7 @@ static void destroy_cmd_strs() free(sed_cmds); sed_cmds = NULL; } +#endif /* * trim_str - trims leading and trailing space from a string @@ -199,10 +201,7 @@ static int get_address(const char *str, int *line, regex_t **regex) fatalError("unterminated match expression\n"); my_str[idx] = '\0'; *regex = (regex_t *)xmalloc(sizeof(regex_t)); - if (bb_regcomp(*regex, my_str+1, REG_NEWLINE) != 0) { - free(my_str); - exit(1); - } + xregcomp(*regex, my_str+1, REG_NEWLINE); } else { fprintf(stderr, "sed.c:get_address: no address found in string\n"); @@ -291,10 +290,7 @@ static void parse_cmd_str(struct sed_cmd *sed_cmd, const char *cmdstr) /* compile the regex */ sed_cmd->sub_match = (regex_t *)xmalloc(sizeof(regex_t)); - if (bb_regcomp(sed_cmd->sub_match, match, cflags) != 0) { - free(match); - exit(1); - } + xregcomp(sed_cmd->sub_match, match, cflags); free(match); } } @@ -460,11 +456,13 @@ extern int sed_main(int argc, char **argv) if (argv[1] && (strcmp(argv[1], "--help") == 0)) usage(sed_usage); +#if 0 /* destroy command strings on exit */ if (atexit(destroy_cmd_strs) == -1) { perror("sed"); exit(1); } +#endif /* do normal option parsing */ while ((opt = getopt(argc, argv, "Vhne:f:")) > 0) { diff --git a/findutils/grep.c b/findutils/grep.c index dec365f05..77b510002 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -146,8 +146,7 @@ extern int grep_main(int argc, char **argv) reflags = REG_NOSUB | REG_NEWLINE; if (ignore_case) reflags |= REG_ICASE; - if (bb_regcomp(®ex, argv[optind], reflags) != 0) - exit(1); + xregcomp(®ex, argv[optind], reflags); /* argv[(optind+1)..(argc-1)] should be names of file to grep through. If * there is more than one file to grep, we will print the filenames */ diff --git a/grep.c b/grep.c index dec365f05..77b510002 100644 --- a/grep.c +++ b/grep.c @@ -146,8 +146,7 @@ extern int grep_main(int argc, char **argv) reflags = REG_NOSUB | REG_NEWLINE; if (ignore_case) reflags |= REG_ICASE; - if (bb_regcomp(®ex, argv[optind], reflags) != 0) - exit(1); + xregcomp(®ex, argv[optind], reflags); /* argv[(optind+1)..(argc-1)] should be names of file to grep through. If * there is more than one file to grep, we will print the filenames */ diff --git a/internal.h b/internal.h index 44c2e81ac..e636e18ce 100644 --- a/internal.h +++ b/internal.h @@ -265,7 +265,7 @@ extern int find_real_root_device_name(char* name); extern char *get_line_from_file(FILE *file); extern char process_escape_sequence(char **ptr); extern char *get_last_path_component(char *path); -extern int bb_regcomp(regex_t *preg, const char *regex, int cflags); +extern void xregcomp(regex_t *preg, const char *regex, int cflags); extern void *xmalloc (size_t size); extern char *xstrdup (const char *s); diff --git a/sed.c b/sed.c index 9e4a002d8..21f868167 100644 --- a/sed.c +++ b/sed.c @@ -97,6 +97,7 @@ static const char sed_usage[] = #endif ; +#if 0 static void destroy_cmd_strs() { if (sed_cmds == NULL) @@ -125,6 +126,7 @@ static void destroy_cmd_strs() free(sed_cmds); sed_cmds = NULL; } +#endif /* * trim_str - trims leading and trailing space from a string @@ -199,10 +201,7 @@ static int get_address(const char *str, int *line, regex_t **regex) fatalError("unterminated match expression\n"); my_str[idx] = '\0'; *regex = (regex_t *)xmalloc(sizeof(regex_t)); - if (bb_regcomp(*regex, my_str+1, REG_NEWLINE) != 0) { - free(my_str); - exit(1); - } + xregcomp(*regex, my_str+1, REG_NEWLINE); } else { fprintf(stderr, "sed.c:get_address: no address found in string\n"); @@ -291,10 +290,7 @@ static void parse_cmd_str(struct sed_cmd *sed_cmd, const char *cmdstr) /* compile the regex */ sed_cmd->sub_match = (regex_t *)xmalloc(sizeof(regex_t)); - if (bb_regcomp(sed_cmd->sub_match, match, cflags) != 0) { - free(match); - exit(1); - } + xregcomp(sed_cmd->sub_match, match, cflags); free(match); } } @@ -460,11 +456,13 @@ extern int sed_main(int argc, char **argv) if (argv[1] && (strcmp(argv[1], "--help") == 0)) usage(sed_usage); +#if 0 /* destroy command strings on exit */ if (atexit(destroy_cmd_strs) == -1) { perror("sed"); exit(1); } +#endif /* do normal option parsing */ while ((opt = getopt(argc, argv, "Vhne:f:")) > 0) { diff --git a/utility.c b/utility.c index 6d1e1d4bb..61f67618d 100644 --- a/utility.c +++ b/utility.c @@ -1722,18 +1722,15 @@ char *get_last_path_component(char *path) #endif #if defined BB_GREP || defined BB_SED -int bb_regcomp(regex_t *preg, const char *regex, int cflags) +void xregcomp(regex_t *preg, const char *regex, int cflags) { int ret; if ((ret = regcomp(preg, regex, cflags)) != 0) { int errmsgsz = regerror(ret, preg, NULL, 0); char *errmsg = xmalloc(errmsgsz); regerror(ret, preg, errmsg, errmsgsz); - errorMsg("bb_regcomp: %s\n", errmsg); - free(errmsg); - regfree(preg); + fatalError("bb_regcomp: %s\n", errmsg); } - return ret; } #endif