1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-18 10:16:51 +00:00
emacs/etc
Eli Zaretskii a7b0282034 Initial support for bidirectional editing.
Makefile.in (obj): Include bidi.o.
 (bidi.o): New target.
 makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O).
 ($(BLD)/bidi.$(O)): New target.
 bidi.c: New file.
 buffer.h (struct buffer): New members bidi_display_reordering
 and bidi_paragraph_direction.
 buffer.c (init_buffer_once): Initialize bidi_display_reordering
 and bidi_paragraph_direction.
 (syms_of_buffer): Declare Lisp variables bidi-display-reordering
 and bidi-paragraph-direction.
 (Fbuffer_swap_text): Swap the values of
 bidi_display_reordering and bidi_paragraph_direction.
 dispextern.h (BIDI_MAXLEVEL, BIDI_AT_BASE_LEVEL): New macros.
 (bidi_type_t, bidi_dir_t): New types.
 (bidi_saved_info, bidi_stack, bidi_it): New structures.
 (struct it): New members bidi_p, bidi_it, paragraph_embedding,
 prev_stop, base_level_stop, and eol_pos.
 (bidi_init_it, bidi_get_next_char_visually): New prototypes.
 (IT_STACK_SIZE): Enlarge to 5.
 (struct glyph_row): New member reversed_p.
 <string_buffer_position>: Update prototype.
 (PRODUCE_GLYPHS): Set the reversed_p flag in the iterator's
 glyph_row if bidi_it.paragraph_dir == R2L.
 (struct glyph): New members resolved_level and bidi_type.
 dispnew.c (direct_output_forward_char): Give up if we need bidi
 processing or buffer's direction is right-to-left.
 (prepare_desired_row): Preserve the reversed_p flag.
 (row_equal_p): Compare the reversed_p attributes as well.
 xdisp.c (init_iterator): Initialize it->bidi_p.  Call
 bidi_init_it and set it->paragraph_embedding from the current
 buffer's value of bidi_paragraph_direction.
 (reseat_1): Initialize bidi_it.first_elt.
 (set_iterator_to_next, next_element_from_buffer): Use the value of
 paragraph_embedding to determine the paragraph direction.
 (set_iterator_to_next): Under bidi reordering, call
 bidi_get_next_char_visually.  Call bidi_paragraph_init if the
 new_paragraph flag is set in the bidi iterator.
 (next_element_from_buffer): If bidi_it.first_elt is set,
 initialize paragraph direction and find the first character to
 display in the visual order.  If reseated to a middle of a line,
 prime the bidi iterator starting at the line's beginning.  Handle
 the situation where we overstepped stop_charpos due to
 non-linearity of the bidi iteration.  Likewise for when we back up
 beyond the previous stop_charpos.  When moving across stop_charpos,
 record it in prev_stop.
 (display_line): Set row->end and it->start for the next row to the
 next character in logical order.  Always extend reversed_p rows to
 the end of line, even if they end at ZV.  Copy the reversed_p flag
 to the next glyph row.  Keep calling set_cursor_from_row for
 bidi-reordered rows even if we already have a possible candidate
 for cursor position.  Set row_end after all the row's glyphs have
 been produced, by looping over the glyphs.  Record the position
 after EOL in it->eol_pos, and use it to set end_pos of the last
 row produced for a continued line.
 <Qright_to_left, Qleft_to_right>: New variables.
 (syms_of_xdisp): Initialize and staticpro them.
 (string_buffer_position_lim): New function.
 (string_buffer_position): Most of code moved to
 string_buffer_position_lim.  Last argument and return value are
 now EMACS_INT; all callers changed.
 (set_cursor_from_row): Rewritten to support bidirectional text and
 reversed glyph rows.
 (text_outside_line_unchanged_p, try_window_id): Disable
 optimizations if we are reordering bidirectional text and the
 paragraph direction can be affected by the change.
 (append_glyph, append_composite_glyph)
 (produce_image_glyph, append_stretch_glyph): Set the
 resolved_level and bidi_type members of each glyph.
 (append_glyph): If the glyph row is reversed, prepend the glyph
 rather than appending it.
 (handle_stop_backwards): New function.
 (reseat_1, pop_it, push_it): Set prev_stop and base_level_stop.
 (reseat): call handle_stop_backwards to recompute prev_stop and
 base_level_stop for the new position.
 (handle_invisible_prop): Under bidi iteration, skip invisible text
 using bidi_get_next_char_visually.  If we are `reseat'ed, init the
 paragraph direction.  Update IT->prev_stop after skipping
 invisible text.
 (move_it_in_display_line_to): New variables prev_method
 and prev_pos.  Compare for strict equality in
 BUFFER_POS_REACHED_P.
 (try_cursor_movement): Examine all the candidate rows that occlude
 point, to return the best match.  If rows are bidi-reordered
 and point moved backwards, back up to the row that is not a
 continuation line, and start looking for a suitable row from
 there.
 term.c (append_glyph): Reverse glyphs by pre-pending them,
 rather than appending, if the glyph_row's reversed_p flag is set.
 Set the resolved_level and bidi_type members of each glyph.
 .gdbinit (pbiditype): New command.
 (pgx): Use it to display bidi level and type of the glyph.
 (pitx): Display some bidi information about the iterator.
 (prowlims, pmtxrows): New commands.
 files.el: Make bidi-display-reordering safe variable for boolean
 values.
 mule.texi (International): Mention support of bidirectional editing.
 (Bidirectional Editing): New section.
 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.
 NEWS: Mention initial support for bidirectional editing.
2010-03-30 05:13:07 -04:00
..
charsets Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
e
gnus Synch with Gnus trunk 2010-03-23 07:29:49 +00:00
images Update Custom arrow images. 2010-03-12 16:42:05 -05:00
nxml
refcards Fix orgcard.tex pdf landscape format. 2010-03-04 19:01:38 -08:00
schema Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
srecode Update some cedet template copyrights to GPLv3+. 2010-03-05 19:06:37 -08:00
tutorials Minor TUTORIAL fixes. 2010-02-25 20:35:34 -08:00
.arch-inventory
.gitignore
AUTHORS Bump version to 23.1.93; regenerate AUTHORS. 2010-02-26 22:09:45 -05:00
BABYL
celibacy.1
CENSORSHIP
ChangeLog Initial support for bidirectional editing. 2010-03-30 05:13:07 -04:00
compilation.txt Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
condom.1
CONTRIBUTE CONTRIBUTE: Various minor updates and changes. 2010-02-17 21:39:06 -08:00
COOKIES
COPYING
copying.paper
DEBUG Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
DEVEL.HUMOR
DISTRIB Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
echo.msg
edt-user.el Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
emacs2.py Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
emacs3.py Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
emacs-buffer.gdb Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
emacs.bash Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
emacs.csh
emacs.desktop
emacs.icon
emacs.py
enriched.doc Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
ERC-NEWS Fix typos in ChangeLogs and NEWS files. 2010-01-14 19:29:36 +01:00
ETAGS.EBNF Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
ETAGS.README Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
forms-d2.dat
FTP
future-bug
GNU Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
GNUS-NEWS Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
gnus-tut.txt Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
grep.txt Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
HELLO Support MS-Windows build and reversed rows in GUI frames; add initial docs. 2010-03-29 08:26:24 -04:00
INTERVIEW
JOKES
LINUX-GNU
MACHINES Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
MAILINGLISTS Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
MH-E-NEWS Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
MORE.STUFF Remove CEDET entry in MORE.STUFF. 2010-03-15 11:45:03 +01:00
MOTIVATION
ms-kermit
NEWS Initial support for bidirectional editing. 2010-03-30 05:13:07 -04:00
NEWS.1-17 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
NEWS.18 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
NEWS.19 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
NEWS.20 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
NEWS.21 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
NEWS.22 Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
NEWS.23 Merge from `emacs-23'. 2010-03-24 14:02:56 -04:00
NXML-NEWS
ORDERS Update some URLs. 2009-12-15 03:12:44 +00:00
PROBLEMS Document Bug#5541. 2010-03-19 11:15:27 -04:00
ps-prin0.ps Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
ps-prin1.ps Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
README Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
rgb.txt
SERVICE
ses-example.ses Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
sex.6
spook.lines
TERMS Add 2010 to copyright years. 2010-01-13 00:35:10 -08:00
THE-GNU-PROJECT
TODO Implement Occur multi-line matches. 2010-03-23 18:09:45 +02:00
WHY-FREE
yow.lines

This directory contains the architecture-independent files used by or
with Emacs.  This includes some text files of documentation for GNU
Emacs or of interest to Emacs users, and the file of dumped docstrings
for Emacs functions and variables.

`forms-d2.dat' is an example data file used by forms-d2.el.

COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES

File: emacs.icon
  Author: Sun Microsystems, Inc
  Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
  License: GNU General Public License version 3 or later (see COPYING)