]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fsingle_key_description): Return unique names for
authorKenichi Handa <handa@m17n.org>
Mon, 25 Sep 2006 02:52:03 +0000 (02:52 +0000)
committerKenichi Handa <handa@m17n.org>
Mon, 25 Sep 2006 02:52:03 +0000 (02:52 +0000)
generic characters.

src/ChangeLog
src/keymap.c

index 6a6761e72048310d294f5d7319e6f6f87bba25bb..d3533e377b0954626121ecd3234f5ba8682373fe 100644 (file)
@@ -1,3 +1,8 @@
+2006-09-25  Kenichi Handa  <handa@m17n.org>
+
+       * keymap.c (Fsingle_key_description): Return unique names for
+       generic characters.
+
 2006-09-24  Richard Stallman  <rms@gnu.org>
 
        * search.c (compile_pattern_1): Don't BLOCK_INPUT.
index aad586ab1d0b921c877e1cb1210e731b22a7e66d..67b0ed3a8462d124a473c55dcb96cec1e7658876 100644 (file)
@@ -2386,15 +2386,22 @@ around function keys and event symbols.  */)
        SPLIT_CHAR (without_bits, charset, c1, c2);
 
       if (charset
-         && CHARSET_DEFINED_P (charset)
-         && ((c1 >= 0 && c1 < 32)
-             || (c2 >= 0 && c2 < 32)))
+         && CHAR_VALID_P (charset, 1)
+         && (c1 == 0 || c2 == 0))
        {
          /* Handle a generic character.  */
          Lisp_Object name;
-         name = CHARSET_TABLE_INFO (charset, CHARSET_LONG_NAME_IDX);
+         char buf[256];
+
+         name = CHARSET_TABLE_INFO (charset, CHARSET_SHORT_NAME_IDX);
          CHECK_STRING (name);
-         return concat2 (build_string ("Character set "), name);
+         if (c1 == 0)
+           /* Only a charset is specified.   */
+           sprintf (buf, "Generic char %d: all of ", without_bits);
+         else
+           /* 1st code-point of 2-dimensional charset is specified.   */
+           sprintf (buf, "Generic char %d: row %d of ", without_bits, c1);
+         return concat2 (build_string (buf), name);
        }
       else
        {