# HG changeset patch # User Richard M. Stallman # Date 901998779 0 # Node ID 011361a15baccc296436a763ff373bc42662b389 # Parent df59ef00f1e485f4a7435b5d229abb903f3112ec (mail-header-format): Convert string to symbol. diff -r df59ef00f1e4 -r 011361a15bac lisp/mail/mailheader.el --- 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)