/*
- * $Id: abook.c,v 1.57 2005/10/05 11:03:36 jheinonen Exp $
+ * $Id: abook.c,v 1.60 2006/09/04 18:29:24 cduval Exp $
*
* by JH <jheinonen@users.sourceforge.net>
*
#include "options.h"
#include "getname.h"
#include "getopt.h"
+#include "views.h"
#include "xmalloc.h"
static void init_abook();
bool alternative_datafile = FALSE;
bool alternative_rcfile = FALSE;
+
static int
datafile_writeable()
{
printf(_("Press enter to continue...\n"));
fgetc(stdin);
}
+ init_default_views();
signal(SIGTERM, quit_abook_sig);
+ init_index();
+
if(init_ui())
exit(EXIT_FAILURE);
xmalloc_set_error_handler(xmalloc_error_handler);
+ prepare_database_internals();
+
parse_command_line(argc, argv);
init_abook();
}
}
- if (optind < argc) {
+ if(optind < argc) {
fprintf(stderr, _("%s: unrecognized arguments on command line\n"),
argv[0]);
exit(EXIT_FAILURE);
* end of CLI
*/
-extern list_item *database;
static void
quit_mutt_query(int status)
static void
muttq_print_item(FILE *file, int item)
{
- char emails[MAX_EMAILS][MAX_EMAIL_LEN];
- int i;
-
- split_emailstr(item, emails);
-
- for(i = 0; i < (opt_get_bool(BOOL_MUTT_RETURN_ALL_EMAILS) ?
- MAX_EMAILS : 1) ; i++)
- if( *emails[i] )
- fprintf(file, "%s\t%s\t%s\n", emails[i],
- database[item][NAME],
- database[item][NOTES] == NULL ? " " :
- database[item][NOTES]
+ abook_list *emails, *e;
+ char *tmp = db_email_get(item);
+
+ emails = csv_to_abook_list(tmp);
+ free(tmp);
+
+ for(e = emails; e; e = e->next) {
+ fprintf(file, "%s\t%s\t%s\n", e->data, db_name_get(item),
+ !db_fget(item, NOTES) ?" " :db_fget(item, NOTES)
);
+ if(!opt_get_bool(BOOL_MUTT_RETURN_ALL_EMAILS))
+ break;
+ }
+ abook_list_free(&emails);
}
static void
{
char email[MAX_EMAIL_LEN];
char *ret;
- char *name = strdup_printf("\"%s\"", database[item][NAME]);
+ char *name = strdup_printf("\"%s\"", db_name_get(item));
get_first_email(email, item);
- ret = *database[item][EMAIL] ?
+ ret = *email ?
strdup_printf("%s <%s>", name, email) :
xstrdup(name);
if( !is_valid_item(item) )
return;
- if( database[item][URL] )
+ if(db_fget(item, URL))
cmd = strdup_printf("%s '%s'",
opt_get_str(STR_WWW_COMMAND),
- safe_str(database[item][URL]));
+ safe_str(db_fget(item, URL)));
else
return;
set_filenames();
init_opts();
load_opts(rcfile);
+ init_standard_fields();
switch(import_file(srcformat, srcfile)) {
case -1:
fclose(in);
}
- memset(item, 0, sizeof(item));
- item[NAME] = xstrdup(name);
- item[EMAIL] = xstrdup(email);
+ item = item_create();
+ item_fput(item, NAME, xstrdup(name));
+ item_fput(item, EMAIL, xstrdup(email));
add_item2database(item);
+ item_free(&item);
return 1;
}