# HG changeset patch # User Gerd Moellmann # Date 991066870 0 # Node ID ee47b5c14208493c73be89834a9a051edb6fac7c # Parent ca726d19c1be41e4ec289e3a3f77051f9fe2b2d2 (Fsingle_key_description): Create a multibyte string only if necessary. diff -r ca726d19c1be -r ee47b5c14208 src/keymap.c --- a/src/keymap.c Mon May 28 16:20:48 2001 +0000 +++ b/src/keymap.c Mon May 28 16:21:10 2001 +0000 @@ -1959,14 +1959,18 @@ } else { - char tem[KEY_DESCRIPTION_SIZE]; - int len; - - *push_key_description (XUINT (key), tem, 1) = 0; - len = strlen (tem); - return make_multibyte_string (tem, - multibyte_chars_in_text (tem, len), - len); + char tem[KEY_DESCRIPTION_SIZE], *end; + int nbytes, nchars; + Lisp_Object string; + + end = push_key_description (XUINT (key), tem, 1); + nbytes = end - tem; + nchars = multibyte_chars_in_text (tem, nbytes); + if (nchars == nbytes) + string = build_string (tem); + else + string = make_multibyte_string (tem, nchars, nbytes); + return string; } } else if (SYMBOLP (key)) /* Function key or event-symbol */