diff options
| author | 2020-03-28 22:33:25 +0100 | |
|---|---|---|
| committer | 2020-03-28 22:33:25 +0100 | |
| commit | 2f988cc3c75c810b1583f26c80b0e6025b9f13e1 (patch) | |
| tree | 8244b4ffb617637d671d3f2d33016c95681d2149 /colorize.c | |
| parent | c4524ce6e98aca85c74e53c51494f3e38787480a (diff) | |
| download | colorize-2f988cc3c75c810b1583f26c80b0e6025b9f13e1.tar.gz colorize-2f988cc3c75c810b1583f26c80b0e6025b9f13e1.tar.bz2 | |
Move conf file path code to a function
Diffstat (limited to 'colorize.c')
| -rw-r--r-- | colorize.c | 46 | 
1 files changed, 27 insertions, 19 deletions
| @@ -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; @@ -556,6 +539,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)  {      /* If attributes are added to this "list", also increase MAX_ATTRIBUTE_CHARS!  */ | 
