On Thursday, 15 March 2007 at 10:23, Miroslav Lichvar wrote:
> On Wed, Mar 14, 2007 at 11:15:27PM -0700, Brendan Cully wrote:
> > On Thursday, 01 March 2007 at 16:23, Miroslav Lichvar wrote:
> > > Ok, here is a patch that removes buffy_size completely and adds the
> > > check_box_size option.
> >
> > Looks nice, thanks. But...
>
> Thanks for looking into this.
>
> > > Index: commands.c
> > > @@ -842,11 +837,9 @@
> > >
> > > if (need_buffy_cleanup)
> > > {
> > > -#ifdef BUFFY_SIZE
> > > tmp = mutt_find_mailbox (buf);
> > > if (tmp && !tmp->new)
> > > mutt_update_mailbox (tmp);
> > > -#else
> > > /* fix up the times so buffy won't get confused */
> > > if (st.st_mtime > st.st_atime)
> > > {
> > > @@ -856,7 +849,6 @@
> > > }
> > > else
> > > utime (buf, NULL);
> > > -#endif
> > > }
> >
> > this looks a little like it should be a conditional on
> > option(CHECKMBOXSIZE).
>
> I think it's ok either way. Without the conditional it's a bit
> closer to allowing runtime switching of the option and not losing
> new mail flags on the mailboxes.
I doubt this matters. Some users need the size check and some don't,
but I would guess very few need to be able to switch between size and
atime on the fly. And I do somewhat prefer not calling code that will
generally not have any effect. Can you think of a reasonable case
where you'd want to switch this option interactively (as opposed to at
startup)?
> > > Index: mx.c
> > > @@ -436,7 +430,7 @@
> > > else if (mutt_strcmp (MMDF_SEP, tmp) == 0)
> > > magic = M_MMDF;
> > > safe_fclose (&f);
> > > -#ifndef BUFFY_SIZE
> > > +
> > > /* need to restore the times here, the file was not really accessed,
> > > * only the type was accessed. This is important, because detection
> > > * of "new mail" depends on those times set correctly.
> > > @@ -444,7 +438,6 @@
> > > times.actime = st.st_atime;
> > > times.modtime = st.st_mtime;
> > > utime (path, ×);
> > > -#endif
> > > }
> > > else
> > > {
>
> Same as the first case.
>
> > > @@ -786,9 +777,7 @@
> > > case M_MBOX:
> > > case M_MMDF:
> > > rc = mbox_sync_mailbox (ctx, index_hint);
> > > -#ifdef BUFFY_SIZE
> > > tmp = mutt_find_mailbox (ctx->path);
> > > -#endif
> > > break;
> > >
> > > case M_MH:
> > > @@ -815,10 +804,8 @@
> > > mutt_error ( _("Could not synchronize mailbox %s!"), ctx->path);
> > > #endif
> > >
> > > -#ifdef BUFFY_SIZE
> > > if (tmp && tmp->new == 0)
> > > mutt_update_mailbox (tmp);
> > > -#endif
> > > return rc;
> > > }
> >
> > and probably these too?
>
> This should be ok, mutt_find_mailbox returns NULL when CHECKMBOXSIZE
> is disabled.
>
Attachment:
pgp7PrQ8miPKK.pgp
Description: PGP signature