[In a message on Thu, 24 Jan 2002 15:52:05 PST,
        "Jon Steinhart" wrote:]
>OK, here's what I'm seeing.
>
>I just incorporated the messages from each of you.  These ended up
>being messa ge numbers 3913-3916 (because you each cc'd me in
>addition to posting to the list list so I got two of each) in my
>inbox, located in /export/home/jon/Mail/inbox.
>
>I deleted (rmm) message 3916.  I then did "mhpath cur" and it returned
>
>       /export/home/jon/Mail/inbox/3916

That's because the rmm did *NOT* change the cur=3916 in .mh_sequences
in your inbox.

I just did the same thing (I have a two-line shell prompt, the first
of which prints my current path):

/home/catenary/kamath/Mail
{195}(kamath@red) -> : more inbox/.mh_sequences 
cur: 227
unseen: 213 218-226
/home/catenary/kamath/Mail
{196}(kamath@red) -> : show last
(Message inbox:228)

Date:    Thu, 24 Jan 2002 18:08:54 PST
To:      [EMAIL PROTECTED]
From:    Sean Kamath <[EMAIL PROTECTED]>
Subject: test

Return-Path: [EMAIL PROTECTED]
Delivery-Date: Thu Jan 24 18:08:56 2002
X-image-url: http://www.geekoids.com/kamath/images/face.gif
X-url:   http://www.geekoids.com/kamath
Reply-to: [EMAIL PROTECTED]
MIME-Version: 1.0

foo
/home/catenary/kamath/Mail
{197}(kamath@red) -> : rmm
/home/catenary/kamath/Mail
{198}(kamath@red) -> : more inbox/.mh_sequences
cur: 228
unseen: 213 218-226
/home/catenary/kamath/Mail
{199}(kamath@red) -> : mhpath cur
/home/catenary/kamath/Mail/inbox/228
/home/catenary/kamath/Mail
{200}(kamath@red) -> : show 228
show: message 228 doesn't exist
/home/catenary/kamath/Mail
{201}(kamath@red) -> : mhpath new
/home/catenary/kamath/Mail/inbox/228
/home/catenary/kamath/Mail
{202}(kamath@red) -> : 

So, the .mh_seqences isn't updated, mhpath says "here's the path to
the non-existant current message", and yet when you call 'mhpath new',
it will check to see what the next message *would* be numbered (which
would be 228)

>This is the same thing that "mhpath new" returns.  I would expect "cur" to say
>"no cur message" and "new" to return the above.

Fundementally, if mhpath checked to see if there actually was a file
for the current message, it would return "no cur message".  But the
message really means "a cur message number is assigned", not "there is
a current message, and it is <blort>".  This is what I think the
set_select_empty means (it allows selection of an empty slot):

About 10 lines after your quote:

    /*
     * Cycle through the range and select the messages
     * that exist.  If ALLOW_NEW is set, then we also check
     * if we are selecting an empty slot.
     */
    for (; first <= last; first++) {
        if (does_exist (mp, first) ||
            ((mp->msgflags & ALLOW_NEW) && is_select_empty (mp, first))) {

This reads to me that it's OK if we just asked for a message number
that doesn't have a file associated with it.

I can't think of a way to change this behaviour that fixes mhpath but
doesn't break other things calling m_convert. . .  But I've only
looked at it for 10 minutes (and I'm in the middle of an OpenBSD
kernel bug I'm waiting to recompile to test).

>So I guess that I don't understand how Neil and Sean are seeing what they're
>seeing.

So, I *think* this clears up why we're seeing what you're seeing (and
my inclusion shows I see the same behaviour when I do exactly what you
did (oh, and I had to remove my context file, since it was caching the
current file, in order to show the .mh_sequences file.).

Sean

Reply via email to