annotate etc/future-bug @ 107998:531d454c3a99

Implement GUI display of R2L lines, fix TTY display of R2L lines. xdisp.c [HAVE_WINDOW_SYSTEM]: Add prototype for append_stretch_glyph. (set_cursor_from_row) <cursor_x>: Remove unused variable. Fix off-by-one error in computing x at end of text in the row. (append_stretch_glyph): In reversed row, prepend the glyph rather than append it. Set resolved_level and bidi_type of the glyph. (extend_face_to_end_of_line): If the row is reversed, prepend a stretch glyph whose width is such that the rightmost glyph will be drawn at the right margin of the window. Fix off-by-one error on TTY frames in testing whether a line needs face extension. Fix face extension at ZV. If this is the last glyph row, use DEFAULT_FACE_ID, to avoid painting the rest of the window with the region face. (set_cursor_from_row, display_line): Use MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of row->continuation_lines_width. (next_element_from_buffer): Don't call bidi_paragraph_init if we are at ZV. Fixes a crash when reseated to ZV by try_window_reusing_current_matrix. (display_and_set_cursor, erase_phys_cursor): Handle negative HPOS, which happens with R2L glyph rows. Fixes a crash when inserting a character at end of an R2L line. (set_cursor_from_row): Don't be fooled by truncated rows: don't treat them as having zero-width characters. Improve comments. Don't reverse pos_before and pos_after for reversed glyph rows. Set cursor.x to negative value when the cursor might be on the left fringe. (IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines, consider the left fringe, not the right one. (notice_overwritten_cursor, draw_phys_cursor_glyph) (erase_phys_cursor): For reversed cursor_row, support cursor on the left fringe. fringe.c (update_window_fringes): For R2L rows, swap the bitmaps of continuation indicators on the fringes. (draw_fringe_bitmap): For reversed glyph rows, allow cursor on the left fringe. w32term.c (w32_draw_window_cursor): For reversed glyph rows, draw cursor on the left fringe. xterm.c (x_draw_window_cursor): For reversed glyph rows, draw cursor on the left fringe. dispnew.c (update_text_area): Handle reversed desired rows when the cursor is on the left fringe. (set_window_cursor_after_update): Limit cursor's hpos by -1 from below, not by 0, for when the cursor is on the left fringe. xdisp.c (unproduce_glyphs): New function. (display_line): Use it when produced glyphs are discarded from R2L glyph rows. (append_composite_glyph): In R2L rows, prepend the glyph rather than appending it. term.c (append_composite_glyph): In R2L rows, prepend the glyph rather than append it. Set up the resolved_level and bidi_type attributes of the appended glyph. (produce_special_glyphs): Mirror the backslash continuation character in R2L lines.
author Eli Zaretskii <eliz@gnu.org>
date Tue, 20 Apr 2010 16:31:28 +0300
parents 40be809ca221
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25852
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
1 Date: Tue, 23 Feb 2199 21:03:50 -0600
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
2 From: Karl Fogel <kfogel@floss.cyclic.com>
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
3 To: bug-gnu-emacs@prep.ai.mit.edu
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
4 Subject: M-x search-backward-in-time broken...
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
5 X-Windows: you'll envy the dead.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
6
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
7 In GNU Emacs 51.70.4 (i9986-unknown-linux-gnu, X toolkit) of Sat Feb 20 2199 on floss
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
8 configured using `configure --with-x-toolkit=yes'
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
9
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
10 The `search-backward-in-time' function appears to be broken in
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 25852
diff changeset
11 Emacs 51.70.
25852
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
12
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
13 Unfortunately, I can never seem to start the debugger early
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
14 enough to catch the error as it happens. However I have traced the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
15 problem through source by eye, and it looks like `time-forward' can't
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
16 handle negative arguments anymore. This is consistent with other
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
17 symptoms: for example, `undo' (which since 51.25 has worked by passing
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
18 a negative arg to `time-forward') is also broken. However, `do' still
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
19 works -- it seems that `time-forward' continues to handle positive
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
20 arguments just fine.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
21
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
22 No one here-and-now can figure out how to fix the problem,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
23 because the code for `time-forward' is so hairy. We're using M-x
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
24 report-future-emacs-bug to request that you folks include more
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
25 comments when you write it (sometime in 2198 as I recall).
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
26
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
27 Thanks!
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
28
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
29 -Karl Fogel <kfogel@red-bean.com>
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
30
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
31
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
32 P.S. You'll be pleased to know that since (time-forward N) still works
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
33 for N >= 0, we've used it to pre-emptively update configure.in.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
34 Emacs now configures and builds on every platform that will ever
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
35 be made. It wasn't easy, but at least that's one problem out of
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
36 the way for good. If you'd like the patch, just ask.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
37