Commit | Line | Data |
---|---|---|
e342a24d EZ |
1 | 2009-09-27 Eli Zaretskii <eliz@gnu.org> |
2 | ||
3 | * xdisp.c (next_element_from_buffer): If called not at line | |
4 | beginning, start bidi iteration from line beginning. | |
5 | ||
6 | * bidi.c (bidi_paragraph_init): Use | |
7 | bidi_overriding_paragraph_direction instead of a literal zero. | |
8 | (bidi_initialize): Fix some character types, per Unicode 5.x. | |
9 | (bidi_get_type): Abort if called with invalid character code. | |
10 | ||
11 | * dispextern.h: Add prototype of bidi_mirror_char. | |
12 | ||
13 | * xdisp.c (get_next_display_element): Mirror characters whose | |
14 | resolved type is STRONG_R. | |
15 | ||
9c82e145 EZ |
16 | 2009-09-26 Eli Zaretskii <eliz@gnu.org> |
17 | ||
18 | * bidi.c (bidi_paragraph_init): Don't set bidi_it->ch_len. Abort | |
19 | if called not at beginning of a new paragraph. | |
20 | (bidi_get_next_char_visually): Prepare and use a sentinel iterator | |
21 | state when first_elt flag is set. | |
22 | ||
23 | * dispextern.h (struct bidi_it): New struct member first_elt. | |
24 | ||
25 | * bidi.c (bidi_init_it): Initialize bidi_it->first_elt. | |
26 | (bidi_copy_it): Don't copy the first_elt flag. | |
27 | ||
28 | * xdisp.c (reseat_1): Initialize bidi_it.first_elt. Move bidi | |
29 | scan start code from here... | |
30 | (next_element_from_buffer): ...to here. Use bidi_it.first_elt | |
31 | flag. | |
32 | ||
e7402cb2 EZ |
33 | 2009-09-20 Eli Zaretskii <eliz@gnu.org> |
34 | ||
35 | * xdisp.c (reseat_1): Handle position < BEGV. | |
36 | ||
37 | * bidi.c (bidi_paragraph_init): Set bidi_it->ch_len. Handle ZV. | |
38 | (bidi_init_it): Don't initialize bidi_it->ch_len. | |
39 | (bidi_resolve_explicit_1): Abort if bidi_it->ch_len was not | |
40 | initialized. | |
41 | (bidi_at_paragraph_end, bidi_resolve_explicit_1) | |
42 | (bidi_resolve_weak, bidi_level_of_next_char): Handle bytepos at | |
43 | ZV_BYTE. | |
44 | (bidi_resolve_explicit_1): Handle position < BEGV. | |
45 | ||
89d3374a EZ |
46 | 2009-09-19 Eli Zaretskii <eliz@gnu.org> |
47 | ||
48 | * xdisp.c (init_iterator): Call bidi_init_it. Set | |
49 | bidi_it->bytepos if buffer position specified. | |
50 | (reseat_1): Don't call bidi_init_it. Call bidi_paragraph_init | |
51 | instead. Move back to preceding character before the call to | |
52 | bidi_get_next_char_visually. | |
53 | ||
54 | * bidi.c: Remove all STANDALONE parts. | |
55 | (bidi_init_it): Init bidi_it->charpos and bidi_it->bytepos to -1. | |
56 | Don't call bidi_paragraph_init. Change arguments. | |
57 | (bidi_paragraph_init): Remove code for negative pos. | |
58 | ||
59 | * dispextern.h <bidi_it>: Rename orig_type to type_after_w1 and | |
60 | pristine_type to orig_type. | |
61 | ||
90fcfd71 EZ |
62 | 2009-09-12 Eli Zaretskii <eliz@gnu.org> |
63 | ||
64 | * dispnew.c (direct_output_for_insert): Give up if we are | |
65 | reordering bidirectional text. | |
66 | ||
67 | * dispextern.h (IT_STACK_SIZE): Enlarge to 5. | |
68 | ||
69 | * xdisp.c (display_line): Set row->end and it->start for the next | |
70 | row to the next character in logical order. If we are reordering | |
71 | bidi text, push and pop the iterator before and after momentarily | |
72 | iterating in logical order. | |
73 | ||
74 | 2009-09-11 Eli Zaretskii <eliz@gnu.org> | |
75 | ||
d8300a8a EZ |
76 | Note: The following changes were undone on 2009-09-12. |
77 | ||
90fcfd71 EZ |
78 | * xdisp.c (set_iterator_to_next, reseat, reseat_1) |
79 | (reseat_at_next_visible_line_start): Accept additional argument | |
80 | force_logical_p; all callers changed. If force_logical_p is | |
81 | non-zero, force iteration in buffer's logical order even in bidi | |
82 | buffers. | |
83 | ||
84 | * dispnew.c (direct_output_for_insert): Call set_iterator_to_next | |
85 | with additional argument zero. | |
86 | ||
87 | * dispextern.h (set_iterator_to_next): Now accepts an additional | |
88 | argument. | |
89 | ||
a88bbf05 EZ |
90 | 2009-08-29 Eli Zaretskii <eliz@gnu.org> |
91 | ||
92 | * xdisp.c (set_cursor_from_row): Don't assume glyph->charpos | |
93 | increments linearly. | |
94 | (try_window_reusing_current_matrix): Don't assume glyph->charpos | |
95 | increments linearly. | |
96 | ||
97 | 2009-08-28 Eli Zaretskii <eliz@gnu.org> | |
98 | ||
99 | * bidi.c <bidi_overriding_paragraph_direction>: Default to L2R, | |
100 | for now. | |
101 | ||
2d6e4628 EZ |
102 | 2009-08-22 Eli Zaretskii <eliz@gnu.org> |
103 | ||
104 | * bidi.c (bidi_initialize): staticpro bidi_char_table. | |
105 | (bidi_check_type): New function. | |
106 | (bidi_cache_iterator_state, bidi_remember_char) | |
107 | (bidi_resolve_explicit_1, bidi_resolve_explicit) | |
108 | (bidi_resolve_weak, bidi_resolve_neutral) | |
109 | (bidi_level_of_next_char): Use it to validate the bidi type | |
110 | assigned to the iterator. | |
111 | ||
f44e260c EZ |
112 | 2009-08-15 Eli Zaretskii <eliz@gnu.org> |
113 | ||
114 | * bidi.c (bidi_initialize): Fix initialization of bidi_type_table. | |
115 | ||
116 | * xdisp.c (set_iterator_to_next): Fix position setting after call | |
117 | to bidi_get_next_char_visually. | |
118 | ||
b7b65b15 EZ |
119 | 2005-12-03 Eli Zaretskii <eliz@gnu.org> |
120 | ||
121 | * bidi.c: Include stdio.h unconditionally. Fix and elaborate | |
122 | commentary. Add Copyright blurb. | |
123 | ||
124 | 2004-03-08 Kenichi Handa <handa@m17n.org> | |
125 | ||
126 | * xdisp.c (reseat_1): Call bidi_init_it with a previous position. | |
127 | ||
128 | * bidi.c (bidi_init_it): Set bidi_it->ch_len even if POS > 0. | |
129 | ||
130 | 2004-03-04 Kenichi Handa <handa@m17n.org> | |
131 | ||
f44e260c EZ |
132 | The following changes are to support for bi-directional text |
133 | display. | |
b7b65b15 EZ |
134 | |
135 | * Makefile.in (obj): Include bidi.o. | |
136 | (bidi.o): New target. | |
137 | ||
138 | * bidi.c: New file. | |
139 | ||
140 | * buffer.h (struct buffer): New member bidi_display_reordering. | |
141 | ||
142 | * buffer.c (init_buffer_once): Initialize bidi_display_reordering. | |
143 | (syms_of_buffer): Declarations of Lisp variables | |
144 | default-bidi-display-reordering and bidi-display-reordering. | |
145 | ||
146 | * dispextern.h (BIDI_MAXLEVEL): New macro. | |
147 | (bidi_type_t, bidi_dir_t): New types. | |
148 | (bidi_saved_info, bidi_stack, bidi_it): New structs. | |
149 | (struct it): New members bidi_p and bidi_it. | |
150 | (bidi_init_it): Extern it. | |
151 | (bidi_get_next_char_visually): Extern it. | |
152 | ||
153 | * dispnew.c (direct_output_forward_char): Give up if we need bidi | |
154 | processing or buffer's direction is right-to-left. | |
155 | ||
156 | * xdisp.c (init_iterator): Initialize it->bidi_p. | |
157 | (reseat_1): Cal bidi_init_it and bidi_get_next_char_visually if | |
158 | necessary. | |
159 | (set_iterator_to_next): Cal bidi_get_next_char_visually if | |
160 | necessary. | |
161 | ||
162 | ||
163 | ;; Local Variables: | |
164 | ;; coding: utf-8 | |
165 | ;; add-log-time-zone-rule: t | |
166 | ;; End: | |
167 | ||
168 | Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. | |
169 | ||
170 | This file is part of GNU Emacs. | |
171 | ||
172 | GNU Emacs is free software: you can redistribute it and/or modify | |
173 | it under the terms of the GNU General Public License as published by | |
174 | the Free Software Foundation, either version 3 of the License, or | |
175 | (at your option) any later version. | |
176 | ||
177 | GNU Emacs is distributed in the hope that it will be useful, | |
178 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
179 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
180 | GNU General Public License for more details. | |
181 | ||
182 | You should have received a copy of the GNU General Public License | |
183 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |