bug-mailutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-mailutils] [PATCHES] various collected patches for comsatd


From: Sergey Poznyakoff
Subject: Re: [bug-mailutils] [PATCHES] various collected patches for comsatd
Date: Mon, 28 Aug 2006 19:13:35 +0300

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]