]> git.refcnt.org Git - colorize.git/commitdiff
Move conf file path code to a function
authorSteven Schubiger <stsc@refcnt.org>
Sat, 28 Mar 2020 21:33:25 +0000 (22:33 +0100)
committerSteven Schubiger <stsc@refcnt.org>
Sat, 28 Mar 2020 21:33:25 +0000 (22:33 +0100)
colorize.c

index c4319331d27e2dbb4ffa3f06f2e52206f1b0945d..fc5bd90c3ebe78d79de99e3d1715ccc3cd9ca22d 100644 (file)
@@ -285,6 +285,7 @@ static const char *program_name;
 static void print_tstamp (FILE *);
 #endif
 static void process_opts (int, char **, char **);
+static void conf_file_path (char **);
 static void process_opt_attr (const char *, const bool);
 static void write_attr (const struct attr *, unsigned int *, const bool);
 static void process_opt_exclude_random (const char *, const bool);
@@ -379,25 +380,7 @@ main (int argc, char **argv)
     conf_file = to_str (CONF_FILE_TEST);
 #elif !defined(TEST)
     if (conf_file == NULL)
-      {
-        uid_t uid;
-        struct passwd *passwd;
-        size_t size;
-
-        uid = getuid ();
-        errno = 0;
-        if ((passwd = getpwuid (uid)) == NULL)
-          {
-            if (errno == 0)
-              vfprintf_diag ("password file entry for uid %lu not found", (unsigned long)uid);
-            else
-              perror ("getpwuid");
-            exit (EXIT_FAILURE);
-          }
-        size = strlen (passwd->pw_dir) + 1 + strlen (CONF_FILE) + 1;
-        conf_file = xmalloc (size);
-        snprintf (conf_file, size, "%s/%s", passwd->pw_dir, CONF_FILE);
-      }
+      conf_file_path (&conf_file);
     else
       {
         char *s;
@@ -555,6 +538,31 @@ process_opts (int argc, char **argv, char **conf_file)
       }
 }
 
+static void
+conf_file_path (char **conf_file)
+{
+    char *path;
+    uid_t uid;
+    struct passwd *passwd;
+    size_t size;
+
+    uid = getuid ();
+    errno = 0;
+    if ((passwd = getpwuid (uid)) == NULL)
+      {
+        if (errno == 0)
+          vfprintf_diag ("password file entry for uid %lu not found", (unsigned long)uid);
+        else
+          perror ("getpwuid");
+        exit (EXIT_FAILURE);
+      }
+    size = strlen (passwd->pw_dir) + 1 + strlen (CONF_FILE) + 1;
+    path = xmalloc (size);
+    snprintf (path, size, "%s/%s", passwd->pw_dir, CONF_FILE);
+
+    *conf_file = path;
+}
+
 static void
 process_opt_attr (const char *p, const bool is_opt)
 {