diff options
| author | Eli Zaretskii | 2014-10-15 17:11:25 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2014-10-15 17:11:25 +0300 |
| commit | ed7ebd933a5294e0f27cb49268e7b6376de36648 (patch) | |
| tree | 90256953a29fa18f4cfb3945a6491567f8a8a6d0 /src/ChangeLog | |
| parent | 0b4d6d30be2822df7d6b086bbab32b8ff419ed5d (diff) | |
| parent | b8ec977659df3970a6c8afb7a5b79c9b61e08307 (diff) | |
| download | emacs-ed7ebd933a5294e0f27cb49268e7b6376de36648.tar.gz emacs-ed7ebd933a5294e0f27cb49268e7b6376de36648.zip | |
Update the bidirectional reordering engine for Unicode 6.3 and 7.0.
src/bidi.c (bidi_ignore_explicit_marks_for_paragraph_level): Remove
variable.
(bidi_get_type): Return the isolate initiators and terminator
types.
(bidi_isolate_fmt_char, bidi_paired_bracket_type)
(bidi_fetch_char_skip_isolates, find_first_strong_char)
(bidi_find_bracket_pairs, bidi_resolve_brackets): New functions.
(bidi_set_sos_type): Renamed from bidi_set_sor_type and updated
for the new features.
(bidi_push_embedding_level, bidi_pop_embedding_level): Update to
push and pop correctly for isolates.
(bidi_remember_char): Modified to accept an additional argument
and record the bidi type according to its value.
(bidi_cache_iterator_state): Accept an additional argument to only
update an existing state. Handle the new members of struct bidi_it.
(bidi_cache_find): Arguments changed: no lnger accepts a level,
instead accepts a flag telling it whether it is okay to return
unresolved neutrals.
(bidi_initialize): Initiate and staticpro the bracket-type uniprop
table. Initialize new isolate-related members.
(bidi_paragraph_init): Some code factored out into
find_first_strong_char.
(bidi_resolve_explicit_1): Function deleted, its code incorporated
into bidi_resolve_explicit.
(bidi_resolve_explicit): Support the isolate initiators and
terminator. Fix handling of embeddings and overrides according to
new UBA requirements. Record information about previously seen
characters here (moved from bidi_level_of_next_char).
(bidi_resolve_weak): Adapt to changes in struct members.
(FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK)
(STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros.
(bidi_resolve_neutral): Call bidi_resolve_brackets to handle the
paired bracket resolution. Handle isolate initiators and
terminator.
(bidi_type_of_next_char): Remove unneeded code for BN limit.
(bidi_level_of_next_char): Move the code that records information
about previous characters to bidi_resolve_explicit. Fix logic of
resolving neutrals and make sure their cache entries are updated.
Remove now unneeded special handling of PDF level.
src/dispextern.h (struct glyph): Enlarge the width of resolved_level.
(BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and
enlarged per Unicode 6.3.
(enum bidi_bracket_type_t): New data type.
(struct bidi_saved_info): Leave only 2 type members out of 4.
Remove bytepos.
(struct bidi_stack): Add members necessary to support isolating
sequences.
(struct bidi_it): Add new members necessary to support isolating
sequences and bracket pair resolution.
src/xdisp.c (Fbidi_resolved_levels): New function.
(syms_of_xdisp): Defsubr it.
(append_glyph, append_composite_glyph, produce_image_glyph)
(append_stretch_glyph, append_glyphless_glyph): Convert aborts to
assertions.
(syms_of_xdisp) <inhibit-bidi-mirroring>: New variable.
src/term.c (append_glyph, append_composite_glyph)
(append_glyphless_glyph): Convert aborts to assertions.
src/.gdbinit (pgx): Display the character codepoint, resolved level,
and bidi type also for glyphless glyphs.
lisp/simple.el (what-cursor-position): Update to support the new bidi
characters.
lisp/descr-text.el (describe-char): Update to support the new bidi
characters.
admin/unidata/unidata-gen.el (unidata-prop-alist): New properties
'paired-bracket' and 'bracket-type', in support of the UBA 6.3.
(unidata-gen-table): Support PROP-IDX being a function.
(unidata-describe-bidi-bracket-type, unidata-gen-brackets-list)
(unidata-gen-bracket-type-list): New functions.
(unidata-check): Support checking the 'bracket-type' attribute.
(unidata-gen-files): Don't create backups for uni-*.el files.
admin/unidata/Makefile.in (${unidir}/charprop.el): Depend on
BidiMirroring.txt and BidiBrackets.txt.
admin/unidata/BidiBrackets.txt: New file, from Unicode.
etc/NEWS: Mention the UBA implementation update.
etc/HELLO: Remove now unneeded directional control characters.
doc/lispref/nonascii.texi (Character Properties): Document the new
properties 'bracket-type' and 'paired-bracket'.
doc/lisprefdisplay.texi (Bidirectional Display): Update the version of the
UBA to which we are conforming.
test/BidiCharacterTest.txt: New file, from Unicode.
test/biditest.el: New file.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 6823f6d3127..22fd7891df5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,70 @@ | |||
| 1 | 2014-10-15 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | Update the bidirectional reordering engine for Unicode 6.3 and 7.0. | ||
| 4 | * bidi.c (bidi_ignore_explicit_marks_for_paragraph_level): Remove | ||
| 5 | variable. | ||
| 6 | (bidi_get_type): Return the isolate initiators and terminator | ||
| 7 | types. | ||
| 8 | (bidi_isolate_fmt_char, bidi_paired_bracket_type) | ||
| 9 | (bidi_fetch_char_skip_isolates, find_first_strong_char) | ||
| 10 | (bidi_find_bracket_pairs, bidi_resolve_brackets): New functions. | ||
| 11 | (bidi_set_sos_type): Renamed from bidi_set_sor_type and updated | ||
| 12 | for the new features. | ||
| 13 | (bidi_push_embedding_level, bidi_pop_embedding_level): Update to | ||
| 14 | push and pop correctly for isolates. | ||
| 15 | (bidi_remember_char): Modified to accept an additional argument | ||
| 16 | and record the bidi type according to its value. | ||
| 17 | (bidi_cache_iterator_state): Accept an additional argument to only | ||
| 18 | update an existing state. Handle the new members of struct bidi_it. | ||
| 19 | (bidi_cache_find): Arguments changed: no lnger accepts a level, | ||
| 20 | instead accepts a flag telling it whether it is okay to return | ||
| 21 | unresolved neutrals. | ||
| 22 | (bidi_initialize): Initiate and staticpro the bracket-type uniprop | ||
| 23 | table. Initialize new isolate-related members. | ||
| 24 | (bidi_paragraph_init): Some code factored out into | ||
| 25 | find_first_strong_char. | ||
| 26 | (bidi_resolve_explicit_1): Function deleted, its code incorporated | ||
| 27 | into bidi_resolve_explicit. | ||
| 28 | (bidi_resolve_explicit): Support the isolate initiators and | ||
| 29 | terminator. Fix handling of embeddings and overrides according to | ||
| 30 | new UBA requirements. Record information about previously seen | ||
| 31 | characters here (moved from bidi_level_of_next_char). | ||
| 32 | (bidi_resolve_weak): Adapt to changes in struct members. | ||
| 33 | (FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK) | ||
| 34 | (STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros. | ||
| 35 | (bidi_resolve_neutral): Call bidi_resolve_brackets to handle the | ||
| 36 | paired bracket resolution. Handle isolate initiators and | ||
| 37 | terminator. | ||
| 38 | (bidi_type_of_next_char): Remove unneeded code for BN limit. | ||
| 39 | (bidi_level_of_next_char): Move the code that records information | ||
| 40 | about previous characters to bidi_resolve_explicit. Fix logic of | ||
| 41 | resolving neutrals and make sure their cache entries are updated. | ||
| 42 | Remove now unneeded special handling of PDF level. | ||
| 43 | |||
| 44 | * dispextern.h (struct glyph): Enlarge the width of resolved_level. | ||
| 45 | (BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and | ||
| 46 | enlarged per Unicode 6.3. | ||
| 47 | (enum bidi_bracket_type_t): New data type. | ||
| 48 | (struct bidi_saved_info): Leave only 2 type members out of 4. | ||
| 49 | Remove bytepos. | ||
| 50 | (struct bidi_stack): Add members necessary to support isolating | ||
| 51 | sequences. | ||
| 52 | (struct bidi_it): Add new members necessary to support isolating | ||
| 53 | sequences and bracket pair resolution. | ||
| 54 | |||
| 55 | * xdisp.c (Fbidi_resolved_levels): New function. | ||
| 56 | (syms_of_xdisp): Defsubr it. | ||
| 57 | (append_glyph, append_composite_glyph, produce_image_glyph) | ||
| 58 | (append_stretch_glyph, append_glyphless_glyph): Convert aborts to | ||
| 59 | assertions. | ||
| 60 | (syms_of_xdisp) <inhibit-bidi-mirroring>: New variable. | ||
| 61 | |||
| 62 | * term.c (append_glyph, append_composite_glyph) | ||
| 63 | (append_glyphless_glyph): Convert aborts to assertions. | ||
| 64 | |||
| 65 | * .gdbinit (pgx): Display the character codepoint, resolved level, | ||
| 66 | and bidi type also for glyphless glyphs. | ||
| 67 | |||
| 1 | 2014-10-15 Dmitry Antipov <dmantipov@yandex.ru> | 68 | 2014-10-15 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 69 | ||
| 3 | Avoid unwanted point motion in Fline_beginning_position. | 70 | Avoid unwanted point motion in Fline_beginning_position. |