(Fstring_as_multibyte): Never return unibyte string unchanged.
Set size_byte field.
This commit is contained in:
parent
898df4aa14
commit
9658795ce8
1 changed files with 6 additions and 8 deletions
14
src/fns.c
14
src/fns.c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue