Function: nnmail-expand-newtext
nnmail-expand-newtext is a byte-compiled function defined in
nnmail.el.gz.
Signature
(nnmail-expand-newtext NEWTEXT &optional FANCYP)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmail.el.gz
(defun nnmail-expand-newtext (newtext &optional fancyp)
(let ((len (length newtext))
(pos 0)
c expanded beg N did-expand)
(while (< pos len)
(setq beg pos)
(while (and (< pos len)
(not (= (aref newtext pos) ?\\)))
(setq pos (1+ pos)))
(unless (= beg pos)
(push (substring newtext beg pos) expanded))
(when (< pos len)
;; We hit a \; expand it.
(setq did-expand t
pos (1+ pos)
c (aref newtext pos))
(if (not (or (= c ?\&)
(and (>= c ?1)
(<= c ?9))))
;; \ followed by some character we don't expand.
(push (char-to-string c) expanded)
;; \& or \N
(if (= c ?\&)
(setq N 0)
(setq N (- c ?0)))
;; We wrapped the searches in parentheses, so we have to
;; add some parentheses here...
(when fancyp
(setq N (+ N 3)))
(when (match-beginning N)
(push (if nnmail-split-lowercase-expanded
(downcase (buffer-substring (match-beginning N)
(match-end N)))
(buffer-substring (match-beginning N) (match-end N)))
expanded))))
(setq pos (1+ pos)))
(if did-expand
(apply #'concat (nreverse expanded))
newtext)))