diff lisp/descr-text.el @ 67371:0df745d01551

(describe-char): Use *Help-2* buffer if the current buffer is *Help*. Call describe-text-properties while setting the original buffer.
author Kenichi Handa <handa@m17n.org>
date Thu, 08 Dec 2005 01:38:50 +0000
parents c365e04ea266
children c6a040f6797b
line wrap: on
line diff
--- a/lisp/descr-text.el	Thu Dec 08 01:26:14 2005 +0000
+++ b/lisp/descr-text.el	Thu Dec 08 01:38:50 2005 +0000
@@ -464,6 +464,9 @@
 				 (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*"))
 	 item-list max-width unicode)
 
     (if (or (< char 256)
@@ -616,7 +619,7 @@
     (setq max-width (apply #'max (mapcar #'(lambda (x)
 					     (if (cadr x) (length (car x)) 0))
 					 item-list)))
-    (with-output-to-temp-buffer "*Help*"
+    (with-output-to-temp-buffer help-buf
       (with-current-buffer standard-output
 	(set-buffer-multibyte multibyte-p)
 	(let ((formatter (format "%%%ds:" max-width)))
@@ -636,18 +639,17 @@
 		  (insert " " clm)))
 	      (insert "\n"))))
 
-	(save-excursion
-	  (goto-char (point-min))
-	  (re-search-forward "character:[ \t\n]+")
-	  (setq pos (point)))
-	(let ((end (+ pos (length char-description))))
-	  (if overlays
+	(when overlays
+	  (save-excursion
+	    (goto-char (point-min))
+	    (re-search-forward "character:[ \t\n]+")
+	    (let* ((end (+ (point) (length char-description))))
 	      (mapc #'(lambda (props)
-			(let ((o (make-overlay pos end)))
+			(let ((o (make-overlay (point) end)))
 			  (while props
 			    (overlay-put o (car props) (nth 1 props))
 			    (setq props (cddr props)))))
-		    overlays)))
+		    overlays))))
 
 	(when disp-vector
 	  (insert
@@ -720,7 +722,9 @@
 	  (insert "\nSee the variable `reference-point-alist' for "
 		  "the meaning of the rule.\n"))
 
-	(describe-text-properties pos (current-buffer))
+	(save-excursion
+	  (set-buffer orig-buf)
+	  (describe-text-properties pos help-buf))
 	(describe-text-mode)))))
 
 (defalias 'describe-char-after 'describe-char)