Retrospective commit from 2009-09-27.
[bpt/emacs.git] / src / ChangeLog.bidi
CommitLineData
e342a24d
EZ
12009-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
162009-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
332009-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
462009-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
622009-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
742009-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
902009-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
972009-08-28 Eli Zaretskii <eliz@gnu.org>
98
99 * bidi.c <bidi_overriding_paragraph_direction>: Default to L2R,
100 for now.
101
2d6e4628
EZ
1022009-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
1122009-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
1192005-12-03 Eli Zaretskii <eliz@gnu.org>
120
121 * bidi.c: Include stdio.h unconditionally. Fix and elaborate
122 commentary. Add Copyright blurb.
123
1242004-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
1302004-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/>.