/*
- * $Id: options.c,v 1.21 2003/12/05 18:11:55 jheinonen Exp $
+ * $Id: options.c,v 1.25 2005/08/13 10:49:25 jheinonen Exp $
*
* by JH <jheinonen@users.sourceforge.net>
*
#include "options.h"
#include "abook.h"
#include "misc.h"
+#include "xmalloc.h"
#ifndef FALSE
# define FALSE 0
{ "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 },
{ "add_email_prevent_duplicates", OT_BOOL, BOOL_ADD_EMAIL_PREVENT_DUPLICATES, FALSE },
{ "sort_field", OT_STR, STR_SORT_FIELD, UL "nick" },
+ { "show_cursor", OT_BOOL, BOOL_SHOW_CURSOR, FALSE },
{ NULL }
};
if(str_opts[opt])
free(str_opts[opt]);
- str_opts[opt] = strdup(value);
+ str_opts[opt] = xstrdup(value);
}
int
find_token_start(buffer *b)
{
assert(b);
-
+
for(; ISSPACE(*b -> ptr); b -> ptr ++);
}
opt_set_set_option(char *var, char *p, struct option *opt)
{
int len;
-
+
strtrim(p);
len = strlen(p);
default:
assert(0);
}
-
+
return NULL;
}
*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";
}
char *err = NULL;
char *token;
buffer b;
-
+
assert(line && fn);
b.ptr = line;
return FALSE;
break;
}
-
+
fprintf(stderr, "%s: parse error at line %d: ", fn, n);
if(err)
fprintf(stderr, "%s\n", err);
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);
err += opt_parse_line(line, n, filename) ? 1:0;
}
- my_free(line);
+ free(line);
+ line = NULL;
}
free(line);