Greetings.

So I've noticed a situation in my mutt / MH configuration.  MH is my
primary email system, but I use mutt to process and read new incoming
mail and then save it to my MH folders.

The situation is this:

Let's say I have a bunch of randomly numbered email between 1 and 60000 .
Some of those emails have been erased, so I also have a number of files
with names like ,56789 (that's a comma).

Then I use MH's "folder -pack" routine, which renumbers all of my emails
sequentially ... so let's say they now stop at 10000 ... but I still
have all of my pre-existing deleted-files with commas in the names.

Mutt's mh.c says this around line 1720-ish:

static int _mh_commit_message (CONTEXT * ctx, MESSAGE * msg, HEADER * hdr,
             short updseq)
[...]
  /* figure out what the next message number is */
  while ((de = readdir (dirp)) != NULL)
  {
    dep = de->d_name;
    if (*dep == ',')
      dep++;
    cp = dep;
[...]

See how, if the file name starts with a comma, it just looks at the next
character in the name.

So, even though I have renumbered all of my emails to be 1-10000, mutt
still sees the deleted former-email numbered 56789 and uses that in the
"next message number" process.

I'm pretty sure I can fix it by changing the "dep++;" line to "next;"

I'm just wondering if there is any reason to (or not to) propogate this
change into the source.

In other words ... was this done on purpose ... and if so, why?

--hymie!

Reply via email to