Renamed all the global variables with the "global" prefix.
authorFrancois Fleuret <francois@fleuret.org>
Sat, 25 Oct 2014 22:30:31 +0000 (00:30 +0200)
committerFrancois Fleuret <francois@fleuret.org>
Sat, 25 Oct 2014 22:30:31 +0000 (00:30 +0200)
selector.c

index 0efdd1c..94cd99e 100644 (file)
 
 /* Yeah, global variables! */
 
-int nb_lines_max = 1000;
-char pattern_separator = ';';
-char label_separator = '\0';
-int output_to_vt_buffer = 0;
-int add_control_qs = 0;
-int with_colors = 1;
-int zsh_history = 0;
-int bash_history = 0;
-int inverse_order = 0;
-int remove_duplicates = 0;
-int use_regexp = 0;
-int case_sensitive = 0;
-char *title = 0;
-int error_flash = 0;
-int upper_caps_makes_case_sensitive = 0;
-int show_long_lines = 0;
-int show_hits = 0;
-
-int attr_modeline, attr_focus_line, attr_error, attr_hits;
+int global_nb_lines_max = 1000;
+char global_pattern_separator = ';';
+char global_label_separator = '\0';
+int global_output_to_vt_buffer = 0;
+int global_add_control_qs = 0;
+int global_with_colors = 1;
+int global_zsh_history = 0;
+int global_bash_history = 0;
+int global_inverse_order = 0;
+int global_remove_duplicates = 0;
+int global_use_regexp = 0;
+int global_case_sensitive = 0;
+char *global_title = 0;
+int global_error_flash = 0;
+int global_upper_caps_makes_case_sensitive = 0;
+int global_show_long_lines = 0;
+int global_show_hits = 0;
+
+int global_attr_modeline, global_attr_focus_line, global_attr_error, global_attr_hits;
 
 /********************************************************************/
 
@@ -159,7 +159,7 @@ void str_to_positive_integers(char *string, int *values, int nb) {
 }
 
 void error_feedback() {
-  if(error_flash) {
+  if(global_error_flash) {
     flash();
   } else {
     beep();
@@ -461,7 +461,7 @@ void initialize_matcher(struct matcher *matcher,
     matcher->regexp_error = 0;
     matcher->nb_patterns = 1;
 
-    if(upper_caps_makes_case_sensitive) {
+    if(global_upper_caps_makes_case_sensitive) {
       for(s = pattern; *s && !case_sensitive; s++) {
         case_sensitive = (*s >= 'A' && *s <= 'Z');
       }
@@ -470,7 +470,7 @@ void initialize_matcher(struct matcher *matcher,
     matcher->case_sensitive = case_sensitive;
 
     for(s = pattern; *s; s++) {
-      if(*s == pattern_separator) {
+      if(*s == global_pattern_separator) {
         matcher->nb_patterns++;
       }
     }
@@ -486,7 +486,7 @@ void initialize_matcher(struct matcher *matcher,
     n = 0;
     last_pattern_start = matcher->splitted_patterns;
     for(t = matcher->splitted_patterns; n < matcher->nb_patterns; t++) {
-      if(*t == pattern_separator || *t == '\0') {
+      if(*t == global_pattern_separator || *t == '\0') {
         *t = '\0';
         matcher->patterns[n++] = last_pattern_start;
         last_pattern_start = t + 1;
@@ -584,12 +584,12 @@ void print_string_with_switches(char *buffer, int line_width,
         next = switches[2 * w];
         if(next > line_width) { next = line_width; }
         if(next > current) { addnstr(buffer + current,  next - current); }
-        attron(attr_hits);
+        attron(global_attr_hits);
         current = next;
         next = switches[2 * w + 1];
         if(next > line_width) { next = line_width; }
         if(next > current) { addnstr(buffer + current,  next - current); }
-        attroff(attr_hits);
+        attroff(global_attr_hits);
         current = next;
       }
     }
@@ -627,9 +627,9 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
   int cursor_x;
   int nb_switches;
 
-  initialize_matcher(&matcher, use_regexp, case_sensitive, pattern);
+  initialize_matcher(&matcher, global_use_regexp, global_case_sensitive, pattern);
 
-  if(show_hits) {
+  if(global_show_hits) {
     if(matcher.nb_patterns >= 0) {
       switches = safe_malloc(sizeof(int) * matcher.nb_patterns * 2);
     } else {
@@ -651,9 +651,9 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
   /* If the regexp is erroneous, print a message saying so */
 
   if(matcher.regexp_error) {
-    attron(attr_error);
+    attron(global_attr_error);
     addnstr("Regexp syntax error", console_width);
-    attroff(attr_error);
+    attroff(global_attr_error);
   }
 
   /* Else, and we do have lines to select from, find a visible line. */
@@ -744,30 +744,30 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
           /* Highlight the highlighted line ... */
 
           if(l == new_focus_line) {
-            if(show_long_lines && k >= console_width) {
-              attron(attr_focus_line);
+            if(global_show_long_lines && k >= console_width) {
+              attron(global_attr_focus_line);
               print_string_with_switches(buffer, console_width-1,
                                          nb_switches / 2, switches);
-              /* attron(attr_error); */
+              /* attron(global_attr_error); */
               addnstr("\\", 1);
-              /* attroff(attr_error); */
-              attroff(attr_focus_line);
+              /* attroff(global_attr_error); */
+              attroff(global_attr_focus_line);
             } else {
               while(k < console_width) {
                 buffer[k++] = ' ';
               }
-              attron(attr_focus_line);
+              attron(global_attr_focus_line);
               print_string_with_switches(buffer, k,
                                          nb_switches / 2, switches);
-              attroff(attr_focus_line);
+              attroff(global_attr_focus_line);
             }
           } else {
-            if(show_long_lines && k >= console_width) {
+            if(global_show_long_lines && k >= console_width) {
               print_string_with_switches(buffer, console_width-1,
                                          nb_switches / 2, switches);
-              attron(attr_focus_line);
+              attron(global_attr_focus_line);
               addnstr("\\", 1);
-              attroff(attr_focus_line);
+              attroff(global_attr_focus_line);
             } else {
               if(k < console_width) {
                 buffer[k++] = '\n';
@@ -793,18 +793,18 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
     *displayed_focus_line = new_focus_line;
 
     if(nb_printed_lines == 0) {
-      attron(attr_error);
+      attron(global_attr_error);
       addnstr("No selection", console_width);
-      attroff(attr_error);
+      attroff(global_attr_error);
     }
   }
 
   /* Else, print a message saying that there are no lines to select from */
 
   else {
-    attron(attr_error);
+    attron(global_attr_error);
     addnstr("Empty choice", console_width);
-    attroff(attr_error);
+    attroff(global_attr_error);
   }
 
   clrtobot();
@@ -813,7 +813,7 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
 
   move(0, 0);
 
-  attron(attr_modeline);
+  attron(global_attr_modeline);
 
   for(k = 0; k < console_width; k++) buffer[k] = ' ';
   buffer[console_width] = '\0';
@@ -826,10 +826,10 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
 
   cursor_x = 0;
 
-  if(title) {
-    addstr(title);
+  if(global_title) {
+    addstr(global_title);
     addstr(" ");
-    cursor_x += strlen(title) + 1;
+    cursor_x += strlen(global_title) + 1;
   }
 
   sprintf(buffer, "%d/%d ", nb_printed_lines, nb_lines);
@@ -848,14 +848,14 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
   /* Add a few info about the mode we are in (regexp and/or case
      sensitive) */
 
-  if(use_regexp || matcher.case_sensitive) {
+  if(global_use_regexp || matcher.case_sensitive) {
     addstr(" [");
-    if(use_regexp) {
+    if(global_use_regexp) {
       addstr("regexp");
     }
 
     if(matcher.case_sensitive) {
-      if(use_regexp) {
+      if(global_use_regexp) {
         addstr(",");
       }
       addstr("case");
@@ -865,7 +865,7 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
 
   move(0, cursor_x);
 
-  attroff(attr_modeline);
+  attroff(global_attr_modeline);
 
   /* We are done */
 
@@ -883,14 +883,14 @@ void store_line(struct hash_table_t *hash_table,
 
   /* Remove the zsh history prefix */
 
-  if(zsh_history && *new_line == ':') {
+  if(global_zsh_history && *new_line == ':') {
     while(*new_line && *new_line != ';') new_line++;
     if(*new_line == ';') new_line++;
   }
 
   /* Remove the bash history prefix */
 
-  if(bash_history) {
+  if(global_bash_history) {
     while(*new_line == ' ') new_line++;
     while(*new_line >= '0' && *new_line <= '9') new_line++;
     while(*new_line == ' ') new_line++;
@@ -935,7 +935,7 @@ void read_file(struct hash_table_t *hash_table,
     exit(EXIT_FAILURE);
   }
 
-  if(label_separator == '\n') {
+  if(global_label_separator == '\n') {
     while(*nb_lines < nb_lines_max && fgets(raw_line, BUFFER_SIZE, file)) {
       l = strlen(raw_line);
       fgets(raw_line + l, BUFFER_SIZE - l, file);
@@ -1039,73 +1039,73 @@ int main(int argc, char **argv) {
       break;
 
     case 's':
-      pattern_separator = optarg[0];
+      global_pattern_separator = optarg[0];
       break;
 
     case 'x':
       if(strcmp(optarg, "\\n") == 0) {
-        label_separator = '\n';
+        global_label_separator = '\n';
       } else {
-        label_separator = optarg[0];
+        global_label_separator = optarg[0];
       }
       break;
 
     case 'v':
-      output_to_vt_buffer = 1;
+      global_output_to_vt_buffer = 1;
       break;
 
     case 'w':
-      add_control_qs = 1;
+      global_add_control_qs = 1;
       break;
 
     case 'm':
-      with_colors = 0;
+      global_with_colors = 0;
       break;
 
     case 'q':
-      error_flash = 1;
+      global_error_flash = 1;
       break;
 
     case 'i':
-      inverse_order = 1;
+      global_inverse_order = 1;
       break;
 
     case 'b':
-      bash_history = 1;
+      global_bash_history = 1;
       break;
 
     case 'z':
-      zsh_history = 1;
+      global_zsh_history = 1;
       break;
 
     case 'd':
-      remove_duplicates = 1;
+      global_remove_duplicates = 1;
       break;
 
     case 'e':
-      use_regexp = 1;
+      global_use_regexp = 1;
       break;
 
     case 'a':
-      case_sensitive = 1;
+      global_case_sensitive = 1;
       break;
 
     case 'j':
-      show_long_lines = 1;
+      global_show_long_lines = 1;
       break;
 
     case 'y':
-      show_hits = 1;
+      global_show_hits = 1;
       break;
 
     case 'u':
-      upper_caps_makes_case_sensitive = 1;
+      global_upper_caps_makes_case_sensitive = 1;
       break;
 
     case 't':
-      free(title);
-      title = safe_malloc((strlen(optarg) + 1) * sizeof(char));
-      strcpy(title, optarg);
+      free(global_title);
+      global_title = safe_malloc((strlen(optarg) + 1) * sizeof(char));
+      strcpy(global_title, optarg);
       break;
 
     case 'r':
@@ -1113,7 +1113,7 @@ int main(int argc, char **argv) {
       break;
 
     case 'l':
-      str_to_positive_integers(optarg, &nb_lines_max, 1);
+      str_to_positive_integers(optarg, &global_nb_lines_max, 1);
       break;
 
     case 'c':
@@ -1136,14 +1136,14 @@ int main(int argc, char **argv) {
       /* color_bg_highlight = 3; */
       /* error_flash = 1; */
       /* Same as -b -i -d -v -w */
-      bash_history = 1;
-      inverse_order = 1;
-      remove_duplicates = 1;
-      output_to_vt_buffer = 1;
-      add_control_qs = 1;
+      global_bash_history = 1;
+      global_inverse_order = 1;
+      global_remove_duplicates = 1;
+      global_output_to_vt_buffer = 1;
+      global_add_control_qs = 1;
       bash_histsize = getenv("HISTSIZE");
       if(bash_histsize) {
-        str_to_positive_integers(bash_histsize, &nb_lines_max, 1);
+        str_to_positive_integers(bash_histsize, &global_nb_lines_max, 1);
       }
       break;
 
@@ -1163,12 +1163,12 @@ int main(int argc, char **argv) {
     exit(EXIT_SUCCESS);
   }
 
-  lines = safe_malloc(nb_lines_max * sizeof(char *));
+  lines = safe_malloc(global_nb_lines_max * sizeof(char *));
 
   nb_lines = 0;
 
-  if(remove_duplicates) {
-    hash_table = new_hash_table(nb_lines_max * 10);
+  if(global_remove_duplicates) {
+    hash_table = new_hash_table(global_nb_lines_max * 10);
   } else {
     hash_table = 0;
   }
@@ -1176,7 +1176,7 @@ int main(int argc, char **argv) {
   while(optind < argc) {
     read_file(hash_table,
               argv[optind],
-              nb_lines_max, &nb_lines, lines);
+              global_nb_lines_max, &nb_lines, lines);
     optind++;
   }
 
@@ -1195,7 +1195,7 @@ int main(int argc, char **argv) {
 
   nb_lines = n;
 
-  if(inverse_order) {
+  if(global_inverse_order) {
     for(l = 0; l < nb_lines / 2; l++) {
       char *s = lines[nb_lines - 1 - l];
       lines[nb_lines - 1 - l] = lines[l];
@@ -1215,7 +1215,7 @@ int main(int argc, char **argv) {
     const char *u;
     t = lines[l];
 
-    while(*t && *t != label_separator) {
+    while(*t && *t != global_label_separator) {
       u = unctrl(*t++);
       e += strlen(u);
     }
@@ -1223,7 +1223,7 @@ int main(int argc, char **argv) {
     labels[l] = safe_malloc((e + 1) * sizeof(char));
     t = lines[l];
     s = labels[l];
-    while(*t && *t != label_separator) {
+    while(*t && *t != global_label_separator) {
       u = unctrl(*t++);
       while(*u) { *s++ = *u++; }
     }
@@ -1242,12 +1242,12 @@ int main(int argc, char **argv) {
   /* So that the arrow keys work */
   keypad(stdscr, TRUE);
 
-  attr_error = A_STANDOUT;
-  attr_modeline = A_REVERSE;
-  attr_focus_line = A_STANDOUT;
-  attr_hits = A_BOLD;
+  global_attr_error = A_STANDOUT;
+  global_attr_modeline = A_REVERSE;
+  global_attr_focus_line = A_STANDOUT;
+  global_attr_hits = A_BOLD;
 
-  if(with_colors && has_colors()) {
+  if(global_with_colors && has_colors()) {
 
     start_color();
 
@@ -1263,13 +1263,13 @@ int main(int argc, char **argv) {
     }
 
     init_pair(1, color_fg_modeline, color_bg_modeline);
-    attr_modeline = COLOR_PAIR(1);
+    global_attr_modeline = COLOR_PAIR(1);
 
     init_pair(2, color_fg_highlight, color_bg_highlight);
-    attr_focus_line = COLOR_PAIR(2);
+    global_attr_focus_line = COLOR_PAIR(2);
 
     init_pair(3, COLOR_WHITE, COLOR_RED);
-    attr_error = COLOR_PAIR(3);
+    global_attr_error = COLOR_PAIR(3);
 
   }
 
@@ -1348,11 +1348,11 @@ int main(int argc, char **argv) {
     }
 
     else if(key == '\022') { /* ^R */
-      use_regexp = !use_regexp;
+      global_use_regexp = !global_use_regexp;
     }
 
     else if(key == '\011') { /* ^I */
-      case_sensitive = !case_sensitive;
+      global_case_sensitive = !global_case_sensitive;
     }
 
     else if(key == '\025') { /* ^U */
@@ -1402,16 +1402,16 @@ int main(int argc, char **argv) {
 
     if(displayed_focus_line >= 0 && displayed_focus_line < nb_lines) {
       t = lines[displayed_focus_line];
-      if(label_separator) {
-        while(*t && *t != label_separator) t++;
+      if(global_label_separator) {
+        while(*t && *t != global_label_separator) t++;
         if(*t) t++;
       }
     } else {
       t = 0;
     }
 
-    if(output_to_vt_buffer && t) {
-      inject_into_tty_buffer(t, add_control_qs);
+    if(global_output_to_vt_buffer && t) {
+      inject_into_tty_buffer(t, global_add_control_qs);
     }
 
     if(output_filename[0]) {
@@ -1441,7 +1441,7 @@ int main(int argc, char **argv) {
 
   free(labels);
   free(lines);
-  free(title);
+  free(global_title);
 
   exit(EXIT_SUCCESS);
 }