jfb2 writes in Bug 119:
[oweals/busybox.git] / findutils / grep.c
index 4e7e15920abfaa4989f33995e2070b29330df315..9b26add9a465df6aa19caa7a7fe2f4a0f1873984 100644 (file)
 
 /* options */
 #define GREP_OPTS "lnqvscFiHhe:f:L"
-#define GREP_OPT_l 1
+#define GREP_OPT_l (1<<0)
 static char print_files_with_matches;
-#define GREP_OPT_n 2
+#define GREP_OPT_n (1<<1)
 static char print_line_num;
-#define GREP_OPT_q 4
+#define GREP_OPT_q (1<<2)
 static char be_quiet;
-#define GREP_OPT_v 8
+#define GREP_OPT_v (1<<3)
 typedef char invert_search_t;
 static invert_search_t invert_search;
-#define GREP_OPT_s 16
+#define GREP_OPT_s (1<<4)
 static char suppress_err_msgs;
-#define GREP_OPT_c 32
+#define GREP_OPT_c (1<<5)
 static char print_match_counts;
-#define GREP_OPT_F 64
+#define GREP_OPT_F (1<<6)
 static char fgrep_flag;
-#define GREP_OPT_i 128
-#define GREP_OPT_H 256
-#define GREP_OPT_h 512
-#define GREP_OPT_e 1024
-#define GREP_OPT_f 2048
-#define GREP_OPT_L 4096
+#define GREP_OPT_i (1<<7)
+#define GREP_OPT_H (1<<8)
+#define GREP_OPT_h (1<<9)
+#define GREP_OPT_e (1<<10)
+#define GREP_OPT_f (1<<11)
+#define GREP_OPT_L (1<<12)
 static char print_files_without_matches;
 #ifdef CONFIG_FEATURE_GREP_CONTEXT
 #define GREP_OPT_CONTEXT "A:B:C"
-#define GREP_OPT_A 8192
-#define GREP_OPT_B 16384
-#define GREP_OPT_C 32768
-#define GREP_OPT_E 65536
+#define GREP_OPT_A (1<<13)
+#define GREP_OPT_B (1<<14)
+#define GREP_OPT_C (1<<15)
+#define GREP_OPT_E (1<<16)
 #else
 #define GREP_OPT_CONTEXT ""
-#define GREP_OPT_E 8192
+#define GREP_OPT_E (1<<13)
 #endif
 #ifdef CONFIG_FEATURE_GREP_EGREP_ALIAS
 # define OPT_EGREP "E"
@@ -98,7 +98,7 @@ static void print_line(const char *line, int linenum, char decoration)
        }
        last_line_printed = linenum;
 #endif
-       if (print_filename)
+       if (print_filename > 0)
                printf("%s%c", cur_file, decoration);
        if (print_line_num)
                printf("%i%c", linenum, decoration);
@@ -219,7 +219,7 @@ static int grep_file(FILE *file)
 
        /* grep -c: print [filename:]count, even if count is zero */
        if (print_match_counts) {
-               if (print_filename)
+               if (print_filename > 0)
                        printf("%s:", cur_file);
                    printf("%d\n", nmatches);
        }
@@ -249,9 +249,9 @@ static void load_regexes_from_file(llist_t *fopt)
                fopt = cur->link;
                free(cur);
                f = bb_xfopen(ffile, "r");
-       while ((line = bb_get_chomped_line_from_file(f)) != NULL) {
-               pattern_head = llist_add_to(pattern_head, line);
-       }
+               while ((line = bb_get_chomped_line_from_file(f)) != NULL) {
+                       pattern_head = llist_add_to(pattern_head, line);
+               }
        }
 }
 
@@ -261,7 +261,7 @@ extern int grep_main(int argc, char **argv)
        FILE *file;
        int matched;
        unsigned long opt;
-       llist_t *fopt;
+       llist_t *fopt = NULL;
 
        /* do normal option parsing */
 #ifdef CONFIG_FEATURE_GREP_CONTEXT