diff options
| -rw-r--r-- | colorize.c | 25 | 
1 files changed, 9 insertions, 16 deletions
| @@ -745,29 +745,22 @@ parse_conf (const char *conf_file, struct conf *config)      fclose (conf);  } +#define ASSIGN_CONF(str,val) do { \ +    free (str);                   \ +    str = val;                    \ +} while (false) +  static void  assign_conf (const char *conf_file, struct conf *config, const char *cfg, char *val)  {      if (streq (cfg, "attr")) -      { -        free (config->attr); -        config->attr = val; -      } +      ASSIGN_CONF (config->attr, val);      else if (streq (cfg, "color")) -      { -        free (config->color); -        config->color = val; -      } +      ASSIGN_CONF (config->color, val);      else if (streq (cfg, "exclude-random")) -      { -        free (config->exclude_random); -        config->exclude_random = val; -      } +      ASSIGN_CONF (config->exclude_random, val);      else if (streq (cfg, "omit-color-empty")) -      { -        free (config->omit_color_empty); -        config->omit_color_empty = val; -      } +      ASSIGN_CONF (config->omit_color_empty, val);      else        vfprintf_fail (formats[FMT_CONF], conf_file, cfg, "not recognized");  } | 
