Hi Marcin, > After saving the file I mostly (not always) get the following error: > > whatnow: problems with edit--draft left in /home/saper/Mail/drafts/,1
https://git.savannah.nongnu.org/cgit/nmh.git/tree/uip/whatnowsbr.c#n760 760 if ((status = pidwait (pid, NOTOK))) { 761 if (((status & 0xff00) != 0xff00) 762 && (!reedit || (status & 0x00ff))) { 763 if (!use && (status & 0xff00) && 764 (rename (file, cp = m_backup (file)) != -1)) { 765 inform("problems with edit--draft left in %s", cp); 766 } else { 767 inform("problems with edit--%s preserved", file); 768 } 769 } 770 status = -2; /* maybe "reedit ? -2 : -1"? */ 771 break; 772 } 773 The inform()s are poor as they don't pass on the detail, e.g. ed(1)'s exit status. My guess is you're imperfect in your ed-ing. :-) $ man 1p ed | sed -n '/^EXIT STATUS/,/^[^ ]/p' EXIT STATUS The following exit values shall be returned: 0 Successful completion without any file or command errors. >0 An error occurred. CONSEQUENCES OF ERRORS $ Here's an example. $ ed /tmp/foo /tmp/foo: No such file or directory a foo . wq 4 $ echo $? 0 $ ed /tmp/foo 4 /bar ? $a bar . wq 8 $ echo $? 1 $ Consider having a shell-script wrapper for ed which does its own checks, if you can think of some, before returning its own exit status. > $ diff orig/nmh-1.8/uip/whatnowsbr.c nmh-1.8/uip/whatnowsbr.c Can we have a ‘diff -u’ another time please. > 760a761 > > fprintf(stderr, "status = 0x%04x use = 0x%02x reedit = 0x%02x"); fprintf() is not being passed the parameters to print so it printing what it finds on the stack. > By the way, the system is not very reliable in counting comma files > - it managed to overwrite my ",1" once. nmh doesn't count comma files; the presence of ,1 doesn't make it use ,2 instead. Email 42 is moved to ,42 even if a previous 42 was moved to ,42 and it is still sitting there. A better scheme can be used by setting rmmproc to what you prefer; see mh_profile(5). -- Cheers, Ralph.
