summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2019-09-11 13:10:44 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2019-09-11 13:10:44 +0300
commitcf8100abb84b8ba92f6a3d33c60c2dbce950e119 (patch)
tree356777c49e88c176fe900a0877e79c91de667077
parente8c4245e1a4c8e2cb130cfcefa4474909bcb7906 (diff)
downloadmailutils-cf8100abb84b8ba92f6a3d33c60c2dbce950e119.tar.gz
mailutils-cf8100abb84b8ba92f6a3d33c60c2dbce950e119.tar.bz2
mail: new message specification :s
* NEWS: Update. * doc/texinfo/programs/mail.texi: Update. * mail/mailline.c (msgtype_generator): Recogize 's' * mail/msgset.y (select_type): Recognize 's'
-rw-r--r--NEWS12
-rw-r--r--doc/texinfo/programs/mail.texi14
-rw-r--r--mail/mailline.c2
-rw-r--r--mail/msgset.y8
4 files changed, 24 insertions, 12 deletions
diff --git a/NEWS b/NEWS
index 50eadb89a..f23851e62 100644
--- a/NEWS
+++ b/NEWS
@@ -1,13 +1,13 @@
-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)
* Use of TLS in pop3d run from inetd
New global configuration statement "tls-mode" configures the TLS for
use in inetd mode.
@@ -18,25 +18,33 @@ Example configuration (pop3s server):
mode inetd;
tls-mode connection;
tls {
ssl-key-file /etc/ssl/key.pem;
ssl-certificate-file /etc/ssl/cert.pem;
}
* 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
Kurt Hackenberg. A dotmail mailbox is a single disk file, where
messages are stored sequentially. Each message ends with a single
dot (similar to the format used in the SMTP DATA command). Any dot
appearing at the start of the line is doubled, to prevent it from
being interpreted as end of message marker.
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
@@ -423,36 +423,38 @@ of
This specifier addresses the message with the given ordinal number
in the mailbox.
@item @var{n}-@var{m}
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
given @var{string}. If the variable @code{regex} is set, the
@var{string} is assumed to be a POSIX regexp. (All comparison is
case-insensitive in either case).
If @var{header}: part is omitted, it is assumed to be @samp{Subject:}.
diff --git a/mail/mailline.c b/mail/mailline.c
index 647cb1e17..d6cef37df 100644
--- a/mail/mailline.c
+++ b/mail/mailline.c
@@ -681,25 +681,25 @@ folder_generator (const char *text, int state)
free (path);
if (rc)
return NULL;
}
return filegen_next (&fg);
}
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;
}
while ((c = types[i]))
{
i++;
if (!text[1] || text[1] == c)
{
diff --git a/mail/msgset.y b/mail/msgset.y
index 8011dc779..6f31325dd 100644
--- a/mail/msgset.y
+++ b/mail/msgset.y
@@ -157,25 +157,25 @@ msg : header REGEXP /* /.../ */
}
| BODY
{
$$ = msgset_select (select_body, $1, 0, 0);
if (!$$)
{
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 (!$$)
{
mu_error (_("No messages satisfy :%c"), $1);
YYERROR;
}
}
| IDENT /* Sender name */
@@ -737,30 +737,32 @@ select_type (mu_message_t msg, void *closure)
mu_message_get_attribute (msg, &attr);
switch (type)
{
case 'd':
return mu_attribute_is_deleted (attr);
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)
{
mu_attribute_t attr= NULL;
int rc;
mu_message_get_attribute (msg, &attr);
rc = mu_attribute_is_deleted (attr);

Return to:

Send suggestions and report system problems to the System administrator.