From eace71293190208f443973a9e385ca69da504863 Mon Sep 17 00:00:00 2001 From: Steven Schubiger Date: Wed, 25 Mar 2020 23:22:28 +0100 Subject: assign_conf(): reduce code duplication --- colorize.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/colorize.c b/colorize.c index 1638f5f..50011e2 100644 --- a/colorize.c +++ b/colorize.c @@ -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"); } -- cgit v1.2.3