changeset 4480:74caf140505b

Wrap field descriptions, descr-text.el; name created buffer more uniquely. 2008-07-19 Aidan Kehoe <kehoea@parhasard.net> * descr-text.el (describe-property-list): Move the (require 'hyper-apropos) call to top level, this isn't the only function that uses the relevant face. (describe-char): Wrap the Unihan field descriptions if they are longer than the windows width minus 50. Rename the created buffer to reflect the character's position as well as its value.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 19 Jul 2008 15:19:59 +0200
parents 4cb7c59b5201
children f9c70d94f427
files lisp/ChangeLog lisp/descr-text.el
diffstat 2 files changed, 33 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Jul 17 22:50:22 2008 +0200
+++ b/lisp/ChangeLog	Sat Jul 19 15:19:59 2008 +0200
@@ -1,3 +1,13 @@
+2008-07-19  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* descr-text.el (describe-property-list): Move the (require
+	'hyper-apropos) call to top level, this isn't the only function
+	that uses the relevant face. 
+	(describe-char): Wrap the Unihan field descriptions if they are
+	longer than the windows width minus 50.
+	Rename the created buffer to reflect the character's position as
+	well as its value. 
+
 2008-07-07  Aidan Kehoe  <kehoea@parhasard.net>
 
 	Patch to make it up to the device-specific code whether
--- a/lisp/descr-text.el	Thu Jul 17 22:50:22 2008 +0200
+++ b/lisp/descr-text.el	Sat Jul 19 15:19:59 2008 +0200
@@ -32,6 +32,8 @@
 
 (eval-when-compile (require 'wid-edit))
 
+(require 'hyper-apropos)
+
 ;;; Describe-Text Utilities.
 
 (defun describe-text-widget (widget)
@@ -82,7 +84,6 @@
 into help buttons that call `describe-text-category' or
 `describe-face' when pushed."
   ;; Sort the properties by the size of their value.
-  (require 'hyper-apropos)
   (dolist (elt (sort (let (ret)
 		       (while properties
 			 (push (list (pop properties) (pop properties)) ret))
@@ -1029,7 +1030,8 @@
 		  (describe-text-properties pos tmp-buf)
 		  (with-current-buffer tmp-buf (buffer-string)))
 	      (kill-buffer tmp-buf))))
-	 item-list max-width unicode unicode-formatted unicode-error)
+	 item-list max-width unicode unicode-formatted unicode-error
+	 unicodedata (max-unicode-description-width (- (window-width) 50)))
 
 
     (setq unicode-error
@@ -1185,13 +1187,29 @@
 				     `(insert-gui-button
                                        (make-gui-button
                                         ,(symbol-name face)))))))
-	    ,@(let ((unicodedata (and unicode
-				      (describe-char-unicode-data unicode))))
+	    ,@(progn 
+		(setq unicodedata (and unicode
+				       (describe-char-unicode-data unicode)))
 		(if unicodedata
 		    (cons (list "Unicode data" " ") unicodedata)))))
     (setq max-width (apply #'max (mapcar #'(lambda (x)
 					     (if (cadr x) (length (car x)) 0))
 					 item-list)))
+    (when (and unicodedata (> max-width max-unicode-description-width))
+      (setq max-width max-unicode-description-width)
+      (with-temp-buffer
+	(let ((fill-column max-unicode-description-width)
+	      (indent-tabs-mode nil))
+	  (dolist (unidata-line unicodedata)
+	    (when (cadr unidata-line)
+	      (setf (car unidata-line)
+		    (progn (insert (car unidata-line))
+			   (goto-char (point-min))
+			   (fill-paragraph 'right)
+			   (delete-region (1- (point-max))
+					  (point-max))
+			   (buffer-string)))
+	      (delete-region (point-min) (point-max)))))))
     ; (help-setup-xref nil (interactive-p))
     (with-displaying-help-buffer
      (lambda ()
@@ -1274,7 +1292,7 @@
 ;        (setq help-xref-stack-item (list 'help-insert-string (buffer-string)))
          (toggle-read-only 1)
          (print-help-return-message)))
-     (format "Describe %c" (char-after pos)))))
+       (format "Describe %c <%d>" (char-after pos) pos))))
 
 (defalias 'describe-char-after 'describe-char)
 (make-obsolete 'describe-char-after 'describe-char "22.1")