Function: TeX-command-expand

TeX-command-expand is a byte-compiled function defined in tex.el.

Signature

(TeX-command-expand COMMAND &optional LIST)

Documentation

Expand COMMAND for TeX-active-master as described in LIST.

LIST default to TeX-expand-list(var)/TeX-expand-list(fun). As a special exception,
%% can be used to produce a single % sign in the output
without further expansion.

Source Code

;; Defined in ~/.emacs.d/elpa/auctex-14.1.2/tex.el
(defun TeX-command-expand (command &optional list)
  "Expand COMMAND for `TeX-active-master' as described in LIST.
LIST default to `TeX-expand-list'.  As a special exception,
`%%' can be used to produce a single `%' sign in the output
without further expansion."
  (let ((TeX-expand-command command)
        TeX-expand-pos
        TeX-command-text
        TeX-command-pos
        pat entry case-fold-search string expansion arguments)
    (setq list (cons
                (list "%%" (lambda nil
                             (setq TeX-expand-pos (1+ TeX-expand-pos))
                             "%"))
                (or list (TeX-expand-list)))
          pat (regexp-opt (mapcar #'car list)))
    (while (setq TeX-expand-pos (string-match pat TeX-expand-command TeX-expand-pos))
      (setq string (match-string 0 TeX-expand-command)
            entry (assoc string list)
            expansion (car (cdr entry)) ;Second element
            arguments (cdr (cdr entry)) ;Remaining elements
            string (save-match-data
                     (cond
                      ((functionp expansion)
                       (apply expansion arguments))
                      ((boundp expansion)
                       (apply (symbol-value expansion) arguments))
                      (t
                       (error "Nonexpansion %s" expansion)))))
      (if (stringp string)
          (setq TeX-expand-command
                (replace-match string t t TeX-expand-command))))
    TeX-expand-command))