Function: sc-attribs-chop-address

sc-attribs-chop-address is a byte-compiled function defined in supercite.el.gz.

Signature

(sc-attribs-chop-address FROM)

Documentation

Extract attribution information from FROM.

This populates the sc-attributions with the list of possible attributions.

Source Code

;; Defined in /usr/src/emacs/lisp/mail/supercite.el.gz
(defun sc-attribs-chop-address (from)
  "Extract attribution information from FROM.
This populates the `sc-attributions' with the list of possible attributions."
  (if (and (stringp from)
	   (< 0 (length from)))
      (let* ((sc-mumble "")
	     (namestring (sc-attribs-extract-namestring from))
	     (namelist   (sc-attribs-filter-namelist
			  (sc-attribs-chop-namestring namestring)))
	     (revnames   (reverse (cdr namelist)))
	     (firstname  (car namelist))
	     (midnames   (reverse (cdr revnames)))
	     (lastname   (car revnames))
	     (initials   (sc-attribs-strip-initials namelist))
	     (emailname  (sc-attribs-emailname from))
	     (n 1)
	     author middlenames)

	;; put basic information
	(setq
	 ;; put middle names and build sc-author entry
	 middlenames (mapconcat
		      (lambda (midname)
			(let ((key-attribs (format "middlename-%d" n))
			      (key-mail    (format "sc-middlename-%d" n)))
			  (push (cons key-attribs midname) sc-attributions)
			  (push (cons key-mail midname) sc-mail-info)
			  (setq n (1+ n))
			  midname))
		      midnames " ")

	 author (concat firstname " " middlenames (and midnames " ") lastname)

	 sc-attributions (append
			  (list
			   (cons "firstname"   firstname)
			   (cons "lastname"    lastname)
			   (cons "emailname"   emailname)
			   (cons "initials"    initials))
			  sc-attributions)
	 sc-mail-info (append
		       (list
			(cons "sc-firstname"   firstname)
			(cons "sc-middlenames" middlenames)
			(cons "sc-lastname"    lastname)
			(cons "sc-emailname"   emailname)
			(cons "sc-initials"    initials)
			(cons "sc-author"      author)
			(cons "sc-from-address" (sc-get-address
						 (sc-mail-field "from")
						 namestring))
			(cons "sc-reply-address" (sc-get-address
						  (sc-mail-field "reply-to")
						  namestring))
			(cons "sc-sender-address" (sc-get-address
						   (sc-mail-field "sender")
						   namestring)))
		       sc-mail-info)))
    ;; from string is empty
    (push (cons "sc-author" sc-default-author-name) sc-mail-info)))