Commit 5629af9c authored by Eli Zaretskii's avatar Eli Zaretskii

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)
parent b05aa8d7
Pipeline #4189 failed with stage
in 58 minutes and 18 seconds
......@@ -2736,7 +2736,8 @@ See also `toggle-frame-maximized'."
display-fill-column-indicator-column
display-fill-column-indicator-character
bidi-paragraph-direction
bidi-display-reordering))
bidi-display-reordering
bidi-inhibit-bpa))
(provide 'frame)
......
......@@ -404,7 +404,7 @@ bidi_mirror_char (int c)
static bidi_bracket_type_t
bidi_paired_bracket_type (int c)
{
if (c == BIDI_EOB)
if (c == BIDI_EOB || bidi_inhibit_bpa)
return BIDI_BRACKET_NONE;
if (c < 0 || c > MAX_CHAR)
emacs_abort ();
......
......@@ -34839,6 +34839,14 @@ Intended for use during debugging and for testing bidi display;
see biditest.el in the test suite. */);
inhibit_bidi_mirroring = false;
DEFVAR_BOOL ("bidi-inhibit-bpa", bidi_inhibit_bpa,
doc: /* Non-nil means inhibit the Bidirectional Parentheses Algorithm.
Disabling the BPA makes redisplay faster, but might produce incorrect
display reordering of bidirectional text with embedded parentheses and
other bracket characters whose 'paired-bracket' Unicode property is
non-nil, see `get-char-code-property'. */);
bidi_inhibit_bpa = false;
#ifdef GLYPH_DEBUG
DEFVAR_BOOL ("inhibit-try-window-id", inhibit_try_window_id,
doc: /* Inhibit try_window_id display optimization. */);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment