]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/help-fns.el (describe-variable): Use cl-print for the value
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 2 Mar 2017 07:08:08 +0000 (02:08 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 2 Mar 2017 07:08:32 +0000 (02:08 -0500)
Use `pp-buffer' rather than `pp' so as to avoid calling prin1 twice.

lisp/help-fns.el

index 21f76e100a7b81472f0e248ed5a1316d0783335e..69a6113eda1513dbf0ae564f5aaf2b03bf920f17 100644 (file)
@@ -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))