view src/ChangeLog.bidi @ 107587:0ff1b8888f6b

Retrospective commit from 2009-08-12. An (unsuccessful) attempt to solve the issue with row->start and row->end. xdisp.c (set_iterator_to_next, reseat, reseat_1) (reseat_at_next_visible_line_start): Accept additional argument force_logical_p; all callers changed. If force_logical_p is non-zero, force iteration in buffer's logical order even in bidi buffers. dispnew.c (direct_output_for_insert): Call set_iterator_to_next with additional argument zero. dispextern.h (set_iterator_to_next): Now accepts an additional argument.
author Eli Zaretskii <eliz@gnu.org>
date Thu, 31 Dec 2009 16:09:28 -0500
parents cbca7f94b057
children 1104f4d707b1
line wrap: on
line source

2009-09-12  Eli Zaretskii  <eliz@gnu.org>

	* dispnew.c (direct_output_for_insert): Give up if we are
	reordering bidirectional text.

	* dispextern.h (IT_STACK_SIZE): Enlarge to 5.

	* xdisp.c (display_line): Set row->end and it->start for the next
	row to the next character in logical order.  If we are reordering
	bidi text, push and pop the iterator before and after momentarily
	iterating in logical order.

2009-09-11  Eli Zaretskii  <eliz@gnu.org>

	* xdisp.c (set_iterator_to_next, reseat, reseat_1)
	(reseat_at_next_visible_line_start): Accept additional argument
	force_logical_p; all callers changed.  If force_logical_p is
	non-zero, force iteration in buffer's logical order even in bidi
	buffers.

	* dispnew.c (direct_output_for_insert): Call set_iterator_to_next
	with additional argument zero.

	* dispextern.h (set_iterator_to_next): Now accepts an additional
	argument.

2009-08-29  Eli Zaretskii  <eliz@gnu.org>

	* xdisp.c (set_cursor_from_row): Don't assume glyph->charpos
	increments linearly.
	(try_window_reusing_current_matrix): Don't assume glyph->charpos
	increments linearly.

2009-08-28  Eli Zaretskii  <eliz@gnu.org>

	* bidi.c <bidi_overriding_paragraph_direction>: Default to L2R,
	for now.

2009-08-22  Eli Zaretskii  <eliz@gnu.org>

	* bidi.c (bidi_initialize): staticpro bidi_char_table.
	(bidi_check_type): New function.
	(bidi_cache_iterator_state, bidi_remember_char)
	(bidi_resolve_explicit_1, bidi_resolve_explicit)
	(bidi_resolve_weak, bidi_resolve_neutral)
	(bidi_level_of_next_char): Use it to validate the bidi type
	assigned to the iterator.

2009-08-15  Eli Zaretskii  <eliz@gnu.org>

	* bidi.c (bidi_initialize): Fix initialization of bidi_type_table.

	* xdisp.c (set_iterator_to_next): Fix position setting after call
	to bidi_get_next_char_visually.

2005-12-03  Eli Zaretskii  <eliz@gnu.org>

	* bidi.c: Include stdio.h unconditionally.  Fix and elaborate
	commentary.  Add Copyright blurb.

2004-03-08  Kenichi Handa  <handa@m17n.org>

	* xdisp.c (reseat_1): Call bidi_init_it with a previous position.

	* bidi.c (bidi_init_it): Set bidi_it->ch_len even if POS > 0.

2004-03-04  Kenichi Handa  <handa@m17n.org>

	The following changes are to support for bi-directional text
	display.

	* Makefile.in (obj): Include bidi.o.
	(bidi.o): New target.

	* bidi.c: New file.

	* buffer.h (struct buffer): New member bidi_display_reordering.

	* buffer.c (init_buffer_once): Initialize bidi_display_reordering.
	(syms_of_buffer): Declarations of Lisp variables
	default-bidi-display-reordering and bidi-display-reordering.

	* dispextern.h (BIDI_MAXLEVEL): New macro.
	(bidi_type_t, bidi_dir_t): New types.
	(bidi_saved_info, bidi_stack, bidi_it): New structs.
	(struct it): New members bidi_p and bidi_it.
	(bidi_init_it): Extern it.
	(bidi_get_next_char_visually): Extern it.

	* dispnew.c (direct_output_forward_char): Give up if we need bidi
	processing or buffer's direction is right-to-left.

	* xdisp.c (init_iterator): Initialize it->bidi_p.
	(reseat_1): Cal bidi_init_it and bidi_get_next_char_visually if
	necessary.
	(set_iterator_to_next): Cal bidi_get_next_char_visually if
	necessary.


;; Local Variables:
;; coding: utf-8
;; add-log-time-zone-rule: t
;; End:

    Copyright (C) 2007, 2008, 2009  Free Software Foundation, Inc.

  This file is part of GNU Emacs.

  GNU Emacs is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  GNU Emacs is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.