diff options
author | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-06-04 20:41:13 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin.dahyabhai@pobox.com> | 2008-06-04 20:41:13 -0400 |
commit | 891eded832304d51fdae8320c38f76fddf5614f1 (patch) | |
tree | c069927c9f9623f4622a4ef1f6bf04b6febc66bf | |
parent | 47a426f83856c487f5a71922d41b79051893007d (diff) | |
download | slapi-nis-891eded832304d51fdae8320c38f76fddf5614f1.tar.gz slapi-nis-891eded832304d51fdae8320c38f76fddf5614f1.tar.xz slapi-nis-891eded832304d51fdae8320c38f76fddf5614f1.zip |
- don't require that the caller be expecting all of the defaults
-rw-r--r-- | src/defaults.c | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/src/defaults.c b/src/defaults.c index 0ec5f25..b9c20fb 100644 --- a/src/defaults.c +++ b/src/defaults.c @@ -76,26 +76,48 @@ defaults_get_map_config(const char *mapname, const char ***referred) { unsigned int i; - *filter = DEFAULT_ENTRY_FILTER; - *key_format = DEFAULT_KEY_FORMAT; - *value_format = DEFAULT_VALUE_FORMAT; + if (filter) { + *filter = DEFAULT_ENTRY_FILTER; + } + if (key_format) { + *key_format = DEFAULT_KEY_FORMAT; + } + if (value_format) { + *value_format = DEFAULT_VALUE_FORMAT; + } for (i = 0; i < sizeof(config) / sizeof(config[0]); i++) { switch (config[i].config_match) { case config_exact: if (strcmp(config[i].map, mapname) == 0) { - *filter = config[i].filter; - *key_format = config[i].key_format; - *value_format = config[i].value_format; - *referred = (const char **) config[i].referred; + if (filter) { + *filter = config[i].filter; + } + if (key_format) { + *key_format = config[i].key_format; + } + if (value_format) { + *value_format = config[i].value_format; + } + if (referred) { + *referred = (const char **) config[i].referred; + } } break; case config_glob: if (fnmatch(config[i].map, mapname, FNM_NOESCAPE) == 0) { - *filter = config[i].filter; - *key_format = config[i].key_format; - *value_format = config[i].value_format; - *referred = (const char **) config[i].referred; + if (filter) { + *filter = config[i].filter; + } + if (key_format) { + *key_format = config[i].key_format; + } + if (value_format) { + *value_format = config[i].value_format; + } + if (referred) { + *referred = (const char **) config[i].referred; + } } break; } |