"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