work in progress...
[oweals/busybox.git] / regexp.c
index 164f880374c8a599d61d92dc148760f72411b6b0..b264ffb6fd3bba6c91736ec4a6fe26fe29e6fafc 100644 (file)
--- a/regexp.c
+++ b/regexp.c
@@ -7,7 +7,7 @@
 #include <ctype.h>
 
 
-#if ( defined BB_GREP || defined BB_FIND  || defined BB_SED)
+#if ( defined BB_GREP || defined BB_SED)
 
 /* This also tries to find a needle in a haystack, but uses
  * real regular expressions....  The fake regular expression
@@ -50,7 +50,6 @@ extern int replace_match(char *haystack, char *needle, char *newNeedle, int igno
        } while (regexec(re, s, FALSE, ignoreCase) == TRUE);
         /* copy stuff from after the match */
        while ( (*d++ = *s++) ) {}
-       d[-1] = '\n';
        d[0] = '\0';
        strcpy(haystack, buf);
     }
@@ -99,7 +98,9 @@ extern int replace_match(char *haystack, char *needle, char *newNeedle, int igno
 
 
 static char *previous; /* the previous regexp, used when null regexp is given */
+#if defined BB_SED
 static char *previous1;        /* a copy of the text from the previous substitution for regsub()*/
+#endif
 
 
 /* These are used to classify or recognize meta-characters */
@@ -136,7 +137,7 @@ static char *retext;        /* points to the text being compiled */
 
 /* error-handling stuff */
 jmp_buf        errorhandler;
-#define FAIL(why)      fprintf(stderr, why); longjmp(errorhandler, 1)
+#define FAIL(why)  do {fprintf(stderr, why); longjmp(errorhandler, 1);} while (0)
 
 
 
@@ -505,7 +506,7 @@ extern regexp *regcomp(char* text)
        int             token;
        int             peek;
        char            *build;
-       regexp          *re;
+       regexp          *re; // Ignore compiler whining.  If we longjmp, we don't use re anymore.
 
 
        /* prepare for error handling */