Hi Damon, Thanks for your work on comsat.
> i hope some or all of these will be useful and can be incorporated > into the package. Yes, sure. Below I will discuss each of the proposed features separately. > i'd also love to see a biff command included in the package. right > now i'm using biff from biff+comsat-0.17, which does the trick. biff > is still very useful for temporarily stopping output to a particular > tty. i wouldn't mind writing a new one if it would be included in > mailutils. Frankly, I don't know if it is worth including. The entire biff program is 6 lines of shell code: case $1 in y) chmod u+x `tty`;; n) chmod u-x `tty`;; '') ls -l `tty`|sed 's/...x.*/is y/;s/...-.*/is n/';; *) echo "usage: $0 "'[y|n]' >&2;; esac It can be added as an install target to comsat/Makefile.am, of course. Now, let's discuss the proposed changes: 1. New echo syntax. I like it. I will include it into CVS. 2. New macros $f and $o. It is useful as well. However the code implementing it is rather ineffective. Notice, that using libmailutils you can format any integer number to a string using mu_umaxtostr function, like this: p = mu_umaxtostr(0, off); So, implementing $o is just a matter of adding an extra argument to expand_escape and calling this function in the right place of the switch. However, the need to pass two new parameters to expand_line and run_user_action just two implement two new macros shows that the whole argument passing scheme should be redesigned. Ideally, some kind of symbol table should be used. 3. Resetting access/mod times after comsatd accesses a mailbox Well, I'd rather say that a MUA should not depend on the access time to tell whether there is some new mail in the mailbox. If it just has to use any st_.time, then st_mtime seems to be the proper candidate. Anyway, since mutt depends on atime, then what we face is a deeper problem: any access to the mailbox using any UNIX utilities will reset mailbox access time, which will make mutt believe there is no new mail in that mailbox. 4. SIGCHLD handling Have you tried replacing `signal (SIGCHLD, SIG_IGN)' with `signal (SIGCHLD, SIG_DFL)'? It could help with the perl's case. Besides, comsat_parent_sig_chld breaks `comsatd -d': the daemon will exit after having executed its first child. Regards, Sergey _______________________________________________ Bug-mailutils mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-mailutils
