diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fns.c | 16 |
1 files changed, 4 insertions, 12 deletions
| @@ -473,7 +473,7 @@ concat (nargs, args, target_type, last_special) | |||
| 473 | } | 473 | } |
| 474 | else if (STRINGP (this)) | 474 | else if (STRINGP (this)) |
| 475 | { | 475 | { |
| 476 | result_len_byte += XSTRING (this)->size_byte; | 476 | if (STRING_MULTIBYTE (this)) |
| 477 | { | 477 | { |
| 478 | some_multibyte = 1; | 478 | some_multibyte = 1; |
| 479 | result_len_byte += XSTRING (this)->size_byte; | 479 | result_len_byte += XSTRING (this)->size_byte; |
| @@ -572,17 +572,9 @@ concat (nargs, args, target_type, last_special) | |||
| 572 | { | 572 | { |
| 573 | unsigned char c; | 573 | unsigned char c; |
| 574 | XSETFASTINT (elt, XSTRING (this)->data[thisindex++]); | 574 | XSETFASTINT (elt, XSTRING (this)->data[thisindex++]); |
| 575 | if (some_multibyte && XINT (elt) >= 0200 | 575 | if (some_multibyte) |
| 576 | && XINT (elt) < 0400) | 576 | XSETINT (elt, |
| 577 | { | 577 | unibyte_char_to_multibyte (XINT (elt))); |
| 578 | c = XINT (elt); | ||
| 579 | if (nonascii_insert_offset > 0) | ||
| 580 | c += nonascii_insert_offset; | ||
| 581 | else | ||
| 582 | c += DEFAULT_NONASCII_INSERT_OFFSET; | ||
| 583 | |||
| 584 | XSETINT (elt, c); | ||
| 585 | } | ||
| 586 | } | 578 | } |
| 587 | } | 579 | } |
| 588 | else if (BOOL_VECTOR_P (this)) | 580 | else if (BOOL_VECTOR_P (this)) |