[vte/wip/egmont/bidi] doc



commit 42f4fcdafbe1c8207835591f430a6fed0e52e38c
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 |  4 ++++
 src/vteseq.cc        | 57 ++++++++++++++++++++++++++++++++++------------------
 5 files changed, 50 insertions(+), 26 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..4719ec7d 100644
--- a/src/modes-private.hh
+++ b/src/modes-private.hh
@@ -157,6 +157,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 +167,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/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]