X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=options.c;h=f698fb823f089e57c8f3a0a151e42110876e52fe;hb=781c0d657fffe80e45d0fda6ed5ddbf5f796fefb;hp=d43f0e725793683162fcbd0b5ce31595afeda445;hpb=7a7531e544d236d58ca077ce56b7d6d0c60faa09;p=pkg%2Fabook.git diff --git a/options.c b/options.c index d43f0e7..f698fb8 100644 --- a/options.c +++ b/options.c @@ -16,6 +16,7 @@ #include "options.h" #include "abook.h" #include "misc.h" +#include "xmalloc.h" #ifndef FALSE # define FALSE 0 @@ -55,11 +56,11 @@ static struct option abook_vars[] = { { "mutt_command", OT_STR, STR_MUTT_COMMAND, UL "mutt" }, { "mutt_return_all_emails", OT_BOOL, BOOL_MUTT_RETURN_ALL_EMAILS, TRUE }, - + { "print_command", OT_STR, STR_PRINT_COMMAND, UL "lpr" }, { "www_command", OT_STR, STR_WWW_COMMAND, UL "lynx" }, - + { "address_style", OT_STR, STR_ADDRESS_STYLE, UL "eu" }, { "use_ascii_only", OT_BOOL, BOOL_USE_ASCII_ONLY, FALSE }, @@ -99,7 +100,7 @@ set_str(enum str_opts opt, char *value) if(str_opts[opt]) free(str_opts[opt]); - str_opts[opt] = strdup(value); + str_opts[opt] = xstrdup(value); } int @@ -210,7 +211,7 @@ void find_token_start(buffer *b) { assert(b); - + for(; ISSPACE(*b -> ptr); b -> ptr ++); } @@ -230,7 +231,7 @@ static char * opt_set_set_option(char *var, char *p, struct option *opt) { int len; - + strtrim(p); len = strlen(p); @@ -261,7 +262,7 @@ opt_set_set_option(char *var, char *p, struct option *opt) default: assert(0); } - + return NULL; } @@ -276,13 +277,13 @@ opt_parse_set(buffer *b) *p++ = 0; else return "invalid value assignment"; - + strtrim(b -> ptr); for(i = 0;abook_vars[i].option; i++) if(!strcmp(abook_vars[i].option, b -> ptr)) return opt_set_set_option(b -> ptr, p, &abook_vars[i]); - + return "unknown option"; } @@ -329,7 +330,7 @@ opt_parse_line(char *line, int n, char *fn) char *err = NULL; char *token; buffer b; - + assert(line && fn); b.ptr = line; @@ -354,7 +355,7 @@ opt_parse_line(char *line, int n, char *fn) return FALSE; break; } - + fprintf(stderr, "%s: parse error at line %d: ", fn, n); if(err) fprintf(stderr, "%s\n", err); @@ -371,11 +372,11 @@ load_opts(char *filename) char *line = NULL; int n; int err = 0; - + if((in = fopen(filename, "r")) == NULL) return -1; - + for(n = 1;!feof(in); n++) { line = getaline(in);