set_filenames();
check_abook_directory();
init_opts();
- load_opts(rcfile);
+ if(load_opts(rcfile) > 0) {
+ printf("Press enter to continue...\n");
+ fgetc(stdin);
+ }
signal(SIGKILL, quit_abook_sig);
signal(SIGTERM, quit_abook_sig);
abook_fopen (const char *path, const char *mode)
{
struct stat s;
+ bool stat_ok;
- if((stat(path, &s)) == -1)
- return NULL;
+ stat_ok = (stat(path, &s) != -1);
if(strchr(mode, 'r'))
- return S_ISREG(s.st_mode) ? fopen(path, mode) : NULL;
+ return (stat_ok && S_ISREG(s.st_mode)) ?
+ fopen(path, mode) : NULL;
else
- return S_ISDIR(s.st_mode) ? NULL : fopen(path, mode);
+ return (stat_ok && S_ISDIR(s.st_mode)) ?
+ NULL : fopen(path, mode);
}
-
static void
convert(char *srcformat, char *srcfile, char *dstformat, char *dstfile)
{
{
list_item item;
+ if(opt_get_bool(BOOL_ADD_EMAIL_PREVENT_DUPLICATES)) {
+ int search_fields[] = { EMAIL, -1 };
+ if(find_item(email, 0, search_fields) >= 0) {
+ if(!quiet)
+ printf("Address %s already in addressbook\n",
+ email);
+ return 0;
+ }
+ }
+
if(!quiet) {
FILE *in = fopen("/dev/tty", "r");
char c;