From 9a656d196af1e01fc3f95d5c83d0df69b559c0ce Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 10 Nov 1996 18:52:18 +0000 Subject: [PATCH] (describe-variable): Pretty-print the values. Put doc string first, if the value is long. --- lisp/help.el | 70 +++++++++++++++++++++++++++++++++------------------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/lisp/help.el b/lisp/help.el index e775139ddb8..46c0975dd99 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -592,32 +592,50 @@ Returns the documentation as a string, also." (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) -- 2.39.2