>>> "EB" == Emanuel Berg writes: > Uwe Brauer wrote: >> For example I expanded a mail alias that contains a lot of >> addresses but I did this in the TO field not in the CC >> field. Would be nifty if I could change it on the fly > ;; is there really no function like this already? > (defun message-set-header (hdr val) > (interactive "sheader: \nsvalue: ") > ;; check here if there _is_ such a header - how? > ;; also a must-have, super-simple building-block from the holster > ;; but can't find it either > (message-position-on-field hdr) > (message-beginning-of-line) > (delete-region (point) (point-at-eol)) > (insert val) ) > ;; test: > ;; (message-set-header "Subject" "Lara loves YOU") > (defun message-transpose-headers (hdr1 hdr2) > (interactive "sheader 1: \nsheader 2: ") > (let ((v1 (message-field-value hdr1)) > (v2 (message-field-value hdr2))) > (message-set-header hdr1 v2) > (message-set-header hdr2 v1) )) > ;; test: > ;; (message-transpose-headers "To" "Subject") I cried victory to early (without testing) When I try (message-transpose-headers "Cc" "To") I obtain Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) insert(nil) message-set-header("To" nil) (let ((v1 (message-field-value hdr1)) (v2 (message-field-value hdr2))) (message-set-header hdr1 v2) (message-set-header hdr2 v1)) message-transpose-headers("To" "Cc") funcall-interactively(message-transpose-headers "To" "Cc") call-interactively(message-transpose-headers record nil) command-execute(message-transpose-headers record) execute-extended-command(nil "message-transpose-headers" "message-tr") funcall-interactively(execute-extended-command nil "message-transpose-headers" "message-tr") call-interactively(execute-extended-command nil nil) command-execute(execute-extended-command)