diff options
| author | Eli Zaretskii | 2019-11-28 17:00:33 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2019-11-28 17:00:33 +0200 |
| commit | 5629af9cbe91feee8fb4d896224ed62e455f951d (patch) | |
| tree | c3d4217e2d54f4f8b3fb354affbb61b96f624e09 | |
| parent | b05aa8d742d80aeb692c54289e8ccb074a68bf51 (diff) | |
| download | emacs-5629af9cbe91feee8fb4d896224ed62e455f951d.tar.gz emacs-5629af9cbe91feee8fb4d896224ed62e455f951d.zip | |
Allow disabling the BPA part of bidi reordering
* src/xdisp.c (syms_of_xdisp): New variable 'bidi-inhibit-bpa'.
* src/bidi.c (bidi_paired_bracket_type): If 'bidi-inhibit-bpa'
is non-nil, return BIDI_BRACKET_NONE for all characters.
* lisp/frame.el: Add 'bidi-inhibit-bpa' to the list of
variables whose changes require redisplay. (Bug#38407)
| -rw-r--r-- | lisp/frame.el | 3 | ||||
| -rw-r--r-- | src/bidi.c | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 8 |
3 files changed, 11 insertions, 2 deletions
diff --git a/lisp/frame.el b/lisp/frame.el index 1a15a4c9f26..1d1dcab580d 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -2736,7 +2736,8 @@ See also `toggle-frame-maximized'." | |||
| 2736 | display-fill-column-indicator-column | 2736 | display-fill-column-indicator-column |
| 2737 | display-fill-column-indicator-character | 2737 | display-fill-column-indicator-character |
| 2738 | bidi-paragraph-direction | 2738 | bidi-paragraph-direction |
| 2739 | bidi-display-reordering)) | 2739 | bidi-display-reordering |
| 2740 | bidi-inhibit-bpa)) | ||
| 2740 | 2741 | ||
| 2741 | (provide 'frame) | 2742 | (provide 'frame) |
| 2742 | 2743 | ||
diff --git a/src/bidi.c b/src/bidi.c index 1430d223313..cb94c4e0d7a 100644 --- a/src/bidi.c +++ b/src/bidi.c | |||
| @@ -404,7 +404,7 @@ bidi_mirror_char (int c) | |||
| 404 | static bidi_bracket_type_t | 404 | static bidi_bracket_type_t |
| 405 | bidi_paired_bracket_type (int c) | 405 | bidi_paired_bracket_type (int c) |
| 406 | { | 406 | { |
| 407 | if (c == BIDI_EOB) | 407 | if (c == BIDI_EOB || bidi_inhibit_bpa) |
| 408 | return BIDI_BRACKET_NONE; | 408 | return BIDI_BRACKET_NONE; |
| 409 | if (c < 0 || c > MAX_CHAR) | 409 | if (c < 0 || c > MAX_CHAR) |
| 410 | emacs_abort (); | 410 | emacs_abort (); |
diff --git a/src/xdisp.c b/src/xdisp.c index c4d23be4cde..2467b336f4a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -34839,6 +34839,14 @@ Intended for use during debugging and for testing bidi display; | |||
| 34839 | see biditest.el in the test suite. */); | 34839 | see biditest.el in the test suite. */); |
| 34840 | inhibit_bidi_mirroring = false; | 34840 | inhibit_bidi_mirroring = false; |
| 34841 | 34841 | ||
| 34842 | DEFVAR_BOOL ("bidi-inhibit-bpa", bidi_inhibit_bpa, | ||
| 34843 | doc: /* Non-nil means inhibit the Bidirectional Parentheses Algorithm. | ||
| 34844 | Disabling the BPA makes redisplay faster, but might produce incorrect | ||
| 34845 | display reordering of bidirectional text with embedded parentheses and | ||
| 34846 | other bracket characters whose 'paired-bracket' Unicode property is | ||
| 34847 | non-nil, see `get-char-code-property'. */); | ||
| 34848 | bidi_inhibit_bpa = false; | ||
| 34849 | |||
| 34842 | #ifdef GLYPH_DEBUG | 34850 | #ifdef GLYPH_DEBUG |
| 34843 | DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id, | 34851 | DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id, |
| 34844 | doc: /* Inhibit try_window_id display optimization. */); | 34852 | doc: /* Inhibit try_window_id display optimization. */); |