diff options
| author | Gerd Moellmann | 2000-12-28 13:38:55 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-12-28 13:38:55 +0000 |
| commit | f1cb0a258473258fa307806cad134de0d25970f5 (patch) | |
| tree | 00449cad7a3908717242a2290642f979f9c92acd /src | |
| parent | 5a7cb8f13db7a034020435845486ad2d735355dd (diff) | |
| download | emacs-f1cb0a258473258fa307806cad134de0d25970f5.tar.gz emacs-f1cb0a258473258fa307806cad134de0d25970f5.zip | |
(push_key_description): Add parameter FORCE_MULTIBYTE.
If set, print multibyte text.
(Fsingle_key_description): Call push_key_description with
FORCE_MULTIBYTE set.
(describe_buffer_bindings): Likewise.
Diffstat (limited to 'src')
| -rw-r--r-- | src/keymap.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/keymap.c b/src/keymap.c index 0c1a1146d15..094dac4d13c 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -1768,9 +1768,10 @@ spaces are put between sequence elements, etc.") | |||
| 1768 | } | 1768 | } |
| 1769 | 1769 | ||
| 1770 | char * | 1770 | char * |
| 1771 | push_key_description (c, p) | 1771 | push_key_description (c, p, force_multibyte) |
| 1772 | register unsigned int c; | 1772 | register unsigned int c; |
| 1773 | register char *p; | 1773 | register char *p; |
| 1774 | int force_multibyte; | ||
| 1774 | { | 1775 | { |
| 1775 | unsigned c2; | 1776 | unsigned c2; |
| 1776 | 1777 | ||
| @@ -1859,13 +1860,23 @@ push_key_description (c, p) | |||
| 1859 | } | 1860 | } |
| 1860 | else if (c < 128 | 1861 | else if (c < 128 |
| 1861 | || (NILP (current_buffer->enable_multibyte_characters) | 1862 | || (NILP (current_buffer->enable_multibyte_characters) |
| 1862 | && SINGLE_BYTE_CHAR_P (c))) | 1863 | && SINGLE_BYTE_CHAR_P (c) |
| 1863 | *p++ = c; | 1864 | && !force_multibyte)) |
| 1865 | { | ||
| 1866 | *p++ = c; | ||
| 1867 | } | ||
| 1864 | else | 1868 | else |
| 1865 | { | 1869 | { |
| 1866 | if (NILP (current_buffer->enable_multibyte_characters) | 1870 | int valid_p = SINGLE_BYTE_CHAR_P (c) || char_valid_p (c, 0); |
| 1867 | || SINGLE_BYTE_CHAR_P (c) | 1871 | |
| 1868 | || ! char_valid_p (c, 0)) | 1872 | if (force_multibyte && valid_p) |
| 1873 | { | ||
| 1874 | if (SINGLE_BYTE_CHAR_P (c)) | ||
| 1875 | c = unibyte_char_to_multibyte (c); | ||
| 1876 | p += CHAR_STRING (c, p); | ||
| 1877 | } | ||
| 1878 | else if (NILP (current_buffer->enable_multibyte_characters) | ||
| 1879 | || valid_p) | ||
| 1869 | { | 1880 | { |
| 1870 | int bit_offset; | 1881 | int bit_offset; |
| 1871 | *p++ = '\\'; | 1882 | *p++ = '\\'; |
| @@ -1877,9 +1888,7 @@ push_key_description (c, p) | |||
| 1877 | } | 1888 | } |
| 1878 | } | 1889 | } |
| 1879 | else | 1890 | else |
| 1880 | { | 1891 | p += CHAR_STRING (c, p); |
| 1881 | p += CHAR_STRING (c, p); | ||
| 1882 | } | ||
| 1883 | } | 1892 | } |
| 1884 | 1893 | ||
| 1885 | return p; | 1894 | return p; |
| @@ -1926,7 +1935,7 @@ around function keys and event symbols.") | |||
| 1926 | { | 1935 | { |
| 1927 | char tem[KEY_DESCRIPTION_SIZE]; | 1936 | char tem[KEY_DESCRIPTION_SIZE]; |
| 1928 | 1937 | ||
| 1929 | *push_key_description (XUINT (key), tem) = 0; | 1938 | *push_key_description (XUINT (key), tem, 1) = 0; |
| 1930 | return build_string (tem); | 1939 | return build_string (tem); |
| 1931 | } | 1940 | } |
| 1932 | } | 1941 | } |
| @@ -2445,10 +2454,10 @@ You type Translation\n\ | |||
| 2445 | alternate_heading = 0; | 2454 | alternate_heading = 0; |
| 2446 | } | 2455 | } |
| 2447 | 2456 | ||
| 2448 | bufend = push_key_description (translate[c], buf); | 2457 | bufend = push_key_description (translate[c], buf, 1); |
| 2449 | insert (buf, bufend - buf); | 2458 | insert (buf, bufend - buf); |
| 2450 | Findent_to (make_number (16), make_number (1)); | 2459 | Findent_to (make_number (16), make_number (1)); |
| 2451 | bufend = push_key_description (c, buf); | 2460 | bufend = push_key_description (c, buf, 1); |
| 2452 | insert (buf, bufend - buf); | 2461 | insert (buf, bufend - buf); |
| 2453 | 2462 | ||
| 2454 | insert ("\n", 1); | 2463 | insert ("\n", 1); |