diff options
-rw-r--r-- | NEWS | 12 | ||||
-rw-r--r-- | doc/texinfo/programs/mail.texi | 14 | ||||
-rw-r--r-- | mail/mailline.c | 2 | ||||
-rw-r--r-- | mail/msgset.y | 8 |
4 files changed, 24 insertions, 12 deletions
@@ -1,7 +1,7 @@ -GNU mailutils NEWS -- history of user-visible changes. 2019-09-03 +GNU mailutils NEWS -- history of user-visible changes. 2019-09-11 Copyright (C) 2002-2019 Free Software Foundation, Inc. See the end of file for copying conditions. Please send mailutils bug reports to <bug-mailutils@gnu.org>. Version 3.7.90 (git) @@ -24,13 +24,21 @@ Example configuration (pop3s server): } * comsatd --test The --test option takes optional argument: name of the tty or file to use for reporting. - + +* mail + +** fix the semantics of 'hold' and 'keepsave' variables + +** New message type specification ":s" + +Selects messages in state 'saved'. + Version 3.7 - 2019-06-21 * Support for the new mailbox format - dotmail Dotmail is a replacement for traditional mbox format, proposed by diff --git a/doc/texinfo/programs/mail.texi b/doc/texinfo/programs/mail.texi index b4c68a100..accd89148 100644 --- a/doc/texinfo/programs/mail.texi +++ b/doc/texinfo/programs/mail.texi @@ -429,24 +429,26 @@ All messages with ordinal numbers between @var{n} and @var{m}, inclusive. @item :@var{t} All messages of type @var{t}, where @var{t} can be any of: @table @samp @item d Deleted messages. -@item :n +@item n New messages. -@item :o +@item o Old messages (any message not in state @samp{read} or @samp{new}). -@item :r +@item r Messages in state @samp{read}. -@item :u +@item u Messages in state @samp{unread}. -@item :t +@item t Selects all tagged messages. -@item :T +@item T Selects all untagged messages. +@item s +Selects all messages in state @samp{saved}. @end table @item [@var{header}:]/@var{string}[/] Header match. Selects all messages that contain header field @var{header} matching diff --git a/mail/mailline.c b/mail/mailline.c index 647cb1e17..d6cef37df 100644 --- a/mail/mailline.c +++ b/mail/mailline.c @@ -687,13 +687,13 @@ folder_generator (const char *text, int state) static char * msgtype_generator (const char *text, int state) { /* Allowed message types, plus '/'. The latter can folow a colon, meaning body lookup */ - static char types[] = "dnorTtu/"; + static char types[] = "dnorsTtu/"; static int i; char c; if (!state) { i = 0; diff --git a/mail/msgset.y b/mail/msgset.y index 8011dc779..6f31325dd 100644 --- a/mail/msgset.y +++ b/mail/msgset.y @@ -163,13 +163,13 @@ msg : header REGEXP /* /.../ */ mu_error (_("No applicable messages from {:/%s}"), $1); YYERROR; } } | TYPE /* :n, :d, etc */ { - if (strchr ("dnorTtu", $1) == NULL) + if (strchr ("dnorsTtu", $1) == NULL) { yyerror (_("unknown message type")); YYERROR; } $$ = msgset_select (select_type, (void *)&$1, 0, 0); if (!$$) @@ -743,18 +743,20 @@ select_type (mu_message_t msg, void *closure) case 'n': return mu_attribute_is_recent (attr); case 'o': return mu_attribute_is_seen (attr); case 'r': return mu_attribute_is_read (attr); - case 'u': - return !mu_attribute_is_read (attr); + case 's': + return mu_attribute_is_userflag (attr, MAIL_ATTRIBUTE_SAVED); case 't': return mu_attribute_is_userflag (attr, MAIL_ATTRIBUTE_TAGGED); case 'T': return !mu_attribute_is_userflag (attr, MAIL_ATTRIBUTE_TAGGED); + case 'u': + return !mu_attribute_is_read (attr); } return 0; } int select_deleted (mu_message_t msg, void *closure MU_ARG_UNUSED) |