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)