aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2019-11-28 17:00:33 +0200
committerEli Zaretskii2019-11-28 17:00:33 +0200
commit5629af9cbe91feee8fb4d896224ed62e455f951d (patch)
treec3d4217e2d54f4f8b3fb354affbb61b96f624e09
parentb05aa8d742d80aeb692c54289e8ccb074a68bf51 (diff)
downloademacs-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.el3
-rw-r--r--src/bidi.c2
-rw-r--r--src/xdisp.c8
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)
404static bidi_bracket_type_t 404static bidi_bracket_type_t
405bidi_paired_bracket_type (int c) 405bidi_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;
34839see biditest.el in the test suite. */); 34839see 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.
34844Disabling the BPA makes redisplay faster, but might produce incorrect
34845display reordering of bidirectional text with embedded parentheses and
34846other bracket characters whose 'paired-bracket' Unicode property is
34847non-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. */);