char name[NAMESZ], field[BUFSIZ];
char *cp;
char *msgnums = NULL, *this_msgnums, *old_msgnums;
+ int failed_to_lock = 0;
m_getfld_state_t gstate = 0;
/* copied from seq_read.c:seq_public */
if (seqfile == NULL)
return NULL;
- if ((fp = lkfopendata (seqfile, "r")) == NULL) {
- free(seqfile);
- return NULL;
+ if ((fp = lkfopendata (seqfile, "r", & failed_to_lock)) == NULL) {
+
+ if (failed_to_lock) {
+ adios (seqfile, "failed to lock");
+ } else {
+ free(seqfile);
+ return NULL;
+ }
}
/* Use m_getfld to scan sequence file */
/* If we're fnext, we haven't checked the last node yet. If it's the
* current folder, return the first node. */
- if (run_mode == FNEXT && strcmp(last->n_name, cur) == 0) {
- return first;
+ if (run_mode == FNEXT) {
+ assert(last != NULL);
+ if (strcmp(last->n_name, cur) == 0) {
+ return first;
+ }
}
if (run_mode == NEW) {
char *unseen;
struct node *folder;
-#ifdef LOCALE
- setlocale(LC_ALL, "");
-#endif
- invo_name = r1bindex(argv[0], '/');
-
- /* read user profile/context */
- context_read();
+ if (nmh_init(argv[0], 1)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;