diff lisp/descr-text.el @ 67542:c6a040f6797b

(describe-char): Rework last fix to solve the problem is the same way it's solved for everything else in that function (i.e. by extracting the info before setting up the *Help* buffer).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 12 Dec 2005 16:50:39 +0000
parents 0df745d01551
children da1c54077c04
line wrap: on
line diff
--- a/lisp/descr-text.el	Mon Dec 12 14:23:06 2005 +0000
+++ b/lisp/descr-text.el	Mon Dec 12 16:50:39 2005 +0000
@@ -464,9 +464,13 @@
 				 (single-key-description char)
 			       (string-to-multibyte
 				(char-to-string char)))))
-	 (orig-buf (current-buffer))
-	 (help-buf (if (eq orig-buf (get-buffer "*Help*"))
-		       "*Help-2*" "*Help*"))
+         (text-props-desc
+          (let ((tmp-buf (generate-new-buffer " *text-props*")))
+            (unwind-protect
+                (progn
+                  (describe-text-properties pos tmp-buf)
+                  (with-current-buffer tmp-buf (buffer-string)))
+              (kill-buffer tmp-buf))))
 	 item-list max-width unicode)
 
     (if (or (< char 256)
@@ -619,7 +623,7 @@
     (setq max-width (apply #'max (mapcar #'(lambda (x)
 					     (if (cadr x) (length (car x)) 0))
 					 item-list)))
-    (with-output-to-temp-buffer help-buf
+    (with-output-to-temp-buffer "*Help*"
       (with-current-buffer standard-output
 	(set-buffer-multibyte multibyte-p)
 	(let ((formatter (format "%%%ds:" max-width)))
@@ -722,9 +726,7 @@
 	  (insert "\nSee the variable `reference-point-alist' for "
 		  "the meaning of the rule.\n"))
 
-	(save-excursion
-	  (set-buffer orig-buf)
-	  (describe-text-properties pos help-buf))
+        (if text-props-desc (insert text-props-desc))
 	(describe-text-mode)))))
 
 (defalias 'describe-char-after 'describe-char)