X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/d4288570b9513c706907deb882ec6a15e218d0e3..e6d87a04919616cf2a6ea6cbda81d5fbc31cc8a2:/uip/new.c?ds=sidebyside diff --git a/uip/new.c b/uip/new.c index 83b09664..9a7f9d4f 100644 --- a/uip/new.c +++ b/uip/new.c @@ -114,11 +114,11 @@ get_msgnums(char *folder, char *sequences[]) return NULL; if ((fp = lkfopendata (seqfile, "r", & failed_to_lock)) == NULL) { - free(seqfile); if (failed_to_lock) { adios (seqfile, "failed to lock"); } else { + free(seqfile); return NULL; } } @@ -261,7 +261,9 @@ check_folders(struct node **first, struct node **last, b.sequences = sequences; if (folders == NULL) { - chdir(m_maildir("")); + if (chdir(m_maildir("")) < 0) { + advise (m_maildir(""), "chdir"); + } crawl_folders(".", crawl_callback, &b); } else { fp = fopen(folders, "r"); @@ -368,6 +370,8 @@ doit(char *cur, char *folders, char *sequences[]) return prev; } } else if (run_mode == UNSEEN) { + int status; + if (node->n_field == NULL) { continue; } @@ -386,7 +390,10 @@ doit(char *cur, char *folders, char *sequences[]) /* TODO: Split enough of scan.c out so that we can call it here. */ command = concat("scan +", node->n_name, " ", sequences_s, (void *)NULL); - system(command); + status = system(command); + if (! WIFEXITED (status)) { + adios (command, "system"); + } free(command); } else { if (node->n_field == NULL) {