summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/fns.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/fns.c b/src/fns.c
index eb2c2cbcbc0..64c6778aea4 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -473,7 +473,7 @@ concat (nargs, args, target_type, last_special)
}
else if (STRINGP (this))
{
- result_len_byte += XSTRING (this)->size_byte;
+ if (STRING_MULTIBYTE (this))
{
some_multibyte = 1;
result_len_byte += XSTRING (this)->size_byte;
@@ -572,17 +572,9 @@ concat (nargs, args, target_type, last_special)
{
unsigned char c;
XSETFASTINT (elt, XSTRING (this)->data[thisindex++]);
- if (some_multibyte && XINT (elt) >= 0200
- && XINT (elt) < 0400)
- {
- c = XINT (elt);
- if (nonascii_insert_offset > 0)
- c += nonascii_insert_offset;
- else
- c += DEFAULT_NONASCII_INSERT_OFFSET;
-
- XSETINT (elt, c);
- }
+ if (some_multibyte)
+ XSETINT (elt,
+ unibyte_char_to_multibyte (XINT (elt)));
}
}
else if (BOOL_VECTOR_P (this))