diff lisp/help-fns.el @ 91059:12589730c028

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 901) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-273
author Miles Bader <miles@gnu.org>
date Sat, 20 Oct 2007 02:30:26 +0000
parents 4b09bb044f38
children 880960b70474
line wrap: on
line diff
--- a/lisp/help-fns.el	Sat Oct 20 02:22:59 2007 +0000
+++ b/lisp/help-fns.el	Sat Oct 20 02:30:26 2007 +0000
@@ -456,6 +456,28 @@
 	      (and (or any-symbol (boundp sym)) sym)))))
       0))
 
+(defun describe-variable-custom-version-info (variable)
+  (let ((custom-version (get variable 'custom-version))
+	(cpv (get variable 'custom-package-version))
+	(output nil))
+    (if custom-version
+	(setq output
+	      (format "This variable was introduced, or its default value was changed, in\nversion %s of Emacs.\n"
+		      custom-version))
+      (when cpv
+	(let* ((package (car-safe cpv))
+	       (version (car (cdr-safe cpv)))
+	       (pkg-versions (assq package customize-package-emacs-version-alist))
+	       (emacsv (cdr (assoc version pkg-versions))))
+	  (if (and package version)
+	      (setq output
+		    (format (concat "This variable was introduced, or its default value was changed, in\nversion %s of the %s package"
+				    (if emacsv
+					(format " that is part of Emacs %s" emacsv))
+				    ".\n")
+			    version package))))))
+    output))
+
 ;;;###autoload
 (defun describe-variable (variable &optional buffer frame)
   "Display the full documentation of VARIABLE (a symbol).
@@ -646,16 +668,23 @@
 	      (with-current-buffer standard-output
 		(insert (or doc "Not documented as a variable."))))
 	    ;; Make a link to customize if this variable can be customized.
-	    (if (custom-variable-p variable)
-		(let ((customize-label "customize"))
+	    (when (custom-variable-p variable)
+	      (let ((customize-label "customize"))
+		(terpri)
+		(terpri)
+		(princ (concat "You can " customize-label " this variable."))
+		(with-current-buffer standard-output
+		  (save-excursion
+		    (re-search-backward
+		     (concat "\\(" customize-label "\\)") nil t)
+		    (help-xref-button 1 'help-customize-variable variable))))
+	      ;; Note variable's version or package version
+	      (let ((output (describe-variable-custom-version-info variable)))
+		(when output
 		  (terpri)
 		  (terpri)
-		  (princ (concat "You can " customize-label " this variable."))
-		  (with-current-buffer standard-output
-		    (save-excursion
-		      (re-search-backward
-		       (concat "\\(" customize-label "\\)") nil t)
-		      (help-xref-button 1 'help-customize-variable variable)))))
+		  (princ output))))
+
 	    (print-help-return-message)
 	    (save-excursion
 	      (set-buffer standard-output)