Subject: bug#20522: 25.0.50; ‘C-u C-x =’ output, ‘to input’ field

From: Ivan Shmakov <[email-masked]>
Date: Thu, 07 May 2015 15:15:32 +0000

>>>>> Eli Zaretskii <[email-masked]> writes:
>>>>> From: Ivan Shmakov  Date: Thu, 07 May 2015 07:10:23 +0000

 >> + (format
 >> +  "type \"C-x 8 RET %04x\" or \"C-x 8 RET %s\""

 >                       ^^^^ I see no need to tell users to type at
 > least 4 hex digits: "C-x 8 RET" accepts even one digit.  So I think
 > we should use %x here.

 >> +  char (get-char-code-property char 'name)))))))

 > Not every Unicode codepoint has a name, so get-char-code-property
 > could return nil.  E. g., try with any codepoint between zero and
 > #x1f, inclusive.  When that happens, we should try 'old-name'
 > instead, and if that returns nil as well (try #x99, for example), I
 > think the "by name" part should be omitted from the output of
 > describe-char.

	(I’ve suspected something like that, but didn’t check.)

	Please consider the revised patch MIMEd.

	* lisp/descr-text.el (describe-char): Show the exact C-x 8 RET
	invocation instead of a template.  (Bug#20522)

	It was also requested in bug#20499 that a specific C-x 8
	(iso-transl) sequence is shown.  Yet I believe that deserves a
	separate patch.

-- 
FSF associate member #7257  http://am-1.org/~ivan/      … 3013 B6A0 230E 334A
--- a/lisp/descr-text.el
+++ b/lisp/descr-text.el
@@ -618,7 +618,14 @@ defun describe-char (pos &optional buffer)
                                    'help-args '(,current-input-method))
 				 "input method")
 			 (list
-			  "type \"C-x 8 RET HEX-CODEPOINT\" or \"C-x 8 RET NAME\"")))))
+                          (let ((name
+                                 (or (get-char-code-property char 'name)
+                                     (get-char-code-property char 'old-name))))
+                            (if name
+                                (format
+                                 "type \"C-x 8 RET %x\" or \"C-x 8 RET %s\""
+                                 char name)
+                              (format "type \"C-x 8 RET %x\"" char))))))))
               ("buffer code"
                ,(if multibyte-p
                     (encoded-string-description