summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2005-03-05 09:54:06 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>2005-03-05 09:54:06 +0000
commit0c5d5ae3661b615ecf3fd8c85296fcd912934909 (patch)
tree97f08d9018481af96fad5e49d94039845ceb2b7d
parentc68a213a93019d42b6d6430ba8695c00c88012d2 (diff)
downloadmailutils-0c5d5ae3661b615ecf3fd8c85296fcd912934909.tar.gz
mailutils-0c5d5ae3661b615ecf3fd8c85296fcd912934909.tar.bz2
Rewritten in accordance with POSIX specs: do not mbox deleted and saved messages.
-rw-r--r--mail/touch.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/mail/touch.c b/mail/touch.c
index 4b1eb5905..b4f8bf2ec 100644
--- a/mail/touch.c
+++ b/mail/touch.c
@@ -1,5 +1,5 @@
/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc.
GNU Mailutils is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,12 +17,30 @@
#include "mail.h"
-/*
- * tou[ch] [msglist]
- */
+/* tou[ch] [msglist]
+
+ Touch the specified messages. If any message in msglist is not
+ specifically deleted nor saved in a file, it shall be placed in the
+ mbox upon normal termination. */
+
+static int
+touch0 (msgset_t *mspec, message_t msg, void *data)
+{
+ attribute_t attr = NULL;
+
+ message_get_attribute (msg, &attr);
+ if (!attribute_is_userflag (attr, MAIL_ATTRIBUTE_SAVED))
+ {
+ attribute_set_userflag (attr, MAIL_ATTRIBUTE_MBOXED);
+ util_mark_read (msg);
+ }
+
+ cursor = mspec->msg_part[0];
+}
int
mail_touch (int argc, char **argv)
{
+ return util_foreach_msg (argc, argv, MSG_NODELETED, touch0, NULL);
return mail_mbox (argc, argv);
}

Return to:

Send suggestions and report system problems to the System administrator.