[vte/wip/egmont/bidi: 105/107] doc
- From: Egmont Koblinger <egmontkob src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte/wip/egmont/bidi: 105/107] doc
- Date: Thu, 30 May 2019 13:50:21 +0000 (UTC)
commit 001a7c607e98aba50a62aac0ddaaa6c9d6579703
Author: Egmont Koblinger <egmont gmail com>
Date: Tue May 28 14:40:57 2019 +0200
doc
BIDI-STATUS | 7 +++----
src/bidi.cc | 3 ++-
src/modes-ecma.hh | 5 +++--
src/modes-private.hh | 6 ++++++
src/vte.cc | 3 ++-
src/vtedraw.cc | 1 -
src/vteseq.cc | 57 ++++++++++++++++++++++++++++++++++------------------
7 files changed, 54 insertions(+), 28 deletions(-)
---
diff --git a/BIDI-STATUS b/BIDI-STATUS
index 1a29c4f4..4f9b665a 100644
--- a/BIDI-STATUS
+++ b/BIDI-STATUS
@@ -1,6 +1,6 @@
Done:
- Implicit (level 1) and Explicit (a small subset only) modes (SM / RM 8).
-- Overall LTR or RTL direction (SPD 0 / 3 or SCP 1 / 2).
+- Overall LTR or RTL direction (SCP 1 / 2 or SPD 0 / 3).
- Possibility to autodetect paragraph direction (DECSET / DECRST 2501).
- Possibility to make box drawing characters mirrorable (DECSET / DECRST 2500).
- I-Beam cursor shows the character's resolved directionality when the
@@ -19,7 +19,8 @@ Bugs:
- The way the modes apply to paragraphs, and what happens when a paragraph
is split or two paragraphs are joined is just a first hack, needs to be
reviewed, adjusted, fixed properly.
-- SPD should also update all the onscreen lines.
+- SPD should also update all the onscreen lines – really?
+- Or should we drop SPD?
Missing from first release:
- The entire screen is always invalidated. Have some more fine grained
@@ -27,8 +28,6 @@ Missing from first release:
- Probably we'd need to make Erase in Display (Below or All) sequences turn
the previous line to hard wrapped, requiring to keep one more line in the
ring's writable area.
-- Design doc review & publishing, public tracking issue.
-- Brief summary about the design and implemented features in the source tree.
- Code cleanup and review, of course.
Planned future improvements:
diff --git a/src/bidi.cc b/src/bidi.cc
index 1a3b0ee8..f902dc67 100644
--- a/src/bidi.cc
+++ b/src/bidi.cc
@@ -20,7 +20,8 @@
* This class implements mapping the logical letters to their visual positions
* according to the modes tracked for each paragraph.
*
- * BiDi is implemented according to https://terminal-wg.pages.freedesktop.org/bidi/
+ * BiDi is implemented according to Terminal-wg/bidi v0.2:
+ * https://terminal-wg.pages.freedesktop.org/bidi/
*/
#include <config.h>
diff --git a/src/modes-ecma.hh b/src/modes-ecma.hh
index 9c767ac1..3c862be7 100644
--- a/src/modes-ecma.hh
+++ b/src/modes-ecma.hh
@@ -45,10 +45,10 @@ MODE(IRM, 4)
*
* References: ECMA-48
* ECMA TR/53
- * [FIXME link to our spec]
+ * Terminal-wg/bidi
*
* Default in ECMA: reset
- * Default in VTE: set
+ * Default in Terminal-wg/bidi and VTE: set
*/
MODE(BDSM, 8)
@@ -73,6 +73,7 @@ MODE_FIXED(CRM, 3, ALWAYS_RESET)
MODE_FIXED(SRTM, 5, ALWAYS_RESET)
MODE_FIXED(ERM, 6, ALWAYS_RESET)
MODE_FIXED(VEM, 7, ALWAYS_RESET)
+/* DCSM defaults to RESET in ECMA, forced to SET in Terminal-wg/bidi */
MODE_FIXED(DCSM, 9, ALWAYS_SET)
MODE_FIXED(HEM, 10, ALWAYS_RESET)
MODE_FIXED(PUM, 11, ALWAYS_RESET) /* ECMA-48 § F.4.1 Deprecated */
diff --git a/src/modes-private.hh b/src/modes-private.hh
index 80bc80d2..7fa7049c 100644
--- a/src/modes-private.hh
+++ b/src/modes-private.hh
@@ -150,6 +150,8 @@ MODE(URXVT_MOUSE_EXT, 1015)
*
* The (temporary) choice of number 2500 is a misuse of hex 2500
* as a decimal number, but is supposed to be easily memorable.
+ *
+ * Reference: Terminal-wg/bidi
*/
MODE(VTE_BOX_DRAWING_MIRROR, 2500)
@@ -157,6 +159,8 @@ MODE(VTE_BOX_DRAWING_MIRROR, 2500)
* Whether BiDi paragraph direction is autodetected.
*
* The number choice is temporary.
+ *
+ * Reference: Terminal-wg/bidi
*/
MODE(VTE_BIDI_AUTO, 2501)
@@ -165,6 +169,8 @@ MODE(VTE_BIDI_AUTO, 2501)
* stands over an RTL paragraphs.
*
* The number choice is not necessarily final.
+ *
+ * Reference: Terminal-wg/bidi
*/
MODE(VTE_BIDI_SWAP_ARROW_KEYS, 1243)
diff --git a/src/vte.cc b/src/vte.cc
index 7e9d206e..ea83b504 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -1604,7 +1604,8 @@ Terminal::confine_grid_coords(vte::grid::coords const& rowcol) const
* Left/start margin or anything further to the left/start is denoted by column -1's right half,
* right/end margin or anything further to the right/end is denoted by column m_column_count's left half.
*
- * BiDi: returns logical (start/end) position for normal selection modes, visual (left/right) position for
block mode.
+ * BiDi: returns logical position (start or end) for normal selection modes, visual position (left or
+ * right) for block mode.
*/
vte::grid::halfcoords
Terminal::selection_grid_halfcoords_from_view_coords(vte::view::coords const& pos) const
diff --git a/src/vtedraw.cc b/src/vtedraw.cc
index 83b87e39..20cd4aa2 100644
--- a/src/vtedraw.cc
+++ b/src/vtedraw.cc
@@ -1474,7 +1474,6 @@ _vte_draw_text_internal (struct _vte_draw *draw,
vteunistr c = requests[i].c;
if (G_UNLIKELY (requests[i].mirror)) {
- // FIXME what if 'c' is actually a real vteunistr?
vte_bidi_get_mirror_char (c, requests[i].box_mirror, &c);
}
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 094e03ac..d5b18b23 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -4963,8 +4963,11 @@ Terminal::DL(vte::parser::Sequence const& seq)
* DL - delete-line
* Delete lines starting from the active line (presentation).
*
- * This function is affected by the DCSM, TSM and VEM modes,
- * and the SLH and SEE functions.
+ * Depending on DCSM, this function works on the presentation
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
+ *
+ * Also affected by TSM and VEM modes, and the SLH and SEE
+ * functions.
*
* Arguments:
* args[0]: number of lines to delete
@@ -4973,6 +4976,7 @@ Terminal::DL(vte::parser::Sequence const& seq)
* args[0]: 1
*
* References: ECMA-48 § 8.3.32
+ * Terminal-wg/bidi
*/
#if 0
unsigned int num = 1;
@@ -5299,9 +5303,10 @@ Terminal::EA(vte::parser::Sequence const& seq)
* ERM is reset, erases all areas.
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.37
+ * Terminal-wg/bidi
*/
switch (seq.collect1(0)) {
@@ -5332,9 +5337,10 @@ Terminal::ECH(vte::parser::Sequence const& seq)
* ERM is reset, erases all characters.
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.38
+ * Terminal-wg/bidi
*/
#if 0
unsigned int num = 1;
@@ -5383,10 +5389,11 @@ Terminal::ED(vte::parser::Sequence const& seq)
* ERM is reset, erases all characters.
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.39
* VT525
+ * Terminal-wg/bidi
*/
erase_in_display(seq);
@@ -5414,9 +5421,10 @@ Terminal::EF(vte::parser::Sequence const& seq)
* ERM is reset, erases all characters.
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.40
+ * Terminal-wg/bidi
*/
}
@@ -5443,10 +5451,11 @@ Terminal::EL(vte::parser::Sequence const& seq)
* ERM is reset, erases all characters.
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.41
* VT525
+ * Terminal-wg/bidi
*/
erase_in_line(seq);
@@ -5898,12 +5907,13 @@ Terminal::ICH(vte::parser::Sequence const& seq)
* args[0]: 1
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
* Also affected by HEM mode, and the SLH, and SEE functions.
*
* References: ECMA-48 §8.3.64
* VT525
+ * Terminal-wg/bidi
*/
#if 0
unsigned int num = 1;
@@ -5981,12 +5991,13 @@ Terminal::IL(vte::parser::Sequence const& seq)
* args[0]: 1
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* Also affected by the TSM and VEM modes,
* and the SLH and SEE functions.
*
* References: ECMA-48 § 8.3.67
+ * Terminal-wg/bidi
*/
#if 0
unsigned int num = 1;
@@ -6908,19 +6919,23 @@ Terminal::SCP(vte::parser::Sequence const& seq)
*
* Arguments:
* args[0]: path
+ * 0 in Terminal-wg/bidi and VTE = terminal's default
* 1 = LTR or TTB (for horizontal/vertical line orientation)
* 2 = RTL or BTT (for horizontal/vertical line orientation)
* args[1]: effect
- * 0 = implementation-defined
+ * 0 in ECMA = implementation-defined
+ * 0 in Terminal-wg/bidi and VTE = see Terminal-wg/bidi
* 1 = ...
* 2 = ...
*
* Defaults:
- * args[0]: no default
- * args[1]: no default
+ * args[0] in ECMA: no default
+ * args[1] in ECMA: no default
+ * args[0] in Terminal-wg/bidi: 0
+ * args[1] in Terminal-wg/bidi: 0
*
* References: ECMA-48 § 8.3.111
- * [FIXME link to our spec]
+ * Terminal-wg/bidi
*/
auto const param = seq.collect1(0);
@@ -7282,9 +7297,10 @@ Terminal::SLH(vte::parser::Sequence const& seq)
* args[0]: no default
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.122
+ * Terminal-wg/bidi
*/
}
@@ -7301,9 +7317,10 @@ Terminal::SLL(vte::parser::Sequence const& seq)
* args[0]: no default
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.123
+ * Terminal-wg/bidi
*/
}
@@ -7408,7 +7425,7 @@ Terminal::SPD(vte::parser::Sequence const& seq)
* args[1]: 0
*
* References: ECMA-48 § 8.3.130
- * [FIXME link to our spec]
+ * Terminal-wg/bidi
*/
auto const param = seq.collect1(0);
@@ -7431,7 +7448,7 @@ Terminal::SPD(vte::parser::Sequence const& seq)
maybe_apply_bidi_attributes(VTE_BIDI_RTL);
- // FIXME apply to all the onscreen lines?
+ /* FIXME maybe apply to all the onscreen lines? */
}
void
@@ -7447,9 +7464,10 @@ Terminal::SPH(vte::parser::Sequence const& seq)
* args[0]: no default
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.131
+ * Terminal-wg/bidi
*/
}
@@ -7485,9 +7503,10 @@ Terminal::SPL(vte::parser::Sequence const& seq)
* args[0]: no default
*
* Depending on DCSM, this function works on the presentation
- * or data position.
+ * or data position. Terminal-wg/bidi forces DCSM to DATA.
*
* References: ECMA-48 § 8.3.133
+ * Terminal-wg/bidi
*/
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]