changeset 22866:011361a15bac

(mail-header-format): Convert string to symbol.
author Richard M. Stallman <rms@gnu.org>
date Sat, 01 Aug 1998 19:12:59 +0000
parents df59ef00f1e4
children 7e35e50acaa4
files lisp/mail/mailheader.el
diffstat 1 files changed, 19 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/mailheader.el	Sat Aug 01 19:11:15 1998 +0000
+++ b/lisp/mail/mailheader.el	Sat Aug 01 19:12:59 1998 +0000
@@ -150,19 +150,30 @@
 
 (defun mail-header-format (format-rules headers)
   "Use FORMAT-RULES to format HEADERS and insert into current buffer.
-FORMAT-RULES is an alist whose keys are header names (symbols), and whose
-values are functions that format the header, the results of which are
-inserted, unless it is nil.  The function takes two arguments, the header
-symbol, and the value of that header.  If the function itself is nil, the
-default action is to insert the value of the header, unless it is nil.
+HEADERS should be an alist of the form (HEADER . VALUE),
+where HEADER is a header field name (a symbol or a string),
+and VALUE is the contents for that header field.
+
+FORMAT-RULES is an alist of elements (HEADER . FUNCTION) Here HEADER
+is a header field name (a symbol), and FUNCTION is how to format that
+header field, if it appears in HEADERS.  Each FUNCTION should take two
+arguments: the header symbol, and the value of that header.  The value
+returned by FUNCTION is inserted in the buffer unless it is nil.
+
+If the function for a header field is nil, or if no function is
+specified for a particular header field, the default action is to
+insert the value of the header, unless it is nil.
+
 The headers are inserted in the order of the FORMAT-RULES.
-A key of t represents any otherwise unmentioned headers.
+A key of t in FORMAT-RULES. represents any otherwise unmentioned headers.
 A key of nil has as its value a list of defaulted headers to ignore."
   (let ((ignore (append (cdr (assq nil format-rules))
 			(mapcar #'car format-rules))))
     (dolist (rule format-rules)
       (let* ((header (car rule))
 	    (value (mail-header header)))
+	(if (stringp header)
+	    (setq header (intern header)))
 	(cond ((null header) 'ignore)
 	      ((eq header t)
 	       (dolist (defaulted headers)
@@ -171,11 +182,11 @@
 			  (value (cdr defaulted)))
 		     (if (cdr rule)
 			 (funcall (cdr rule) header value)
-			 (funcall mail-header-format-function header value))))))
+		       (funcall mail-header-format-function header value))))))
 	      (value
 	       (if (cdr rule)
 		   (funcall (cdr rule) header value)
-		   (funcall mail-header-format-function header value))))))
+		 (funcall mail-header-format-function header value))))))
     (insert "\n")))
 
 (provide 'mailheader)