Browse Source

* config.[ch]: f2b_config_section_append() : add 'replace' flag

master
Alex 'AdUser' Z 8 years ago
parent
commit
a55ab0a382
  1. 6
      src/config.c
  2. 2
      src/config.h

6
src/config.c

@ -134,7 +134,7 @@ f2b_config_section_find(f2b_config_section_t *section, const char *name) {
}
f2b_config_section_t *
f2b_config_section_append(f2b_config_section_t *section, f2b_config_param_t *param) {
f2b_config_section_append(f2b_config_section_t *section, f2b_config_param_t *param, bool replace) {
f2b_config_param_t *prev = NULL;
assert(section != NULL);
@ -147,7 +147,7 @@ f2b_config_section_append(f2b_config_section_t *section, f2b_config_param_t *par
return section;
}
if ((prev = f2b_config_param_find(section->param, param->name)) != NULL) {
if (replace && (prev = f2b_config_param_find(section->param, param->name)) != NULL) {
/* found param with same name */
strncpy(prev->value, param->value, sizeof(prev->value));
free(param);
@ -222,7 +222,7 @@ f2b_config_load(const char *path) {
f2b_log_msg(log_error, "can't parse key/value at line %d: %s", linenum, p);
continue;
}
f2b_config_section_append(section, param);
f2b_config_section_append(section, param, false);
break;
} /* switch */
} /* while */

2
src/config.h

@ -40,7 +40,7 @@ f2b_config_param_t * f2b_config_param_find (f2b_config_param_t *param, const ch
f2b_config_section_t * f2b_config_section_create(const char *line);
f2b_config_section_t * f2b_config_section_find (f2b_config_section_t *s, const char *name);
f2b_config_section_t * f2b_config_section_append(f2b_config_section_t *s, f2b_config_param_t *p);
f2b_config_section_t * f2b_config_section_append(f2b_config_section_t *s, f2b_config_param_t *p, bool replace);
f2b_config_t * f2b_config_load (const char *path);
void f2b_config_free (f2b_config_t *c);

Loading…
Cancel
Save