From: Stefan Monnier Date: Thu, 2 Mar 2017 07:08:08 +0000 (-0500) Subject: * lisp/help-fns.el (describe-variable): Use cl-print for the value X-Git-Tag: emacs-26.0.90~674 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2c18969c810f338d73beda592ee5af7103132e97;p=emacs.git * lisp/help-fns.el (describe-variable): Use cl-print for the value Use `pp-buffer' rather than `pp' so as to avoid calling prin1 twice. --- diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 21f76e100a7..69a6113eda1 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -391,12 +391,12 @@ suitable file is found, return nil." ;; If lots of ordinary text characters run this command, ;; don't mention them one by one. (if (< (length non-modified-keys) 10) - (princ (mapconcat 'key-description keys ", ")) + (princ (mapconcat #'key-description keys ", ")) (dolist (key non-modified-keys) (setq keys (delq key keys))) (if keys (progn - (princ (mapconcat 'key-description keys ", ")) + (princ (mapconcat #'key-description keys ", ")) (princ ", and many ordinary text characters")) (princ "many ordinary text characters")))) (when (or remapped keys non-modified-keys) @@ -842,15 +842,22 @@ it is displayed along with the global value." (let ((line-beg (line-beginning-position)) (print-rep (let ((rep - (let ((print-quoted t)) - (prin1-to-string val)))) + (let ((print-quoted t) + (print-circle t)) + (cl-prin1-to-string val)))) (if (and (symbolp val) (not (booleanp val))) (format-message "`%s'" rep) rep)))) (if (< (+ (length print-rep) (point) (- line-beg)) 68) (insert " " print-rep) (terpri) - (pp val) + (let ((buf (current-buffer))) + (with-temp-buffer + (insert print-rep) + (pp-buffer) + (let ((pp-buffer (current-buffer))) + (with-current-buffer buf + (insert-buffer-substring pp-buffer))))) ;; Remove trailing newline. (and (= (char-before) ?\n) (delete-char -1))) (let* ((sv (get variable 'standard-value))