]> git.refcnt.org Git - colorize.git/commitdiff
Quote original unrecognized color name
authorSteven Schubiger <stsc@refcnt.org>
Sat, 3 Aug 2013 17:55:47 +0000 (19:55 +0200)
committerSteven Schubiger <stsc@refcnt.org>
Sat, 3 Aug 2013 17:55:47 +0000 (19:55 +0200)
This fixes the name being quoted for bold colors:

[sts@kronos colorize-eaf4e19]$ ./colorize Greeen
./colorize: foreground color 'greeen' not recognized

colorize.c

index 3b80c9e9ab5382a5c7164f8f31216d277f12991c..a25ec59b19636b0e64eca49d2fe615406f3c18a8 100644 (file)
@@ -183,7 +183,7 @@ static void process_options (unsigned int, char **, bool *, const struct color *
 static void process_file_option (const char *, const char **, FILE **);
 static void read_print_stream (bool, const struct color **, const char *, FILE *);
 static void find_color_entries (struct color_name **, const struct color **);
-static void find_color_entry (const char *const, unsigned int, const struct color **);
+static void find_color_entry (const struct color_name *, unsigned int, const struct color **);
 static void print_line (const struct color **, bool, const char * const, unsigned int);
 static void print_clean (const char *);
 static void print_free_offsets (const char *, char ***, unsigned int);
@@ -548,7 +548,12 @@ process_options (unsigned int arg_cnt, char **option_strings, bool *bold, const
     free_color_names (color_names);
 
     if (!colors[FOREGROUND]->code && colors[BACKGROUND] && colors[BACKGROUND]->code)
-      find_color_entry ("default", FOREGROUND, colors);
+      {
+        struct color_name color_name;
+        color_name.name = color_name.orig = "default";
+
+        find_color_entry (&color_name, FOREGROUND, colors);
+      }
 
     process_file_option (file_string, file, stream);
 }
@@ -705,12 +710,12 @@ find_color_entries (struct color_name **color_names, const struct color **colors
             colors[index] = (struct color *)&color_entries[i];
           }
         else
-          find_color_entry (color_name, index, colors);
+          find_color_entry (color_names[index], index, colors);
       }
 }
 
 static void
-find_color_entry (const char *const color_name, unsigned int index, const struct color **colors)
+find_color_entry (const struct color_name *color_name, unsigned int index, const struct color **colors)
 {
     bool found = false;
     unsigned int i;
@@ -719,14 +724,14 @@ find_color_entry (const char *const color_name, unsigned int index, const struct
     const struct color *const color_entries = tables[index].entries;
 
     for (i = 0; i < count; i++)
-      if (streq (color_name, color_entries[i].name))
+      if (streq (color_name->name, color_entries[i].name))
         {
           colors[index] = (struct color *)&color_entries[i];
           found = true;
           break;
         }
     if (!found)
-      vfprintf_fail (formats[FMT_COLOR], tables[index].desc, color_name, "not recognized");
+      vfprintf_fail (formats[FMT_COLOR], tables[index].desc, color_name->orig, "not recognized");
 }
 
 static void