Function: feedmail-fiddle-from

feedmail-fiddle-from is a byte-compiled function defined in feedmail.el.gz.

Signature

(feedmail-fiddle-from)

Documentation

Fiddle From:.

Source Code

;; Defined in /usr/src/emacs/lisp/mail/feedmail.el.gz
(defun feedmail-fiddle-from ()
  "Fiddle From:."
  (feedmail-say-debug ">in-> feedmail-fiddle-from")
  ;; default is to fall off the end of the list and do nothing
  (cond
   ;; nil means do nothing
   ((eq nil feedmail-from-line) nil)
   ;; t is the same as using the default computation, so compute it and recurse
   ;; user-full-name suggested by kpc@ptolemy.arc.nasa.gov (=Kimball Collins)
   ;; improvement using user-mail-address suggested by
   ;;   gray@austin.apc.slb.com (Douglas Gray Stephens)
   ((eq t feedmail-from-line)
    (let ((feedmail-from-line
	   (cond
	    ((eq mail-from-style nil) user-mail-address)
	    ((eq mail-from-style 'parens) (concat user-mail-address " (" (user-full-name) ")"))
	    ((eq mail-from-style 'angles) (concat "\"" (user-full-name) "\" <" user-mail-address ">"))
	    )))
      (feedmail-fiddle-from)))

   ;; if it's a string, simply make a fiddle-plex out of it and recurse
   ((stringp feedmail-from-line)
    (let ((feedmail-from-line (list "ignored" feedmail-from-line 'create)))
      (feedmail-fiddle-from)))

   ;; if it's a function, call it and recurse with the resulting value
   ((and (symbolp feedmail-from-line) (fboundp feedmail-from-line))
    (let ((feedmail-from-line (funcall feedmail-from-line)))
      (feedmail-fiddle-from)))

   ;; if it's a list, it must be a fiddle-plex -- so fiddle, man, fiddle
   ((listp feedmail-from-line)
    (feedmail-fiddle-header
     (if feedmail-is-a-resend "Resent-From" "From")
     (nth 1 feedmail-from-line)		; value
     (nth 2 feedmail-from-line)		; action
     (nth 3 feedmail-from-line)))))	; folding