Changed bb_regcomp to xregcomp and #if 0'ed out destroy_cmd_strs in sed.c
authorMark Whitley <markw@lineo.com>
Wed, 12 Jul 2000 23:35:21 +0000 (23:35 -0000)
committerMark Whitley <markw@lineo.com>
Wed, 12 Jul 2000 23:35:21 +0000 (23:35 -0000)
(maybe I'll remove it later).

editors/sed.c
findutils/grep.c
grep.c
internal.h
sed.c
utility.c

index 9e4a002d8f34f7b2b5ad8b5e405a92cee2817b87..21f8681670251f25c3c8945af53fccfc7166360c 100644 (file)
@@ -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) {
index dec365f05be675baf00d34a01e36db85dc91dba0..77b510002d9bcb04d0b41de036b08890e2c6a019 100644 (file)
@@ -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(&regex, argv[optind], reflags) != 0)
-               exit(1);
+       xregcomp(&regex, 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 dec365f05be675baf00d34a01e36db85dc91dba0..77b510002d9bcb04d0b41de036b08890e2c6a019 100644 (file)
--- 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(&regex, argv[optind], reflags) != 0)
-               exit(1);
+       xregcomp(&regex, 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 */
index 44c2e81ac90be45f0c41c0a45777229a95ca4a47..e636e18cebc7cf3f9af2ac2589dc6d6b3741c5f9 100644 (file)
@@ -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 9e4a002d8f34f7b2b5ad8b5e405a92cee2817b87..21f8681670251f25c3c8945af53fccfc7166360c 100644 (file)
--- 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) {
index 6d1e1d4bbc40b3e08c0de14373b920f407e12be1..61f67618d80cad705bd1a84636b2b613b3bb0b26 100644 (file)
--- 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