Function: loaddefs-generate--print-form

loaddefs-generate--print-form is a byte-compiled function defined in loaddefs-gen.el.gz.

Signature

(loaddefs-generate--print-form DEF)

Documentation

Print DEF in a format that makes sense for version control.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/loaddefs-gen.el.gz
(defun loaddefs-generate--print-form (def)
  "Print DEF in a format that makes sense for version control."
  (if (or (not (consp def))
          (not (symbolp (car def)))
          (memq (car def) '( make-obsolete
                             define-obsolete-function-alias))
          (not (stringp (nth 3 def))))
      (prin1 def (current-buffer) t)
    ;; We want to print, for instance, `defvar' values while escaping
    ;; control characters (so that we don't end up with lines with
    ;; trailing tab characters and the like), but we don't want to do
    ;; this for doc strings, because then the doc strings would be on
    ;; one single line, which would lead to more VC churn.  So --
    ;; typically (defvar foo 'value "\ Doc string" ...).
    (insert "(")
    (dotimes (_ 3)
      (prin1 (pop def) (current-buffer)
             '(t (escape-newlines . t)
                 (escape-control-characters . t)))
      (insert " "))
    (let ((start (point)))
      (prin1 (pop def) (current-buffer) t)
      (save-excursion
        (goto-char (1+ start))
        (insert "\\\n")))
    (while def
      (insert " ")
      (prin1 (pop def) (current-buffer)
             '(t (escape-newlines . t)
                 (escape-control-characters . t))))
    (insert ")")))