diff --git a/src/ChangeLog b/src/ChangeLog index 0c4bf7ea82e..3dd4ce2b7c2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,14 @@ 2000-03-27 Gerd Moellmann + * xdisp.c (face_before_or_after_it_pos): Pass multibyteness + to DEC_TEXT_POS and INC_TEXT_POS. + + * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS + with parameter MULTIBYTE_P. + + * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter + MULTIBYTE_P. + * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte buffers because it looks for multibyte character sequences which don't exist in unibyte text. diff --git a/src/xdisp.c b/src/xdisp.c index 12c95051436..16ab84c9cb7 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1969,7 +1969,7 @@ face_before_or_after_it_pos (it, before_p) pos = it->current.pos; if (before_p) - DEC_TEXT_POS (pos); + DEC_TEXT_POS (pos, it->multibyte_p); else { if (it->what == IT_COMPOSITION) @@ -1977,7 +1977,7 @@ face_before_or_after_it_pos (it, before_p) composition. */ pos.charpos += it->cmp_len, pos.bytepos += it->len; else - INC_TEXT_POS (pos); + INC_TEXT_POS (pos, it->multibyte_p); } /* Determine face for CHARSET_ASCII, or unibyte. */ face_id = face_at_buffer_position (it->w,