bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

direct_output_forward_char counts bytes instead of chars


From: Per Starback
Subject: direct_output_forward_char counts bytes instead of chars
Date: Wed, 14 Nov 2001 22:02:15 +0100

In GNU Emacs 21.1.1 (i686-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2001-10-23 on tempus

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: sv_SE.ISO8859-1
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: sv_SE
  locale-coding-system: iso-latin-1
  default-enable-multibyte-characters: t

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

        $ emacs -q
        C-x 8 " a C-u 7 9 * ! C-b C-b

Now I am positioned at the last "*" which is at the rightmost position.

        C-f

The cursor disappears!  I expected the cursor to be on the "!".

The reason is that direct_output_forward_char counts bytes instead of
chars. Fix:

*** dispnew.c.~1.296.~  Wed Nov 14 01:15:36 2001
--- dispnew.c   Wed Nov 14 21:51:37 2001
***************
*** 3724,3731 ****
    row = MATRIX_ROW (w->current_matrix, w->cursor.vpos);
  
    /* Give up if PT is outside of the last known cursor row.  */
!   if (PT <= MATRIX_ROW_START_BYTEPOS (row)
!       || PT >= MATRIX_ROW_END_BYTEPOS (row))
      return 0;
  
    set_cursor_from_row (w, row, w->current_matrix, 0, 0, 0, 0);
--- 3724,3731 ----
    row = MATRIX_ROW (w->current_matrix, w->cursor.vpos);
  
    /* Give up if PT is outside of the last known cursor row.  */
!   if (PT <= MATRIX_ROW_START_CHARPOS (row)
!       || PT >= MATRIX_ROW_END_CHARPOS (row))
      return 0;
  
    set_cursor_from_row (w, row, w->current_matrix, 0, 0, 0, 0);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]