]> git.refcnt.org Git - colorize.git/blobdiff - colorize.c
Omit declaration of optind/optarg
[colorize.git] / colorize.c
index 88de5fbae3bef57398e0b8fd9df3ada996fa7f0a..a1e13983bc24a6563cdc10927d048d8d4fc2da7f 100644 (file)
@@ -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))