changeset 16557:4ff6a0f0f5c7

(describe-variable): Pretty-print the values. Put doc string first, if the value is long.
author Richard M. Stallman <rms@gnu.org>
date Sun, 10 Nov 1996 18:52:18 +0000
parents 3a1df67c6677
children 40a1e1451821
files lisp/help.el
diffstat 1 files changed, 44 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help.el	Sun Nov 10 05:02:38 1996 +0000
+++ b/lisp/help.el	Sun Nov 10 18:52:18 1996 +0000
@@ -592,32 +592,50 @@
      (list (if (equal val "")
 	       v (intern val)))))
   (if (symbolp variable)
-      (with-output-to-temp-buffer "*Help*"
-	(prin1 variable)
-	(if (not (boundp variable))
-	    (princ " is void")
-	  (princ "'s value is ")
-	  (prin1 (symbol-value variable)))
-	(terpri)
-	(if (local-variable-p variable)
-	    (progn
-	      (princ (format "Local in buffer %s; " (buffer-name)))
-	      (if (not (default-boundp variable))
-		  (princ "globally void")
-		(princ "global value is ")
-		(prin1 (default-value variable)))
-	      (terpri)))
-	(terpri)
-	(princ "Documentation:")
-	(terpri)
-	(let ((doc (documentation-property variable 'variable-documentation)))
-	  (princ (or doc "not documented as a variable.")))
-	(print-help-return-message)
-	(save-excursion
-	  (set-buffer standard-output)
-	  (help-mode)
-	  ;; Return the text we displayed.
-	  (buffer-string)))
+      (let (valvoid)
+	(with-output-to-temp-buffer "*Help*"
+	  (prin1 variable)
+	  (if (not (boundp variable))
+	      (progn
+		(princ " is void")
+		(terpri)
+		(setq valvoid t))
+	    (princ "'s value is ")
+	    (terpri)
+	    (pp (symbol-value variable))
+	    (terpri))
+	  (if (local-variable-p variable)
+	      (progn
+		(princ (format "Local in buffer %s; " (buffer-name)))
+		(if (not (default-boundp variable))
+		    (princ "globally void")
+		  (princ "global value is ")
+		  (terpri)
+		  (pp (default-value variable)))
+		(terpri)))
+	  (terpri)
+	  (save-current-buffer
+	    (set-buffer standard-output)
+	    (if (> (count-lines (point-min) (point-max)) 10)
+		(progn
+		  (goto-char (point-min))
+		  (if valvoid
+		      (forward-line 1)
+		    (forward-sexp 1)
+		    (delete-region (point) (progn (end-of-line) (point)))
+		    (insert "'s value is shown below.\n\n")
+		    (save-excursion
+		      (insert "\n\nValue:"))))))
+	  (princ "Documentation:")
+	  (terpri)
+	  (let ((doc (documentation-property variable 'variable-documentation)))
+	    (princ (or doc "not documented as a variable.")))
+	  (print-help-return-message)
+	  (save-excursion
+	    (set-buffer standard-output)
+	    (help-mode)
+	    ;; Return the text we displayed.
+	    (buffer-string))))
     (message "You did not specify a variable")))
 
 (defun where-is (definition)