diff options
| author | Eli Zaretskii | 2010-03-29 08:26:24 -0400 |
|---|---|---|
| committer | Eli Zaretskii | 2010-03-29 08:26:24 -0400 |
| commit | f4b6ba46b857e140c6482c0542c70fc989b1fe85 (patch) | |
| tree | e11b18a23b3a1ef8cfd0f535fec388d2fb3184a1 /src | |
| parent | c0546589ab9573047bb0d6cb82e27fe29221b71a (diff) | |
| download | emacs-f4b6ba46b857e140c6482c0542c70fc989b1fe85.tar.gz emacs-f4b6ba46b857e140c6482c0542c70fc989b1fe85.zip | |
Support MS-Windows build and reversed rows in GUI frames; add initial docs.
doc/emacs/mule.texi (International): Mention support of
bidirectional editing.
(Bidirectional Editing): New section.
etc/HELLO: Reorder Arabic and Hebrew into logical order, and
insert RLM before the opening paren, to make the display more
reasonable. Add setting for bidi-display-reordering in the local
variables section.
lisp/files.el: Make bidi-display-reordering safe variable for
boolean values.
src/xdisp (append_glyph): If the glyph row is reversed, prepend the
glyph rather than appending it.
src/makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O).
($(BLD)/bidi.$(O)): New target.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog.bidi | 20 | ||||
| -rw-r--r-- | src/makefile.w32-in | 9 | ||||
| -rw-r--r-- | src/xdisp.c | 20 |
3 files changed, 47 insertions, 2 deletions
diff --git a/src/ChangeLog.bidi b/src/ChangeLog.bidi index d27f747466b..33982c21450 100644 --- a/src/ChangeLog.bidi +++ b/src/ChangeLog.bidi | |||
| @@ -1,5 +1,25 @@ | |||
| 1 | 2010-03-29 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * doc/emacs/mule.texi (International): Mention support of | ||
| 4 | bidirectional editing. | ||
| 5 | (Bidirectional Editing): New section. | ||
| 6 | |||
| 1 | 2010-03-28 Eli Zaretskii <eliz@gnu.org> | 7 | 2010-03-28 Eli Zaretskii <eliz@gnu.org> |
| 2 | 8 | ||
| 9 | * etc/HELLO: Reorder Arabic and Hebrew into logical order, and | ||
| 10 | insert RLM before the opening paren, to make the display more | ||
| 11 | reasonable. Add setting for bidi-display-reordering in the local | ||
| 12 | variables section. | ||
| 13 | |||
| 14 | * lisp/files.el: Make bidi-display-reordering safe variable for | ||
| 15 | boolean values. | ||
| 16 | |||
| 17 | * xdisp (append_glyph): If the glyph row is reversed, prepend the | ||
| 18 | glyph rather than appending it. | ||
| 19 | |||
| 20 | * makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O). | ||
| 21 | ($(BLD)/bidi.$(O)): New target. | ||
| 22 | |||
| 3 | * bidi.c (bidi_get_next_char_visually): Improve commentary. | 23 | * bidi.c (bidi_get_next_char_visually): Improve commentary. |
| 4 | 24 | ||
| 5 | * dispextern.h (PRODUCE_GLYPHS): Set the reversed_p flag in the | 25 | * dispextern.h (PRODUCE_GLYPHS): Set the reversed_p flag in the |
diff --git a/src/makefile.w32-in b/src/makefile.w32-in index 156eddd6092..edb3f3f711b 100644 --- a/src/makefile.w32-in +++ b/src/makefile.w32-in | |||
| @@ -115,6 +115,7 @@ OBJ1 = $(BLD)/alloc.$(O) \ | |||
| 115 | $(BLD)/vm-limit.$(O) \ | 115 | $(BLD)/vm-limit.$(O) \ |
| 116 | $(BLD)/region-cache.$(O) \ | 116 | $(BLD)/region-cache.$(O) \ |
| 117 | $(BLD)/strftime.$(O) \ | 117 | $(BLD)/strftime.$(O) \ |
| 118 | $(BLD)/bidi.$(O) \ | ||
| 118 | $(BLD)/charset.$(O) \ | 119 | $(BLD)/charset.$(O) \ |
| 119 | $(BLD)/character.$(O) \ | 120 | $(BLD)/character.$(O) \ |
| 120 | $(BLD)/chartab.$(O) \ | 121 | $(BLD)/chartab.$(O) \ |
| @@ -338,6 +339,14 @@ $(BLD)/atimer.$(O) : \ | |||
| 338 | $(SRC)/syssignal.h \ | 339 | $(SRC)/syssignal.h \ |
| 339 | $(SRC)/systime.h | 340 | $(SRC)/systime.h |
| 340 | 341 | ||
| 342 | $(BLD)/bidi.$(O) : \ | ||
| 343 | $(SRC)/bidi.c \ | ||
| 344 | $(CONFIG_H) \ | ||
| 345 | $(SRC)/lisp.h \ | ||
| 346 | $(SRC)/buffer.h \ | ||
| 347 | $(SRC)/character.h \ | ||
| 348 | $(SRC)/dispextern.h | ||
| 349 | |||
| 341 | $(BLD)/buffer.$(O) : \ | 350 | $(BLD)/buffer.$(O) : \ |
| 342 | $(SRC)/buffer.c \ | 351 | $(SRC)/buffer.c \ |
| 343 | $(CONFIG_H) \ | 352 | $(CONFIG_H) \ |
diff --git a/src/xdisp.c b/src/xdisp.c index 867018180aa..ed2db08905d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -17823,8 +17823,8 @@ display_line (it) | |||
| 17823 | ++it->vpos; | 17823 | ++it->vpos; |
| 17824 | ++it->glyph_row; | 17824 | ++it->glyph_row; |
| 17825 | /* The next row should use same value of the reversed_p flag as this | 17825 | /* The next row should use same value of the reversed_p flag as this |
| 17826 | one. set_iterator_to_next decides when it's a new paragraph and | 17826 | one. set_iterator_to_next decides when it's a new paragraph, and |
| 17827 | recomputes the value of the flag accordingly. */ | 17827 | PRODUCE_GLYPHS recomputes the value of the flag accordingly. */ |
| 17828 | it->glyph_row->reversed_p = row->reversed_p; | 17828 | it->glyph_row->reversed_p = row->reversed_p; |
| 17829 | it->start = row_end; | 17829 | it->start = row_end; |
| 17830 | return row->displays_text_p; | 17830 | return row->displays_text_p; |
| @@ -21355,6 +21355,17 @@ append_glyph (it) | |||
| 21355 | glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; | 21355 | glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area]; |
| 21356 | if (glyph < it->glyph_row->glyphs[area + 1]) | 21356 | if (glyph < it->glyph_row->glyphs[area + 1]) |
| 21357 | { | 21357 | { |
| 21358 | /* If the glyph row is reversed, we need to prepend the glyph | ||
| 21359 | rather than append it. */ | ||
| 21360 | if (it->glyph_row->reversed_p && area == TEXT_AREA) | ||
| 21361 | { | ||
| 21362 | struct glyph *g; | ||
| 21363 | |||
| 21364 | /* Make room for the additional glyph. */ | ||
| 21365 | for (g = glyph - 1; g >= it->glyph_row->glyphs[area]; g--) | ||
| 21366 | g[1] = *g; | ||
| 21367 | glyph = it->glyph_row->glyphs[area]; | ||
| 21368 | } | ||
| 21358 | glyph->charpos = CHARPOS (it->position); | 21369 | glyph->charpos = CHARPOS (it->position); |
| 21359 | glyph->object = it->object; | 21370 | glyph->object = it->object; |
| 21360 | if (it->pixel_width > 0) | 21371 | if (it->pixel_width > 0) |
| @@ -21391,6 +21402,11 @@ append_glyph (it) | |||
| 21391 | abort (); | 21402 | abort (); |
| 21392 | glyph->bidi_type = it->bidi_it.type; | 21403 | glyph->bidi_type = it->bidi_it.type; |
| 21393 | } | 21404 | } |
| 21405 | else | ||
| 21406 | { | ||
| 21407 | glyph->resolved_level = 0; | ||
| 21408 | glyph->bidi_type = UNKNOWN_BT; | ||
| 21409 | } | ||
| 21394 | ++it->glyph_row->used[area]; | 21410 | ++it->glyph_row->used[area]; |
| 21395 | } | 21411 | } |
| 21396 | else | 21412 | else |