{"shas":[["69c429a4269cc6c100cddad260e76a263a6d77c0","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit.\nThese are the original changes made by Kenichi Handa on the old\npre Emacs 22 emacs-bidi branch.","Eli Zaretskii"],["f3fab1b906486668bd9168603a708e040531a923","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-08-15.\n\nStart of work on bidi Emacs 23/24.\n\n bidi.c (bidi_initialize): Fix initialization of bidi_type_table.\n\n xdisp.c (set_iterator_to_next): Fix position setting after call\n to bidi_get_next_char_visually.\n\n bidi.c: Include stdio.h unconditionally.  Fix and elaborate\n commentary.  Add Copyright blurb.","Eli Zaretskii"],["c317e2e2e492baecc0fdaa15056f4dbf367d1478","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-08-22.\n\nStaticpro bidi_char_table, add type checking where bidi type is assigned.\n\n bidi.c (bidi_initialize): staticpro bidi_char_table.\n (bidi_check_type): New function.\n (bidi_cache_iterator_state, bidi_remember_char)\n (bidi_resolve_explicit_1, bidi_resolve_explicit)\n (bidi_resolve_weak, bidi_resolve_neutral)\n (bidi_level_of_next_char): Use it to validate the bidi type\n assigned to the iterator.","Eli Zaretskii"],["a4bd1a4d99b9a20761874dba7c9d4ebdbe559fb8","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-08-29.\n\nStarted working on cursor motion.\n\n xdisp.c (set_cursor_from_row): Don't assume glyph->charpos\n increments linearly.\n (try_window_reusing_current_matrix): Don't assume glyph->charpos\n increments linearly.\n bidi.c <bidi_overriding_paragraph_direction>: Default to L2R, for now.","Eli Zaretskii"],["a35702d7a2c341e8f7048852da5401ac824bf983","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-08-12.\n\nAn (unsuccessful) attempt to solve the issue with row->start and row->end.\n\n xdisp.c (set_iterator_to_next, reseat, reseat_1)\n (reseat_at_next_visible_line_start): Accept additional argument\n force_logical_p; all callers changed.  If force_logical_p is\n non-zero, force iteration in buffer's logical order even in bidi\n buffers.\n dispnew.c (direct_output_for_insert): Call set_iterator_to_next\n with additional argument zero.\n dispextern.h (set_iterator_to_next): Now accepts an additional\n argument.","Eli Zaretskii"],["2aadd67fea03a7edc276fc18b01d307b801e8045","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-09-12.\n\nUndo changes from 2009-09-11.  Set row->end and row->start in\nxdisp.c:display_line.\n\n dispnew.c (direct_output_for_insert): Give up if we are\n reordering bidirectional text.\n dispextern.h (IT_STACK_SIZE): Enlarge to 5.\n xdisp.c (display_line): Set row->end and it->start for the next\n row to the next character in logical order.  If we are reordering\n bidi text, push and pop the iterator before and after momentarily\n iterating in logical order.","Eli Zaretskii"],["f5ebe5d6b342c098c2907a26e7b57187ef39fdfb","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-09-19.\n\nBegin work on bidi initialization and other cleanup.\nRemove all STANDALONE code from bidi.c.\n\n xdisp.c (init_iterator): Call bidi_init_it.  Set\n bidi_it->bytepos if buffer position specified.\n (reseat_1): Don't call bidi_init_it.  Call bidi_paragraph_init\n instead.  Move back to preceding character before the call to\n bidi_get_next_char_visually.\n bidi.c: Remove all STANDALONE parts.\n (bidi_init_it): Init bidi_it->charpos and bidi_it->bytepos to -1.\n Don't call bidi_paragraph_init.  Change arguments.\n (bidi_paragraph_init): Remove code for negative pos.\n dispextern.h <bidi_it>: Rename orig_type to type_after_w1 and\n pristine_type to orig_type.","Eli Zaretskii"],["fb3ded11056b46fda82d95136fc9a9fdb4b71ee5","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-09-20.\n\nHandle positions at BEGV and ZV.  Mor initialization cleanups.\n\n xdisp.c (reseat_1): Handle position < BEGV.\n bidi.c (bidi_paragraph_init): Set bidi_it->ch_len.  Handle ZV.\n (bidi_init_it): Don't initialize bidi_it->ch_len.\n (bidi_resolve_explicit_1): Abort if bidi_it->ch_len was not\n initialized.\n (bidi_at_paragraph_end, bidi_resolve_explicit_1)\n (bidi_resolve_weak, bidi_level_of_next_char): Handle bytepos at\n ZV_BYTE.\n (bidi_resolve_explicit_1): Handle position < BEGV.","Eli Zaretskii"],["2a6120d39c18f894942a86cc3f741750c6dc2f47","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-09-26.\n\nContinued working on initialization.\nStarted working on paragraph direction initialization.\n\n bidi.c (bidi_paragraph_init): Don't set bidi_it->ch_len.  Abort\n if called not at beginning of a new paragraph.\n (bidi_get_next_char_visually): Prepare and use a sentinel iterator\n state when first_elt flag is set.\n dispextern.h (struct bidi_it): New struct member first_elt.\n bidi.c (bidi_init_it): Initialize bidi_it->first_elt.\n (bidi_copy_it): Don't copy the first_elt flag.\n xdisp.c (reseat_1): Initialize bidi_it.first_elt.  Move bidi\n scan start code from here...\n (next_element_from_buffer): ...to here.  Use bidi_it.first_elt flag.","Eli Zaretskii"],["8c880764047259ef70879afe63554a606831337e","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-09-27.\n\nSupport character mirroring.\nSupport iteration that starts in the middle of a line.\nMisc cleanups.\n\n xdisp.c (next_element_from_buffer): If called not at line\n beginning, start bidi iteration from line beginning.\n bidi.c (bidi_paragraph_init): Use\n bidi_overriding_paragraph_direction instead of a literal zero.\n (bidi_initialize): Fix some character types, per Unicode 5.x.\n (bidi_get_type): Abort if called with invalid character code.\n dispextern.h: Add prototype of bidi_mirror_char.\n xdisp.c (get_next_display_element): Mirror characters whose\n resolved type is STRONG_R.","Eli Zaretskii"],["3d1c389b0c5166587f41b340a03c6e4a933306f7","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-03.\n\nDetect paragraph start and paragraph separators (part of determining\nparagraph base direction).\n\n(The commit of window.h belongs to the original changes by Kenichi Handa,\nit was forgotten earlier.)\n\n bidi.c (bidi_set_paragraph_end): Don't set the new_paragraph\n flag in the iterator.\n (bidi_init_it): Set the new_paragraph flag.\n (bidi_at_paragraph_end): Arguments are now character and byte\n position of the next character.  All callers changed.\n (bidi_resolve_explicit): Don't call bidi_at_paragraph_end, and\n don't behave as if at paragraph end if it returns true.\n (bidi_get_next_char_visually): Don't call bidi_paragraph_init if\n new_paragraph flag is set.  Set new_paragraph flag when at end of\n a paragraph.\n <fallback_paragraph_start_re, fallback_paragraph_separate_re>: New\n variables.\n <Qparagraph_start, Qparagraph_separate>: New variables.\n (bidi_initialize): Initialize and staticpro them.\n dispextern.h <struct bidi_it>: New element paragraph_dir.  Make\n positional elements EMACS_INT.\n bidi.c <bidi_overriding_paragraph_direction>: Delete.","Eli Zaretskii"],["3ef7fa493a71287fc058327219815e4b3546e934","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-04.\n\nContinue working on determining paragraph's base direction.\n\n bidi.c (bidi_at_paragraph_end): Check for paragraph-start if\n paragraph-separate failed to match.  Return the length of the\n matched separator.\n (bidi_line_init): New function.\n (bidi_paragraph_init): Use bidi_line_init.  Do nothing if in the\n middle of a paragraph-separate sequence.  Don't override existing\n paragraph direction if no strong characters found in this\n paragraph.  Set separator_limit according to what\n bidi_at_paragraph_end returns.  Reset new_paragraph flag when a\n new paragraph is found.\n (bidi_init_it): Reset separator_limit.\n dispextern.h (struct bidi_it): New member separator_limit.\n bidi.c (bidi_find_paragraph_start): Return the byte position of\n the paragraph beginning.\n xdisp.c (set_iterator_to_next): Call bidi_paragraph_init if the\n new_paragraph flag is set in the bidi iterator.\n bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start): Use\n the buffer-local value of paragraph-start and paragraph-separate.","Eli Zaretskii"],["aa60a2d3a7f2d769a3261f534774d4798031eb5d","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-05.\n\nContinue working on paragraph base direction.\nSupport per-buffer default paragraph direction.\n\n buffer.h (struct buffer): New member paragraph_direction.\n buffer.c (init_buffer_once): Initialize it.\n (syms_of_buffer): Declare Lisp variables\n default-paragraph-direction and paragraph-direction.\n dispextern.h (struct it): New member paragraph_embedding.\n xdisp.c (init_iterator): Initialize it from the buffer's value\n of paragraph-direction.\n <Qright_to_left, Qleft_to_right>: New variables.\n (syms_of_xdisp): Initialize and staticpro them.\n (set_iterator_to_next, next_element_from_buffer): Use the value of\n paragraph_embedding to determine the paragraph direction.\n bidi.c (bidi_line_init): Fix second argument to\n bidi_set_sor_type.\n (bidi_init_it): Initialize paragraph_dir to NEUTRAL_DIR.\n (bidi_get_next_char_visually): Record the last character of the\n separator in separator_limit, not the character after that.\n (bidi_find_paragraph_start): Accept character and byte positions\n instead of the whole iterator stricture.  All callers changed.","Eli Zaretskii"],["eb5c05ef9f10ca10bcad1dc848b13bc2cde4780c","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-08.\n\nFinish up working on paragraph's base direction.\nStart working on display of right-to-left glyph rows.\nRewrite set_cursor_from_row to support bidi.\n\n xdisp.c (string_buffer_position_lim): New function.\n (string_buffer_position): Most of code moved to\n string_buffer_position_lim.  Last argument and return value are\n now EMACS_INT; all callers changed.\n (set_cursor_from_row): Rewritten to support bidirectional text and\n reversed glyph rows.\n dispextern.h <string_buffer_position>: Update prototype.\n bidi.c (bidi_paragraph_init): Fix initialization of POS.\n dispextern.h (struct glyph_row): New member reversed_p.\n buffer.c (syms_of_buffer): Remove DEFVAR_LISP_NOPRO for\n default-direction-reversed, default-bidi-display-reordering, and\n default-paragraph-direction.","Eli Zaretskii"],["2a1f71e0224828da389c6a75a09ba2b7cb118cb0","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-10.\n\nContinue working on set_cursor_from_row.\nDisable redisplay optimizations that interfere with R2L glyph rows.\nMisc cleanups in bidi.c.\n\n xdisp.c (set_cursor_from_row): Skip over glyphs near end of row\n with integer OBJECT even if their CHARPOS is zero.\n\n bidi.c (bidi_cache_iterator_state): Don't cache NEW_PARAGRAPH.\n Abort if someone tries to add a cached state whose position is not\n the immediate successor to that of the last cached state.\n (bidi_paragraph_init): Don't bail out too early after a reseat.\n\n xdisp.c (text_outside_line_unchanged_p, try_window_id): Disable\n optimizations if we are reordering bidirectional text and the\n paragraph direction can be affected by the change.","Eli Zaretskii"],["8db7c999da896a11683f5565b71460e9acbbc2c6","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-17.\n\nContinue working on display of R2L glyph rows.  Reverse glyphs in\nterm.c:append_glyph rather than in extend_face_to_end_of_line.\nFix bidi iteration near BEGV and ZV.\n\n dispextern.h (struct glyph): New members resolved_level and\n bidi_type.\n\n xdisp.c (append_glyph, append_composite_glyph)\n (produce_image_glyph, append_stretch_glyph): Set them.\n\n term.c (append_glyph): Ditto.\n\n xdisp.c (display_line, next_element_from_buffer): Set the glyph\n row's reversed_p flag if the paragraph base direction is odd.\n (extend_face_to_end_of_line): Don't reverse the glyphs here.\n\n term.c (append_glyph): Reverse glyphs here.\n\n bidi.c (bidi_get_next_char_visually): Don't exit early when at ZV.\n (bidi_paragraph_init): Don't step over a newline if at BEGV.\n (bidi_paragraph_init): Handle empty buffers.","Eli Zaretskii"],["1548921e27856eb3d3f3ab74bc43513033d4595e","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-24.\n\nContinue working on set_cursor_from_row.\nCleanup of resolved_level and bidi_type members of struct glyph.\n\n xdisp.c (set_cursor_from_row): Fix off-by-one error when\n skipping over non-character glyphs at end of a reversed row.\n\n dispextern.h (struct glyph): The `resolved_level' member needs\n only 5 bits, not 6.  The `bidi_type' member needs only 3 bits.\n (bidi_type_t): Rearrange so that types that can appear in the\n resolved type are at the beginning and have values less than 8.\n\n bidi.c: Include setjmp.h.","Eli Zaretskii"],["66327899a94f8a18f6fd971448ee13e3df229bff","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-10-31.\n\nContinue debugging set_cursor_from_row.\nContinue debugging display of R2L glyph rows.\n\n xdisp.c (display_line): Always extend reversed_p rows to the end\n of line.\n (set_cursor_from_row): In R2L rows that don't display text, put\n the cursor on the rightmost glyph.","Eli Zaretskii"],["15a5b8837f53cf8c006ee3165ceeca43324ffe5c","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-11-07.\n\nMore fixes for iteration near ZV.\n\n bidi.c (bidi_paragraph_init): Don't overstep end of buffer.\n Treat end of buffer as a NEUTRAL_B character.\n (bidi_resolve_explicit): Don't special-case ZV when bidi_it->type\n is NEUTRAL_B, since bidi_set_paragraph_end no longer sets the\n new_paragraph flag.","Eli Zaretskii"],["3af6a6e930f84a1adbd33550914e1ec818271b25","9bea97ca54594f32677f9bd326119cdb56ababc9@gnu.org","Retrospective commit from 2009-11-14.\n\nResurrect support for integer values of `cursor' property.\nRename paragraph-direction to bidi-paragraph-direction.\n\n xdisp.c (init_iterator, text_outside_line_unchanged_p)\n (try_window_id): Rename paragraph_direction to\n bidi_paragraph_direction.\n (set_cursor_from_row): Handle integer values of `cursor' property\n on display strings.\n\n buffer.c (init_buffer_once, syms_of_buffer): Rename\n paragraph_direction to bidi_paragraph_direction.\n\n buffer.h (struct buffer): Rename paragraph_direction to\n bidi_paragraph_direction.","Eli Zaretskii"]],"ref":"refs/heads/master","size":6815,"head":"32278679adfea7bae8491c55237c9179f6097ad8","push_id":33150755}