(Fstring_as_multibyte): Never return unibyte string unchanged.

Set size_byte field.
This commit is contained in:
Richard M. Stallman 1998-04-02 22:48:51 +00:00
parent 898df4aa14
commit 9658795ce8

View file

@ -871,14 +871,12 @@ If STRING is multibyte, the result is STRING itself.")
{
if (! STRING_MULTIBYTE (string))
{
int newlen = multibyte_chars_in_text (XSTRING (string)->data,
STRING_BYTES (XSTRING (string)));
/* If all the chars are ASCII, STRING is already suitable. */
if (newlen != STRING_BYTES (XSTRING (string)))
{
string = Fcopy_sequence (string);
XSTRING (string)->size = newlen;
}
int nbytes = STRING_BYTES (XSTRING (string));
int newlen = multibyte_chars_in_text (XSTRING (string)->data, nbytes);
string = Fcopy_sequence (string);
XSTRING (string)->size = newlen;
XSTRING (string)->size_byte = nbytes;
}
return string;
}