[PATCH] Add check-stats function used to calculate mailbox statistics

Kevin J. McCarthy kevin at 8t8.us
Wed Jun 27 20:08:20 UTC 2018


Hi Anton,

I have a few comments inline below.  With those changes, I'm fine with
the patch.

On Tue, Jun 26, 2018 at 05:24:39PM +0900, Anton Lindqvist wrote:
> diff --git a/buffy.c b/buffy.c
> index eab17e6e..8f164f7f 100644
> --- a/buffy.c
> +++ b/buffy.c
> @@ -505,7 +505,9 @@ static int buffy_mbox_check (BUFFY* mailbox, struct stat *sb, int check_stats)
>  }
>  
>  /* Check all Incoming for new mail and total/new/flagged messages
> - * force: if true, ignore BuffyTimeout and check for new mail anyway
> + * The force argument may be any combination of the following values:
> + *   MUTT_BUFFY_CHECK_FORCE        ignore BuffyTimeout and check for new mail
> + *   MUTT_BUFFY_CHECK_FORCE_STATS  ignore BuffyTimeout and calculate statistics
>   */
>  int mutt_buffy_check (int force)
>  {
> @@ -525,7 +527,7 @@ int mutt_buffy_check (int force)
>  
>  #ifdef USE_IMAP
>    /* update postponed count as well, on force */
> -  if (force)
> +  if ((force & MUTT_BUFFY_CHECK_FORCE))
>      mutt_update_num_postponed ();
>  #endif
>  
> @@ -536,8 +538,9 @@ int mutt_buffy_check (int force)
>    if (!force && (t - BuffyTime < BuffyTimeout))
>      return BuffyCount;
>  
> -  if (option (OPTMAILCHECKSTATS) &&
> -      (t - BuffyStatsTime >= BuffyCheckStatsInterval))
> +  if ((force & MUTT_BUFFY_CHECK_FORCE_STATS) ||
> +    ((option (OPTMAILCHECKSTATS) &&
       ^^
Nit: I don't think you need the double parenthesis just above here.

> +	(t - BuffyStatsTime >= BuffyCheckStatsInterval))))
                                                       ^^


> diff --git a/buffy.h b/buffy.h
> index c0cfddf4..81f0cc7f 100644
> --- a/buffy.h
> +++ b/buffy.h
> @@ -63,4 +63,8 @@ void mutt_buffy_setnotified (const char *path);
>  
>  int mh_buffy (BUFFY *, int);
>  
> +/* force flags passed to mutt_buffy_check() */
> +#define MUTT_BUFFY_CHECK_FORCE 0x1
> +#define MUTT_BUFFY_CHECK_FORCE_STATS 0x2

I'd prefer if this was like the other bit-flag definitions, like in
mutt.h:
  #define MUTT_BUFFY_CHECK_FORCE       1
  #define MUTT_BUFFY_CHECK_FORCE_STATS (1<<1)

> diff --git a/commands.c b/commands.c
> index 3654fc0d..f5f22cd2 100644
> --- a/commands.c
> +++ b/commands.c
> @@ -1028,4 +1028,10 @@ int mutt_check_traditional_pgp (HEADER *h, int *redraw)
>    return rv;
>  }
>  
> +void mutt_check_stats (void)
> +{
> +  if (!option (OPTMAILCHECKSTATS))
> +    return;

Above, you allow the MUTT_BUFFY_CHECK_FORCE_STATS flag to override the
option(OPTMAILCHECKSTATS) config variable.  I think this makes sense -
some people may want to *only* manually refresh the stats.  So I would
suggest removing the option check here.

>  
> +  mutt_buffy_check (MUTT_BUFFY_CHECK_FORCE | MUTT_BUFFY_CHECK_FORCE_STATS);
> +}

> diff --git a/doc/manual.xml.head b/doc/manual.xml.head
> index 8ac8fd9d..e78d9ec5 100644
> --- a/doc/manual.xml.head
> +++ b/doc/manual.xml.head
> @@ -953,6 +953,20 @@ In addition, the <emphasis>index</emphasis> and
>  
>  <variablelist>
>  
> +<varlistentry>
> +<term>
> +<literal><check-stats></literal><anchor id="check-stats"/>
> +</term>
> +<listitem>
> +<para>
> +Calculate statistics for all monitored mailboxes declared using the
> +<command>mailboxes</command> command.
> +This function requires
> +<link linkend="mail-check-stats">$mail_check_stats</link> to be set.

So, if we agree on that, we can remove the above sentence saying
$mail_check_stats is required.  What do you think?

-- 
Kevin J. McCarthy
GPG Fingerprint: 8975 A9B3 3AA3 7910 385C  5308 ADEF 7684 8031 6BDA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.mutt.org/pipermail/mutt-dev/attachments/20180627/fdecdaf0/attachment.asc>


More information about the Mutt-dev mailing list