X-Git-Url: http://git.refcnt.org/?p=colorize.git;a=blobdiff_plain;f=colorize.c;h=8a1cb5236adc3edd3e268afe70acef24eab4a658;hp=88de5fbae3bef57398e0b8fd9df3ada996fa7f0a;hb=HEAD;hpb=52ce0307a0ad0781bc6baa8906245bb5618b8305 diff --git a/colorize.c b/colorize.c index 88de5fb..a1e1398 100644 --- a/colorize.c +++ b/colorize.c @@ -359,8 +359,6 @@ static void vfprintf_fail (const char *, ...); static void stack (struct var_list **, unsigned int *, unsigned int, void *, enum var_type); static void release (struct var_list *, unsigned int, void **); -extern int optind; - int main (int argc, char **argv) { @@ -513,8 +511,6 @@ print_tstamp (FILE *log) print_version (); \ exit (EXIT_SUCCESS); -extern char *optarg; - static void process_opts (int argc, char **argv, char **conf_file) { @@ -588,6 +584,7 @@ conf_file_path (char **conf_file) perror ("getpwuid"); exit (EXIT_FAILURE); } + /* getpwuid() leaks memory */ size = strlen (passwd->pw_dir) + 1 + strlen (CONF_FILE) + 1; path = xmalloc (size); snprintf (path, size, "%s/%s", passwd->pw_dir, CONF_FILE); @@ -858,7 +855,7 @@ print_help (void) const char *code = entry->code; if (code) printf ("\t\t{\033[%s#\033[0m} [%c%c]%s%*s%s\n", - code, toupper (*name), *name, name + 1, 10 - (int)strlen (name), " ", name); + code, toupper ((unsigned char)*name), *name, name + 1, 10 - (int)strlen (name), " ", name); else printf ("\t\t{-} %s%*s%s\n", name, 13 - (int)strlen (name), " ", name); } @@ -1238,7 +1235,7 @@ gather_color_names (const char *color_string, char *attr, struct color_name **co STACK_VAR (color_names[index]->orig); for (ch = color; *ch; ch++) - *ch = tolower (*ch); + *ch = tolower ((unsigned char)*ch); color_names[index]->name = xstrdup (color); STACK_VAR (color_names[index]->name); @@ -1848,7 +1845,7 @@ has_color_name (const char *str, const char *name) assert (strlen (str) > 0); assert (strlen (name) > 0); - if (!(*str == *name || *str == toupper (*name))) + if (!(*str == *name || *str == toupper ((unsigned char)*name))) return false; else if (*(name + 1) != '\0' && !((p = strstr (str + 1, name + 1)) && p == str + 1))