Mercurial > emacs
changeset 23203:a4e688757109
(count_combining_after): Check also preceding bytes at
POS if all characters in STRING are not character head.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 07 Sep 1998 13:39:15 +0000 |
parents | 750deb2c6c0b |
children | 70e635407161 |
files | src/insdel.c |
diffstat | 1 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/insdel.c Mon Sep 07 13:39:15 1998 +0000 +++ b/src/insdel.c Mon Sep 07 13:39:15 1998 +0000 @@ -950,11 +950,23 @@ if (length == 0 || ASCII_BYTE_P (string[length - 1])) return 0; i = length - 1; - while (i > 0 && ! CHAR_HEAD_P (string[i])) + while (i >= 0 && ! CHAR_HEAD_P (string[i])) { i--; } - if (! BASE_LEADING_CODE_P (string[i])) + if (i < 0) + { + /* All characters in `string' are not character head. + We must check also preceding bytes at POS. + We are sure that the gap is at POS. */ + string = BEG_ADDR; + i = pos_byte - 2; + while (i >= 0 && ! CHAR_HEAD_P (string[i])) + i--; + if (i < 0 || !BASE_LEADING_CODE_P (string[i])) + return 0; + } + else if (!BASE_LEADING_CODE_P (string[i])) return 0; if (pos == ZV)