From: Kenichi Handa Date: Fri, 3 Sep 1999 01:28:42 +0000 (+0000) Subject: (Faset): Adjust the way to check byte-combining X-Git-Tag: emacs-pretest-21.0.90~6938 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a260318815a268ae273669e3116274732e1f1945;p=emacs.git (Faset): Adjust the way to check byte-combining possibility for the new handling of multibyte sequence. --- diff --git a/src/data.c b/src/data.c index a7e16c93abb..c1cfb817d6a 100644 --- a/src/data.c +++ b/src/data.c @@ -1859,13 +1859,14 @@ IDX starts at 0.") error ("Attempt to change byte length of a string"); /* We can't accept a change causing byte combining. */ - if ((idxval > 0 && !CHAR_HEAD_P (*str) - && (prev_byte = string_char_to_byte (array, idxval - 1), - (prev_byte + 1 < idxval_byte - || (p[-1] >= 0x80 && p[-1] < 0xA0)))) - || (idxval < XSTRING (array)->size - 1 - && (*str >=0x80 && *str < 0xA0) - && !CHAR_HEAD_P (p[actual_len]))) + if (!ASCII_BYTE_P (*str) + && ((idxval > 0 && !CHAR_HEAD_P (*str) + && (prev_byte = string_char_to_byte (array, idxval - 1), + BYTES_BY_CHAR_HEAD (XSTRING (array)->data[prev_byte]) + > idxval_byte - prev_byte)) + || (idxval < XSTRING (array)->size - 1 + && !CHAR_HEAD_P (p[actual_len]) + && new_len < BYTES_BY_CHAR_HEAD (*str)))) error ("Attempt to change char length of a string"); while (new_len--) *p++ = *str++;