X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/ba937f0119d6102d2af9cc777cce495e65544952..bcf50f5c54870759e531a239400a47b64d22e554:/lib/configuration.c diff --git a/lib/configuration.c b/lib/configuration.c index ca7d86e..28bf8e9 100644 --- a/lib/configuration.c +++ b/lib/configuration.c @@ -22,12 +22,8 @@ * @brief Configuration file support */ -#include -#include "types.h" +#include "common.h" -#include -#include -#include #include #include #include @@ -966,6 +962,7 @@ static const struct conf conf[] = { { C2(restrict, restrictions), &type_restrict, validate_any }, { C(sample_format), &type_sample_format, validate_sample_format }, { C(scratch), &type_string_accum, validate_isreg }, + { C(sendmail), &type_string, validate_isabspath }, { C(short_display), &type_integer, validate_positive }, { C(signal), &type_signal, validate_any }, { C(smtp_server), &type_string, validate_any }, @@ -1194,6 +1191,8 @@ static struct config *config_default(void) { c->dbversion = 2; c->cookie_login_lifetime = 86400; c->cookie_key_lifetime = 86400 * 7; + if(sendmail_binary[0] && strcmp(sendmail_binary, "none")) + c->sendmail = xstrdup(sendmail_binary); c->smtp_server = xstrdup("127.0.0.1"); c->new_max = 100; c->reminder_interval = 600; /* 10m */ @@ -1214,7 +1213,7 @@ static struct config *config_default(void) { return c; } -static char *get_file(struct config *c, const char *name) { +char *config_get_file2(struct config *c, const char *name) { char *s; byte_xasprintf(&s, "%s/%s", c->home, name); @@ -1249,7 +1248,7 @@ static void config_postdefaults(struct config *c, int n; static const char *namepart[][4] = { - { "title", "/([0-9]+ *[-:] *)?([^/]+)\\.[a-zA-Z0-9]+$", "$2", "display" }, + { "title", "/([0-9]+ *[-:]? *)?([^/]+)\\.[a-zA-Z0-9]+$", "$2", "display" }, { "title", "/([^/]+)\\.[a-zA-Z0-9]+$", "$1", "sort" }, { "album", "/([^/]+)/[^/]+$", "$1", "*" }, { "artist", "/([^/]+)/[^/]+/[^/]+$", "$1", "*" }, @@ -1258,7 +1257,7 @@ static void config_postdefaults(struct config *c, #define NNAMEPART (int)(sizeof namepart / sizeof *namepart) static const char *transform[][5] = { - { "track", "^.*/([0-9]+ *[-:] *)?([^/]+)\\.[a-zA-Z0-9]+$", "$2", "display", "" }, + { "track", "^.*/([0-9]+ *[-:]? *)?([^/]+)\\.[a-zA-Z0-9]+$", "$2", "display", "" }, { "track", "^.*/([^/]+)\\.[a-zA-Z0-9]+$", "$1", "sort", "" }, { "dir", "^.*/([^/]+)$", "$1", "*", "" }, { "dir", "^(the) ([^/]*)", "$2, $1", "sort", "i", }, @@ -1412,7 +1411,7 @@ char *config_usersysconf(const struct passwd *pw) { } char *config_get_file(const char *name) { - return get_file(config, name); + return config_get_file2(config, name); } /*