# HG changeset patch # User Kenichi Handa # Date 1220749906 0 # Node ID 9723eb0d11abfbe01cce453c5b7e7a883d8e95a7 # Parent 72d94dcf4480c785b094dd25da04bbf949c49925 (FORWARD_CHAR): Check STOP after incrementing (POSITION).pos. diff -r 72d94dcf4480 -r 9723eb0d11ab src/composite.c --- a/src/composite.c Sun Sep 07 00:52:54 2008 +0000 +++ b/src/composite.c Sun Sep 07 01:11:46 2008 +0000 @@ -1189,11 +1189,17 @@ /* Update the members of POSTION to the next character boundary. */ #define FORWARD_CHAR(POSITION, STOP) \ do { \ + (POSITION).pos++; \ if ((POSITION).pos == (STOP)) \ - (POSITION).p = GAP_END_ADDR; \ - (POSITION).pos++; \ - (POSITION).pos_byte += BYTES_BY_CHAR_HEAD (*((POSITION).p)); \ - (POSITION).p += BYTES_BY_CHAR_HEAD (*((POSITION).p)); \ + { \ + (POSITION).p = GAP_END_ADDR; \ + (POSITION).pos_byte = GPT_BYTE; \ + } \ + else \ + { \ + (POSITION).p += BYTES_BY_CHAR_HEAD (*((POSITION).p)); \ + (POSITION).pos_byte += BYTES_BY_CHAR_HEAD (*((POSITION).p)); \ + } \ } while (0) /* Update the members of POSTION to the previous character boundary. */