Evgeniy Dushistov wrote:
> On Tue, May 26, 2009 at 04:11:23PM -0400, Chet Ramey wrote:
>> Nikos Chantziaras wrote:
>>> I have:
>>>
>>>   MAILPATH="/home/me/.maildir/new?You have new mail."
>>>   MAILCHECK=60
>>>
>>> Bash 3.2 was correctly telling me about new mail arriving.  However,
>>> after I updated to Bash 4.0, I constantly get a "You have new mail."
>>> message every minute even though I actually don't have new mail.  Has
>>> the mail notification feature changed in Bash 4.0?  I can't see anything
>>> relevant in the man page or NEWS file.
>> There was a small change made to the mail file initialization code, to
>> keep from dropping the first "new mail" notification.  (In April, 2007,
>> though, so you'd figure one of the testers would have caught a problem
>> before now.)
>>
>> I don't use a maildir-aware mail program, but you can debug this by
>> setting a breakpoint in mailcheck.c:check_mail().
>>
> 
> I recently faced with the same problem, when package manager update
> my bash from 3.x to 4.x.
> I compared mailcheck.c from 3.2 and 4.0, and see only logic difference
> in add_mail_file. When it function handle new file, it not read it's
> date information as it was in 3.x, but set it to zero,

The change to use init_mail_file was intentional, but it doesn't set
the mod time and access time to 0.  It initializes a mailpath entry,
but doesn't call mailstat on the file until it's actually checking mail.
Changing it back to call update_mail_file defeats the purpose of the
change, which is to avoid calling mailstat and reading a potentially
very large maildir until MAILCHECK is set and we need to.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/


Reply via email to