"Lennart Borgman (gmail)" <[EMAIL PROTECTED]> writes:
> Looking at the logic it seems like it perhaps should be like below
> instead? This at least works in my case. The current test just seems
> useless. Or perhaps I am just very bad at reading C code?
The "useless" code you refer to was installed to fix a bug, and it
did fix _that_ bug.
Now you have found a different bug in the same code, and you propose
a different way to fix _your_ bug.
Indeed your code does look like it could fix the problem - but it
definitely changes the semantics of the test, so there may very well
be other corner casee which are broken by _your_ code.
Can you track down the bug report(s) which lead up to the fix I
installed, so you can confirm that your change also fixes the old bug(s).
I must be close to the date in the ChangeLog.
Besides, the ++row seems dangrous to me. Would row+1 do the same?
>
>
> Index: xdisp.c
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v
> retrieving revision 1.1146
> diff -c -r1.1146 xdisp.c
> *** xdisp.c 10 Apr 2007 15:57:25 -0000 1.1146
> --- xdisp.c 12 Apr 2007 00:40:36 -0000
> ***************
> *** 15859,15865 ****
> If the row is continued it doesn't end in a newline. */
> if (CHARPOS (row->end.string_pos) >= 0)
> cursor_row_p = (row->continued_p
> ! || PT >= MATRIX_ROW_START_CHARPOS (row));
> else if (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row))
> {
> /* If the row ends in middle of a real character,
> --- 15859,15865 ----
> If the row is continued it doesn't end in a newline. */
> if (CHARPOS (row->end.string_pos) >= 0)
> cursor_row_p = (row->continued_p
> ! || PT < MATRIX_ROW_START_CHARPOS (++row));
> else if (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P (row))
> {
> /* If the row ends in middle of a real character,
--
Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk
_______________________________________________
emacs-pretest-bug mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug