X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/05b3f1f69c02a260bb8315dcedd60d35daf1875c..0720e8ef5c1d10373cd5faedd35eab2bc4e30fbf:/lib/configuration.c diff --git a/lib/configuration.c b/lib/configuration.c index 19a84a2..62ccf1b 100644 --- a/lib/configuration.c +++ b/lib/configuration.c @@ -632,8 +632,10 @@ static const struct conftype type_stringlist_accum = { set_stringlist_accum, free_stringlistlist }, type_string_accum = { set_string_accum, free_stringlist }, type_sample_format = { set_sample_format, free_none }, +#if HAVE_PCRE_H type_namepart = { set_namepart, free_namepartlist }, type_transform = { set_transform, free_transformlist }, +#endif type_netaddress = { set_netaddress, free_netaddress }, type_rights = { set_rights, free_string }; @@ -676,7 +678,7 @@ static int validate_isabspath(const struct config_state *cs, for(n = 0; n < nvec; ++n) if(vec[n][0] != '/') { - disorder_error(errno, "%s:%d: %s: not an absolute path", + disorder_error(0, "%s:%d: %s: not an absolute path", cs->path, cs->line, vec[n]); return -1; } @@ -750,6 +752,7 @@ static int validate_tracklength(const struct config_state *cs, static int validate_non_negative(const struct config_state *cs, int nvec, char **vec) { long n; + char errbuf[1024]; if(nvec < 1) { disorder_error(0, "%s:%d: missing argument", cs->path, cs->line); @@ -760,7 +763,8 @@ static int validate_non_negative(const struct config_state *cs, return -1; } if(xstrtol(&n, vec[0], 0, 0)) { - disorder_error(0, "%s:%d: %s", cs->path, cs->line, strerror(errno)); + disorder_error(0, "%s:%d: %s", cs->path, cs->line, + format_error(ec_errno, errno, errbuf, sizeof errbuf)); return -1; } if(n < 0) { @@ -779,6 +783,7 @@ static int validate_non_negative(const struct config_state *cs, static int validate_positive(const struct config_state *cs, int nvec, char **vec) { long n; + char errbuf[1024]; if(nvec < 1) { disorder_error(0, "%s:%d: missing argument", cs->path, cs->line); @@ -789,7 +794,8 @@ static int validate_positive(const struct config_state *cs, return -1; } if(xstrtol(&n, vec[0], 0, 0)) { - disorder_error(0, "%s:%d: %s", cs->path, cs->line, strerror(errno)); + disorder_error(0, "%s:%d: %s", cs->path, cs->line, + format_error(ec_errno, errno, errbuf, sizeof errbuf)); return -1; } if(n <= 0) {