mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-20 18:17:20 +00:00
Allow composition of pure-ASCII strings in the mode line
* src/composite.c (Fcomposition_get_gstring): Allow unibyte strings if they are pure ASCII, by copying text into a multibyte string.
This commit is contained in:
parent
953e7abf5b
commit
fe903c5ab7
@ -1746,7 +1746,18 @@ should be ignored. */)
|
||||
CHECK_STRING (string);
|
||||
validate_subarray (string, from, to, SCHARS (string), &frompos, &topos);
|
||||
if (! STRING_MULTIBYTE (string))
|
||||
error ("Attempt to shape unibyte text");
|
||||
{
|
||||
ptrdiff_t i;
|
||||
|
||||
for (i = SBYTES (string) - 1; i >= 0; i--)
|
||||
if (!ASCII_CHAR_P (SREF (string, i)))
|
||||
error ("Attempt to shape unibyte text");
|
||||
/* STRING is a pure-ASCII string, so we can convert it (or,
|
||||
rather, its copy) to multibyte and use that thereafter. */
|
||||
Lisp_Object string_copy = Fconcat (1, &string);
|
||||
STRING_SET_MULTIBYTE (string_copy);
|
||||
string = string_copy;
|
||||
}
|
||||
frombyte = string_char_to_byte (string, frompos);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user