X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/1e97629da2ea6c1ae328912ba82d4595eb08b700..f2d306b4d82e76180b747a89fa7fd99cd5d253bc:/server/options.c diff --git a/server/options.c b/server/options.c index 9185610..68f8271 100644 --- a/server/options.c +++ b/server/options.c @@ -83,7 +83,7 @@ static void option__readfile(const char *name) { char **vec, *buffer; struct read_options_state cs; - if(!(cs.name = mx_find(name))) + if(!(cs.name = mx_find(name, 1/*report*/))) return; if(!(fp = fopen(cs.name, "r"))) fatal(errno, "error opening %s", cs.name); @@ -153,24 +153,26 @@ void option_set(const char *name, const char *value) { */ const char *option_label(const char *key) { const char *label; + char **lptr; option__init(); - if(!(label = *(char **)hash_find(labels, key))) { - /* No label found */ - if(!strncmp(key, "images.", 7)) { - static const char *url_static; - /* images.X defaults to X.png */ - - if(!url_static) - url_static = option_label("url.static"); - byte_xasprintf((char **)&label, "%s%s.png", url_static, key + 7); - } else if((label = strrchr(key, '.'))) - /* X.Y defaults to Y */ - ++label; - else - /* otherwise default to label name */ - label = key; - } + lptr = hash_find(labels, key); + if(lptr) + return *lptr; + /* No label found */ + if(!strncmp(key, "images.", 7)) { + static const char *url_static; + /* images.X defaults to X.png */ + + if(!url_static) + url_static = option_label("url.static"); + byte_xasprintf((char **)&label, "%s%s.png", url_static, key + 7); + } else if((label = strrchr(key, '.'))) + /* X.Y defaults to Y */ + ++label; + else + /* otherwise default to label name */ + label = key; return label; }