(rmail-set-attribute): Allow ATTR to be a string.
authorGlenn Morris <rgm@gnu.org>
Tue, 10 Feb 2009 03:57:10 +0000 (03:57 +0000)
committerGlenn Morris <rgm@gnu.org>
Tue, 10 Feb 2009 03:57:10 +0000 (03:57 +0000)
lisp/ChangeLog
lisp/mail/rmail.el

index e311549..fb59a12 100644 (file)
@@ -25,6 +25,7 @@
        (rmail-get-attr-names): Check for missing or corrupt attribute headers.
        (rmail-auto-file): Set the filed attribute, rather than explicitly not
        doing so.  (Bug#2231)
+       (rmail-set-attribute): Allow ATTR to be a string.
 
 2009-02-09  Ulf Jasper  <ulf.jasper@web.de>
 
index de9ca77..a9899ee 100644 (file)
@@ -2148,8 +2148,18 @@ significant attribute change was made."
   "Turn an attribute of a message on or off according to STATE.
 STATE is either nil or the character (numeric) value associated
 with the state (nil represents off and non-nil represents on).
-ATTR is the index of the attribute.  MSGNUM is message number to
+ATTR is either the index number of the attribute, or a string,
+both from `rmail-attr-array'.  MSGNUM is message number to
 change; nil means current message."
+  (let ((n 0)
+        (nmax (length rmail-attr-array)))
+    (while (and (stringp attr)
+                (< n nmax))
+      (if (string-equal attr (cadr (aref rmail-attr-array n)))
+          (setq attr n))
+      (setq n (1+ n))))
+  (if (stringp attr)
+      (error "Unknown attribute `%s'" attr))
   (with-current-buffer rmail-buffer
     (or msgnum (setq msgnum rmail-current-message))
     (when (> msgnum 0)