[pango/more-log-attr-things: 1/6] break: Follow mandatory rules more strictly




commit b400f4612a6b21257b326369bab12ccb93289635
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Aug 23 22:30:01 2021 -0400

    break: Follow mandatory rules more strictly
    
    We were not putting a line break at the end of the
    text, in cases where a paragraph ends with a newline.

 pango/break.c                  |  7 ++++---
 pango/pango-layout.c           | 17 +++++++++++++++++
 tests/breaks/eleven.expected   | 14 +++++++-------
 tests/breaks/fifteen.expected  | 14 +++++++-------
 tests/breaks/five.expected     | 14 +++++++-------
 tests/breaks/four.expected     | 14 +++++++-------
 tests/breaks/fourteen.expected | 14 +++++++-------
 tests/breaks/nine.expected     | 14 +++++++-------
 tests/breaks/one.expected      | 14 +++++++-------
 tests/breaks/sixteen.expected  | 14 +++++++-------
 tests/breaks/ten.expected      | 14 +++++++-------
 tests/breaks/thirteen.expected | 14 +++++++-------
 tests/breaks/three.expected    | 14 +++++++-------
 tests/breaks/twelve.expected   | 14 +++++++-------
 tests/breaks/two.expected      | 14 +++++++-------
 15 files changed, 112 insertions(+), 94 deletions(-)
---
diff --git a/pango/break.c b/pango/break.c
index 864ac339..0f85c3fa 100644
--- a/pango/break.c
+++ b/pango/break.c
@@ -1642,14 +1642,15 @@ default_break (const char    *text,
 
   i--;
 
-  attrs[i].is_cursor_position = TRUE;  /* Rule GB2 */
   attrs[0].is_cursor_position = TRUE;  /* Rule GB1 */
+  attrs[i].is_cursor_position = TRUE;  /* Rule GB2 */
 
-  attrs[i].is_word_boundary = TRUE;  /* Rule WB2 */
   attrs[0].is_word_boundary = TRUE;  /* Rule WB1 */
+  attrs[i].is_word_boundary = TRUE;  /* Rule WB2 */
 
-  attrs[i].is_line_break = TRUE;  /* Rule LB3 */
   attrs[0].is_line_break = FALSE; /* Rule LB2 */
+  attrs[i].is_line_break = TRUE;  /* Rule LB3 */
+  attrs[i].is_mandatory_break = TRUE;  /* Rule LB3 */
 }
 
 /* }}} */
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 6b14a5dd..bf4a166f 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -4224,9 +4224,17 @@ get_items_log_attrs (const char    *text,
 {
   int offset = 0;
   GList *l;
+  PangoLogAttr attr_before = log_attrs[0];
 
   pango_default_break (text + start, length, NULL, log_attrs, log_attrs_len);
 
+  if (start > 0)
+    {
+      log_attrs->is_line_break      |= attr_before.is_line_break;
+      log_attrs->is_mandatory_break |= attr_before.is_mandatory_break;
+      log_attrs->is_cursor_position |= attr_before.is_cursor_position;
+    }
+
   for (l = items; l; l = l->next)
     {
       PangoItem *item = l->data;
@@ -4248,6 +4256,15 @@ get_items_log_attrs (const char    *text,
       PangoItem *item = items->data;
       pango_attr_break (text + start, length, attrs, item->offset, log_attrs, log_attrs_len);
     }
+
+  if (start == 0)
+    {
+      log_attrs[0].is_line_break = FALSE;
+      log_attrs[0].is_mandatory_break = FALSE;
+    }
+
+  log_attrs[log_attrs_len - 1].is_line_break = TRUE;
+  log_attrs[log_attrs_len - 1].is_mandatory_break = TRUE;
 }
 
 static PangoAttrList *
diff --git a/tests/breaks/eleven.expected b/tests/breaks/eleven.expected
index f5b26708..8df89869 100644
--- a/tests/breaks/eleven.expected
+++ b/tests/breaks/eleven.expected
@@ -1,7 +1,7 @@
-Text:         ⁦❤⁩ ⁦️⁩ ⁦︎⁩ ⁦︎⁩  ⁦👨⁩ [0x200d]⁦🦰⁩  ⁦👨⁩⁦🏿⁩ [0x200d]⁦🦱⁩  ⁦0⁩ ⁦️⁩ ⁦⃣⁩  
⁦🏴⁩[0xe0075][0xe0073][0xe0063][0xe0061][0xe007f]  ⁦🇩⁩⁦🇪⁩ ⁦️⁩ [0x0a] 
-Breaks:     c        lc           lc            lc     lc                                              lc    
c      c
-Whitespace:                                                                                                  
w      w
-Sentences:  bs                                                                                               
e      b
-Words:      b        b            b             bs     be                                              b     
b      b
-Graphemes:  b        b            b             b      b                                               b     
b      b
-Hyphens:       i i i    i             i            i i                                                     i 
        
+Text:         ⁦❤⁩ ⁦️⁩ ⁦︎⁩ ⁦︎⁩  ⁦👨⁩ [0x200d]⁦🦰⁩  ⁦👨⁩⁦🏿⁩ [0x200d]⁦🦱⁩  ⁦0⁩ ⁦️⁩ ⁦⃣⁩  
⁦🏴⁩[0xe0075][0xe0073][0xe0063][0xe0061][0xe007f]  ⁦🇩⁩⁦🇪⁩ ⁦️⁩ [0x0a]  
+Breaks:     c        lc           lc            lc     lc                                              lc    
c      lc
+Whitespace:                                                                                                  
w      w 
+Sentences:  bs                                                                                               
e      b 
+Words:      b        b            b             bs     be                                              b     
b      b 
+Graphemes:  b        b            b             b      b                                               b     
b      b 
+Hyphens:       i i i    i             i            i i                                                     i 
         
diff --git a/tests/breaks/fifteen.expected b/tests/breaks/fifteen.expected
index 3f5e4655..93b37c39 100644
--- a/tests/breaks/fifteen.expected
+++ b/tests/breaks/fifteen.expected
@@ -1,7 +1,7 @@
-Text:         ⁦o⁩ ⁦n⁩ ⁦e⁩  [ ]  ⁦t⁩ ⁦w⁩ ⁦o⁩  ⁦-⁩  ⁦t⁩ ⁦h⁩ ⁦r⁩ ⁦e⁩ ⁦e⁩  [ ]  ⁦f⁩ ⁦o⁩ [0xad]  ⁦u⁩ ⁦r⁩  [0x0a] 
-Breaks:     c  c c c    lc c c c  lc c c c c c    lc c c      lc c c       c
-Whitespace:        x                         x                     w       w
-Sentences:  bs                                                     e       b
-Words:      bs     be   bs     be bs         be   bs               be      b
-Graphemes:  b  b b b    b  b b b  b  b b b b b    b  b b      b  b b       b
-Hyphens:                   i i       i i i i         i        i  i          
+Text:         ⁦o⁩ ⁦n⁩ ⁦e⁩  [ ]  ⁦t⁩ ⁦w⁩ ⁦o⁩  ⁦-⁩  ⁦t⁩ ⁦h⁩ ⁦r⁩ ⁦e⁩ ⁦e⁩  [ ]  ⁦f⁩ ⁦o⁩ [0xad]  ⁦u⁩ ⁦r⁩  [0x0a]  
+Breaks:     c  c c c    lc c c c  lc c c c c c    lc c c      lc c c       lc
+Whitespace:        x                         x                     w       w 
+Sentences:  bs                                                     e       b 
+Words:      bs     be   bs     be bs         be   bs               be      b 
+Graphemes:  b  b b b    b  b b b  b  b b b b b    b  b b      b  b b       b 
+Hyphens:                   i i       i i i i         i        i  i           
diff --git a/tests/breaks/five.expected b/tests/breaks/five.expected
index 17ce3a58..bfdcabaa 100644
--- a/tests/breaks/five.expected
+++ b/tests/breaks/five.expected
@@ -1,7 +1,7 @@
-Text:         ⁦a⁩ ⁦b⁩ [0x2028]  ⁦c⁩ ⁦d⁩  [0x0a] 
-Breaks:     lc c c        Lc c c       c
-Whitespace:      w             w       w
-Sentences:  bs   e        bs   e       b
-Words:      bs                 be      b
-Graphemes:  b  b b        b  b b       b
-Hyphens:       i             i          
+Text:         ⁦a⁩ ⁦b⁩ [0x2028]  ⁦c⁩ ⁦d⁩  [0x0a]  
+Breaks:     c  c c        Lc c c       Lc
+Whitespace:      w             w       w 
+Sentences:  bs   e        bs   e       b 
+Words:      bs                 be      b 
+Graphemes:  b  b b        b  b b       b 
+Hyphens:       i             i           
diff --git a/tests/breaks/four.expected b/tests/breaks/four.expected
index e94af24a..8476ccba 100644
--- a/tests/breaks/four.expected
+++ b/tests/breaks/four.expected
@@ -1,7 +1,7 @@
-Text:         ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩  [ ]  ⁦ห⁩ ⁦ร⁩ ⁦ื⁩ ⁦อ⁩  [ ]  ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩   ⁦ก⁩ 
⁦ล⁩ ⁦า⁩ ⁦ง⁩  [ ]  ⁦เ⁩ ⁦ป⁩ ⁦็⁩ ⁦น⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ร⁩ ⁦า⁩ ⁦ช⁩ ⁦ก⁩ ⁦า⁩ ⁦ร⁩   ⁦แ⁩ ⁦ล⁩ ⁦ะ⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩ 
  ⁦ป⁩ ⁦ร⁩ ⁦ะ⁩ ⁦จ⁩ ⁦ำ⁩   ⁦ช⁩ ⁦า⁩ ⁦ต⁩ ⁦ิ⁩   ⁦ข⁩ ⁦อ⁩ ⁦ง⁩   ⁦ป⁩ ⁦ร⁩ ⁦ะ⁩ ⁦เ⁩ ⁦ท⁩ ⁦ศ⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩  [ ]  ⁦ภ⁩ ⁦า⁩ 
⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩   ⁦เ⁩ ⁦ป⁩ ⁦็⁩ ⁦น⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ใ⁩ ⁦น⁩   ⁦ก⁩ ⁦ล⁩ ⁦ุ⁩ ⁦่⁩ ⁦ม⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   
⁦ไ⁩ ⁦ท⁩  
  ⁦ซ⁩ ⁦ึ⁩ ⁦่⁩ ⁦ง⁩   ⁦เ⁩ ⁦ป⁩ ⁦็⁩ ⁦น⁩   ⁦ก⁩ ⁦ล⁩ ⁦ุ⁩ ⁦่⁩ ⁦ม⁩   ⁦ย⁩ ⁦่⁩ ⁦อ⁩ ⁦ย⁩   ⁦ข⁩ ⁦อ⁩ ⁦ง⁩   ⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ 
⁦ู⁩ ⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ข⁩ ⁦ร⁩ ⁦้⁩ ⁦า⁩  [ ]  ⁦ไ⁩ ⁦ท⁩  [ ]  ⁦ส⁩ ⁦ั⁩ ⁦น⁩ ⁦น⁩ ⁦ิ⁩ ⁦ษ⁩ ⁦ฐ⁩ ⁦า⁩ ⁦น⁩   ⁦ว⁩ ⁦่⁩ 
⁦า⁩  [ ]  ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ใ⁩ ⁦น⁩   ⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ ⁦ู⁩ ⁦ล⁩   ⁦น⁩ ⁦ี⁩ ⁦้⁩   ⁦ม⁩ ⁦ี⁩   ⁦ถ⁩ ⁦ิ⁩ ⁦่⁩ ⁦น⁩   ⁦ก⁩ 
⁦ำ⁩ ⁦เ⁩ ⁦น⁩ ⁦ิ⁩ ⁦ด⁩   ⁦จ⁩ ⁦า⁩ ⁦ก⁩   ⁦ท⁩ ⁦า⁩ ⁦ง⁩   ⁦ต⁩ ⁦อ⁩ ⁦น⁩   ⁦ใ⁩ ⁦ต⁩ ⁦้⁩   ⁦ข⁩ ⁦อ⁩ ⁦ง⁩   ⁦ป⁩ ⁦ร⁩ ⁦ะ⁩ ⁦เ��
 � ⁦ท⁩ ⁦ศ⁩   ⁦จ⁩ ⁦ี⁩ ⁦น⁩  [ ]  ⁦แ⁩ ⁦ล⁩ ⁦ะ⁩   ⁦น⁩ ⁦ั⁩ ⁦ก⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩ ⁦ศ⁩ ⁦า⁩ ⁦ส⁩ ⁦ต⁩ ⁦ร⁩ ⁦์⁩   ⁦บ⁩ ⁦า⁩ 
⁦ง⁩   ⁦ส⁩ ⁦่⁩ ⁦ว⁩ ⁦น⁩   ⁦เ⁩ ⁦ส⁩ ⁦น⁩ ⁦อ⁩   ⁦ว⁩ ⁦่⁩ ⁦า⁩  [ ]  ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩   ⁦น⁩ ⁦่⁩ ⁦า⁩   ⁦จ⁩ 
⁦ะ⁩   ⁦ม⁩ ⁦ี⁩   ⁦ค⁩ ⁦ว⁩ ⁦า⁩ ⁦ม⁩   ⁦เ⁩ ⁦ช⁩ ⁦ื⁩ ⁦่⁩ ⁦อ⁩ ⁦ม⁩   ⁦โ⁩ ⁦ย⁩ ⁦ง⁩   ⁦ก⁩ ⁦ั⁩ ⁦บ⁩   ⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ ⁦ู⁩ 
⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦อ⁩ ⁦อ⁩   ⁦ส⁩ ⁦โ⁩ ⁦ต⁩ ⁦ร⁩  [ ]  ⁦เ⁩ ⁦อ⁩ ⁦เ⁩ ⁦ช⁩ ⁦ี⁩ ⁦ย⁩   ⁦ต⁩ ⁦ิ⁩ ⁦ก⁩  [ ]  ⁦ต⁩ ⁦ร⁩ 
⁦ะ⁩ �
 ��ก⁩ ⁦ู⁩ ⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦อ⁩ ⁦อ⁩   ⁦ส⁩ ⁦โ⁩ ⁦ต⁩ ⁦ร⁩ ⁦น⁩ ⁦ี⁩ ⁦เ⁩ ⁦ซ⁩ ⁦ี⁩ ⁦ย⁩ ⁦น⁩  [ ]  ⁦แ⁩ ⁦ล⁩ ⁦ะ⁩   
⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ ⁦ู⁩ ⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦จ⁩ ⁦ี⁩ ⁦น⁩  [ ]  ⁦ท⁩ ⁦ิ⁩ ⁦เ⁩ ⁦บ⁩ ⁦ต⁩  [0x0a] 
-Breaks:     c  c c c lc  c c c    lc c   c c    lc c c c lc  c c lc  c c c c    lc c   c lc  c c c lc  c c c 
c c lc  c c lc  c c c lc  c c c c lc  c c   lc  c c lc  c c c c c lc  c c c    lc c c c lc  c c lc  c   c lc  
c c c lc  c lc  c     c lc  c c c lc  c lc      c lc  c   c lc  c     c lc    c c lc  c c lc  c c c   c lc  c 
c c lc  c   c c    lc c c    lc   c c   c c c c lc    c c    lc c c c lc  c lc  c c c   c lc      lc    lc    
  c lc  c c c   c lc  c c lc  c c lc  c c lc  c   lc  c c lc  c c c c c lc    c c    lc c c lc    c lc  c c c 
c c c c c   lc  c c lc    c c lc  c c c lc    c c    lc c c c lc  c c lc    c lc  c lc    lc  c c c lc  c     
c c lc  c c lc    c lc  c c c   c lc  c c c lc  c lc  c c c c    lc c c c   c lc    c c    lc c c c   c lc  c 
c c lc  c lc  c c c c   c c   c c c    lc c c lc  c c c   c lc  c c c lc    c c    lc   c c c c       c
-Whitespace:                  x             x                               x                                 
                                                                          x                                   
                                                                                                              
              x         x                               x                                                     
                                                                                x                             
                                                x                                                             
                                                            x                         x                       
                                  x                                           x               w       w
-Sentences:  bs                                                                                               
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                              e       b
-Words:      bs b b b bse b b be   bs b   b be   bs b b b bse b b bse b b b be   bs b   b bse b b b bse b b b 
b b bse b b bse b b b bse b b b b bse b b   bse b b bse b b b b b bse b b be   bs b b b bse b b bse b   b bse 
b b b bse b bse b     b bse b b b bse b bse     b bse b   b bse b     b bse   b b bse b b bse b b b   b bse b 
b b bse b   b be   bs b be   bs   b b   b b b b bse   b be   bs b b b bse b bse b b b   b bse     bse   bse   
  b bse b b b   b bse b b bse b b bse b b bse b   bse b b bse b b b b b bse   b be   bs b b bse   b bse b b b 
b b b b b   bse b b bse   b b bse b b b bse   b be   bs b b b bse b b bse   b bse b bse   bse b b b bse b     
b b bse b b bse   b bse b b b   b bse b b b bse b bse b b b be   bs b b b   b bse   b be   bs b b b   b bse b 
b b bse b bse b b b b   b b   b b be   bs b b bse b b b   b bse b b b bse   b be   bs   b b b be      b
-Graphemes:  b  b b b b   b b b    b  b   b b    b  b b b b   b b b   b b b b    b  b   b b   b b b b   b b b 
b b b   b b b   b b b b   b b b b b   b b   b   b b b   b b b b b b   b b b    b  b b b b   b b b   b   b b   
b b b b   b b   b     b b   b b b b   b b       b b   b   b b   b     b b     b b b   b b b   b b b   b b   b 
b b b   b   b b    b  b b    b    b b   b b b b b     b b    b  b b b b   b b   b b b   b b       b     b     
  b b   b b b   b b   b b b   b b b   b b b   b   b   b b b   b b b b b b     b b    b  b b b     b b   b b b 
b b b b b   b   b b b     b b b   b b b b     b b    b  b b b b   b b b     b b   b b     b   b b b b   b     
b b b   b b b     b b   b b b   b b   b b b b   b b   b b b b    b  b b b   b b     b b    b  b b b   b b   b 
b b b   b b   b b b b   b b   b b b    b  b b b   b b b   b b   b b b b     b b    b    b b b b       b
-Hyphens:                               i                                             i                       
                                          i                                                           i       
                  i i                       i i         i         i i       i                       i         
          i                     i     i             i                                 i       i i     i     i 
i             i                                 i                           i                   i             
          i             i                   i                             i             i                 i i 
                i             i                                           i       i                 i         
                      i     i                           i                 i           i                
+Text:         ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩  [ ]  ⁦ห⁩ ⁦ร⁩ ⁦ื⁩ ⁦อ⁩  [ ]  ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩   ⁦ก⁩ 
⁦ล⁩ ⁦า⁩ ⁦ง⁩  [ ]  ⁦เ⁩ ⁦ป⁩ ⁦็⁩ ⁦น⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ร⁩ ⁦า⁩ ⁦ช⁩ ⁦ก⁩ ⁦า⁩ ⁦ร⁩   ⁦แ⁩ ⁦ล⁩ ⁦ะ⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩ 
  ⁦ป⁩ ⁦ร⁩ ⁦ะ⁩ ⁦จ⁩ ⁦ำ⁩   ⁦ช⁩ ⁦า⁩ ⁦ต⁩ ⁦ิ⁩   ⁦ข⁩ ⁦อ⁩ ⁦ง⁩   ⁦ป⁩ ⁦ร⁩ ⁦ะ⁩ ⁦เ⁩ ⁦ท⁩ ⁦ศ⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩  [ ]  ⁦ภ⁩ ⁦า⁩ 
⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩   ⁦เ⁩ ⁦ป⁩ ⁦็⁩ ⁦น⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ใ⁩ ⁦น⁩   ⁦ก⁩ ⁦ล⁩ ⁦ุ⁩ ⁦่⁩ ⁦ม⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   
⁦ไ⁩ ⁦ท⁩  
  ⁦ซ⁩ ⁦ึ⁩ ⁦่⁩ ⁦ง⁩   ⁦เ⁩ ⁦ป⁩ ⁦็⁩ ⁦น⁩   ⁦ก⁩ ⁦ล⁩ ⁦ุ⁩ ⁦่⁩ ⁦ม⁩   ⁦ย⁩ ⁦่⁩ ⁦อ⁩ ⁦ย⁩   ⁦ข⁩ ⁦อ⁩ ⁦ง⁩   ⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ 
⁦ู⁩ ⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ข⁩ ⁦ร⁩ ⁦้⁩ ⁦า⁩  [ ]  ⁦ไ⁩ ⁦ท⁩  [ ]  ⁦ส⁩ ⁦ั⁩ ⁦น⁩ ⁦น⁩ ⁦ิ⁩ ⁦ษ⁩ ⁦ฐ⁩ ⁦า⁩ ⁦น⁩   ⁦ว⁩ ⁦่⁩ 
⁦า⁩  [ ]  ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ใ⁩ ⁦น⁩   ⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ ⁦ู⁩ ⁦ล⁩   ⁦น⁩ ⁦ี⁩ ⁦้⁩   ⁦ม⁩ ⁦ี⁩   ⁦ถ⁩ ⁦ิ⁩ ⁦่⁩ ⁦น⁩   ⁦ก⁩ 
⁦ำ⁩ ⁦เ⁩ ⁦น⁩ ⁦ิ⁩ ⁦ด⁩   ⁦จ⁩ ⁦า⁩ ⁦ก⁩   ⁦ท⁩ ⁦า⁩ ⁦ง⁩   ⁦ต⁩ ⁦อ⁩ ⁦น⁩   ⁦ใ⁩ ⁦ต⁩ ⁦้⁩   ⁦ข⁩ ⁦อ⁩ ⁦ง⁩   ⁦ป⁩ ⁦ร⁩ ⁦ะ⁩ ⁦เ��
 � ⁦ท⁩ ⁦ศ⁩   ⁦จ⁩ ⁦ี⁩ ⁦น⁩  [ ]  ⁦แ⁩ ⁦ล⁩ ⁦ะ⁩   ⁦น⁩ ⁦ั⁩ ⁦ก⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩ ⁦ศ⁩ ⁦า⁩ ⁦ส⁩ ⁦ต⁩ ⁦ร⁩ ⁦์⁩   ⁦บ⁩ ⁦า⁩ 
⁦ง⁩   ⁦ส⁩ ⁦่⁩ ⁦ว⁩ ⁦น⁩   ⁦เ⁩ ⁦ส⁩ ⁦น⁩ ⁦อ⁩   ⁦ว⁩ ⁦่⁩ ⁦า⁩  [ ]  ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦ไ⁩ ⁦ท⁩ ⁦ย⁩   ⁦น⁩ ⁦่⁩ ⁦า⁩   ⁦จ⁩ 
⁦ะ⁩   ⁦ม⁩ ⁦ี⁩   ⁦ค⁩ ⁦ว⁩ ⁦า⁩ ⁦ม⁩   ⁦เ⁩ ⁦ช⁩ ⁦ื⁩ ⁦่⁩ ⁦อ⁩ ⁦ม⁩   ⁦โ⁩ ⁦ย⁩ ⁦ง⁩   ⁦ก⁩ ⁦ั⁩ ⁦บ⁩   ⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ ⁦ู⁩ 
⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦อ⁩ ⁦อ⁩   ⁦ส⁩ ⁦โ⁩ ⁦ต⁩ ⁦ร⁩  [ ]  ⁦เ⁩ ⁦อ⁩ ⁦เ⁩ ⁦ช⁩ ⁦ี⁩ ⁦ย⁩   ⁦ต⁩ ⁦ิ⁩ ⁦ก⁩  [ ]  ⁦ต⁩ ⁦ร⁩ 
⁦ะ⁩ �
 ��ก⁩ ⁦ู⁩ ⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦อ⁩ ⁦อ⁩   ⁦ส⁩ ⁦โ⁩ ⁦ต⁩ ⁦ร⁩ ⁦น⁩ ⁦ี⁩ ⁦เ⁩ ⁦ซ⁩ ⁦ี⁩ ⁦ย⁩ ⁦น⁩  [ ]  ⁦แ⁩ ⁦ล⁩ ⁦ะ⁩   
⁦ต⁩ ⁦ร⁩ ⁦ะ⁩ ⁦ก⁩ ⁦ู⁩ ⁦ล⁩   ⁦ภ⁩ ⁦า⁩ ⁦ษ⁩ ⁦า⁩   ⁦จ⁩ ⁦ี⁩ ⁦น⁩  [ ]  ⁦ท⁩ ⁦ิ⁩ ⁦เ⁩ ⁦บ⁩ ⁦ต⁩  [0x0a]  
+Breaks:     c  c c c lc  c c c    lc c   c c    lc c c c lc  c c lc  c c c c    lc c   c lc  c c c lc  c c c 
c c lc  c c lc  c c c lc  c c c c lc  c c   lc  c c lc  c c c c c lc  c c c    lc c c c lc  c c lc  c   c lc  
c c c lc  c lc  c     c lc  c c c lc  c lc      c lc  c   c lc  c     c lc    c c lc  c c lc  c c c   c lc  c 
c c lc  c   c c    lc c c    lc   c c   c c c c lc    c c    lc c c c lc  c lc  c c c   c lc      lc    lc    
  c lc  c c c   c lc  c c lc  c c lc  c c lc  c   lc  c c lc  c c c c c lc    c c    lc c c lc    c lc  c c c 
c c c c c   lc  c c lc    c c lc  c c c lc    c c    lc c c c lc  c c lc    c lc  c lc    lc  c c c lc  c     
c c lc  c c lc    c lc  c c c   c lc  c c c lc  c lc  c c c c    lc c c c   c lc    c c    lc c c c   c lc  c 
c c lc  c lc  c c c c   c c   c c c    lc c c lc  c c c   c lc  c c c lc    c c    lc   c c c c       lc
+Whitespace:                  x             x                               x                                 
                                                                          x                                   
                                                                                                              
              x         x                               x                                                     
                                                                                x                             
                                                x                                                             
                                                            x                         x                       
                                  x                                           x               w       w 
+Sentences:  bs                                                                                               
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                                              
                                                                                              e       b 
+Words:      bs b b b bse b b be   bs b   b be   bs b b b bse b b bse b b b be   bs b   b bse b b b bse b b b 
b b bse b b bse b b b bse b b b b bse b b   bse b b bse b b b b b bse b b be   bs b b b bse b b bse b   b bse 
b b b bse b bse b     b bse b b b bse b bse     b bse b   b bse b     b bse   b b bse b b bse b b b   b bse b 
b b bse b   b be   bs b be   bs   b b   b b b b bse   b be   bs b b b bse b bse b b b   b bse     bse   bse   
  b bse b b b   b bse b b bse b b bse b b bse b   bse b b bse b b b b b bse   b be   bs b b bse   b bse b b b 
b b b b b   bse b b bse   b b bse b b b bse   b be   bs b b b bse b b bse   b bse b bse   bse b b b bse b     
b b bse b b bse   b bse b b b   b bse b b b bse b bse b b b be   bs b b b   b bse   b be   bs b b b   b bse b 
b b bse b bse b b b b   b b   b b be   bs b b bse b b b   b bse b b b bse   b be   bs   b b b be      b 
+Graphemes:  b  b b b b   b b b    b  b   b b    b  b b b b   b b b   b b b b    b  b   b b   b b b b   b b b 
b b b   b b b   b b b b   b b b b b   b b   b   b b b   b b b b b b   b b b    b  b b b b   b b b   b   b b   
b b b b   b b   b     b b   b b b b   b b       b b   b   b b   b     b b     b b b   b b b   b b b   b b   b 
b b b   b   b b    b  b b    b    b b   b b b b b     b b    b  b b b b   b b   b b b   b b       b     b     
  b b   b b b   b b   b b b   b b b   b b b   b   b   b b b   b b b b b b     b b    b  b b b     b b   b b b 
b b b b b   b   b b b     b b b   b b b b     b b    b  b b b b   b b b     b b   b b     b   b b b b   b     
b b b   b b b     b b   b b b   b b   b b b b   b b   b b b b    b  b b b   b b     b b    b  b b b   b b   b 
b b b   b b   b b b b   b b   b b b    b  b b b   b b b   b b   b b b b     b b    b    b b b b       b 
+Hyphens:                               i                                             i                       
                                          i                                                           i       
                  i i                       i i         i         i i       i                       i         
          i                     i     i             i                                 i       i i     i     i 
i             i                                 i                           i                   i             
          i             i                   i                             i             i                 i i 
                i             i                                           i       i                 i         
                      i     i                           i                 i           i                 
diff --git a/tests/breaks/fourteen.expected b/tests/breaks/fourteen.expected
index c8a22617..db779ed0 100644
--- a/tests/breaks/fourteen.expected
+++ b/tests/breaks/fourteen.expected
@@ -1,7 +1,7 @@
-Text:         ⁦a⁩ ⁦b⁩   ⁦c⁩ [ ] ⁦α⁩   ⁦β⁩ ⁦γ⁩  [0x0a] 
-Breaks:     c    l         l     c       c
-Whitespace:          x           w       w
-Sentences:  bs                   e       b
-Words:      bs   bse       bse   be      b
-Graphemes:  b  b b   b   b b   b b       b
-Hyphens:       i i         i   i          
+Text:         ⁦a⁩ ⁦b⁩   ⁦c⁩ [ ] ⁦α⁩   ⁦β⁩ ⁦γ⁩  [0x0a]  
+Breaks:     c    l         l     c       lc
+Whitespace:          x           w       w 
+Sentences:  bs                   e       b 
+Words:      bs   bse       bse   be      b 
+Graphemes:  b  b b   b   b b   b b       b 
+Hyphens:       i i         i   i           
diff --git a/tests/breaks/nine.expected b/tests/breaks/nine.expected
index 818a78aa..96da8230 100644
--- a/tests/breaks/nine.expected
+++ b/tests/breaks/nine.expected
@@ -1,7 +1,7 @@
-Text:         ⁦म⁩ ⁦ी⁩  [ ]  ⁦क⁩ ⁦ा⁩ ⁦च⁩  [ ]  ⁦ख⁩ ⁦ा⁩ ⁦ऊ⁩  [ ]  ⁦श⁩ ⁦क⁩ ⁦त⁩ ⁦ो⁩  ⁦,⁩ [ ]  ⁦म⁩ ⁦ल⁩ ⁦ा⁩  [ ]  
⁦त⁩ ⁦े⁩  [ ]  ⁦द⁩ ⁦ु⁩ ⁦ख⁩ ⁦त⁩  [ ]  ⁦न⁩ ⁦ा⁩ ⁦ह⁩  [0x0a]  ⁦म⁩ ⁦ै⁩ ⁦ं⁩  [ ]  ⁦क⁩ ⁦ा⁩ ⁦ँ⁩ ⁦च⁩  [ ]  ⁦ख⁩ ⁦ा⁩  [ ] 
 ⁦स⁩ ⁦क⁩ ⁦त⁩ ⁦ा⁩  [ ]  ⁦ह⁩ ⁦ू⁩ ⁦ँ⁩  ⁦,⁩ [ ]  ⁦म⁩ ⁦ु⁩ ⁦झ⁩ ⁦े⁩  [ ]  ⁦उ⁩ ⁦स⁩  [ ]  ⁦स⁩ ⁦े⁩  [ ]  ⁦क⁩ ⁦ो⁩ ⁦ई⁩  [ 
]  ⁦प⁩ ⁦ी⁩ ⁦ड⁩ ⁦ा⁩  [ ]  ⁦न⁩ ⁦ह⁩ ⁦ी⁩ ⁦ं⁩  [ ]  ⁦ह⁩ ⁦ो⁩ ⁦त⁩  [0x0a]  ⁦ந⁩ ⁦ா⁩ ⁦ன⁩ ⁦்⁩  [ ]  ⁦க⁩ ⁦ண⁩ ⁦்⁩ ⁦ண⁩ ⁦ா⁩ 
⁦ட⁩ ⁦ி⁩  [ ]  ⁦ச⁩ ⁦ா⁩ ⁦ப⁩ ⁦்⁩ ⁦ப⁩ ⁦ி⁩ ⁦ட⁩ ⁦ு⁩ ⁦வ⁩ ⁦ே⁩
  ⁦ன⁩ ⁦்⁩  ⁦,⁩ [ ]  ⁦அ⁩ ⁦த⁩ ⁦ன⁩ ⁦ா⁩ ⁦ல⁩ ⁦்⁩  [ ]  ⁦எ⁩ ⁦ன⁩ ⁦க⁩ ⁦்⁩ ⁦க⁩ ⁦ு⁩  [ ]  ⁦ஒ⁩ ⁦ர⁩ ⁦ு⁩  [ ]  ⁦க⁩ ⁦ே⁩ ⁦ட⁩ 
⁦ு⁩ ⁦ம⁩ ⁦்⁩  [ ]  ⁦வ⁩ ⁦ர⁩ ⁦ா⁩ ⁦த⁩  [0x0a]  ⁦ﻢ⁩ ⁦ﯾ⁩ ⁦ں⁩  [ ]  ⁦ﮎ⁩ ⁦ﺎ⁩ ⁦ﻨ⁩ ⁦ﭼ⁩  [ ]  ⁦ﮎ⁩ ⁦ھ⁩ ⁦ﺍ⁩  [ ]  ⁦ﺲ⁩ ⁦ﮑ⁩ 
⁦ﺗ⁩ ⁦ﺍ⁩  [ ]  ⁦ہ⁩ ⁦ﻭ⁩ ⁦ں⁩  [ ]  ⁦ﺍ⁩ ⁦ﻭ⁩ ⁦ﺭ⁩  [ ]  ⁦ﻢ⁩ ⁦ﺟ⁩ ⁦ھ⁩ ⁦ے⁩  [ ]  ⁦ﺖ⁩ ⁦ﮑ⁩ ⁦ﻠ⁩ ⁦ﯿ⁩ ⁦ﻓ⁩  [ ]  ⁦ﻥ⁩ ⁦ہ⁩ ⁦ﯼ⁩ 
⁦ں⁩  [ ]  ⁦ہ⁩ ⁦ﻮ⁩ ⁦ﺘ⁩ ⁦ﯾ⁩  [ ] [0x0a]  ⁦ﺰ⁩ ⁦ﻫ⁩  [ ]  ⁦ﺶ⁩ ⁦ﻴ⁩ ⁦ﺸ⁩ ⁦ﻫ⁩  [ ]  ⁦ﺥ⁩ ⁦ﻭ⁩ ⁦ړ⁩ ⁦ﻝ⁩ ⁦ې⁩  [ ]  ⁦ﺶ⁩ ⁦ﻣ⁩  
⁦،⁩ [ ]  ⁦ﻪ⁩ ⁦ﻐ⁩ ⁦ﻫ⁩  [ ]  ⁦ﻡ⁩ ⁦ﺍ⁩  [ ]  ⁦ﻦ⁩ ⁦ﻫ⁩  [ ]  ��
 �ﺥ⁩ ⁦ﻭ⁩ ⁦ږ⁩ ⁦ﻮ⁩ ⁦ﻳ⁩  [0x0a] 
-Breaks:     c    c    lc   c c    lc   c c    lc c c   c  c   lc c   c    lc   c    lc   c c c    lc   c c   
    c      c    lc     c c    lc   c    lc c c   c    lc     c  c   lc   c   c    lc c c    lc   c    lc   c 
c    lc   c   c    lc c     c    lc   c c       c    c   c    lc c   c   c   c    lc   c   c   c   c   c   c  
c   lc c c   c   c    lc c c   c   c    lc c   c    lc   c   c   c    lc c   c c       c  c c c    lc c c c c 
   lc c c c    lc c c c c    lc c c c    lc c c c    lc c c c c    lc c c c c c    lc c c c c    lc c c c c   
 c      c  c c    lc c c c c    lc c c c c c    lc c c  c   lc c c c    lc c c    lc c c    lc c c c c c      
 c
-Whitespace:      x           x           x                x          x         x             x           w   
           x             x         x             x              x            x         x         x           
x             x             x           w                x                   x                                
x                x                 x           x                 x             w              x             x 
          x             x           x           x             x               x             x             x   
 w           x             x               x            x          x         x         x               w      
 w
-Sentences:  bs                                                                                           e   
    bs                                                                                                        
                                       e       bs                                                             
                                                                              e       bs                      
                                                                                                         e    
       bs                                                                                             e       
b
-Words:      bs   be   bs     be   bs     be   bs       be b   bs     be   bs   be   bs       be   bs     be  
    bs     be   bs       be   bs   be   bs       be   bs     be b   bs       be   bs   be   bs   be   bs     
be   bs       be   bs       be   bs     be      bs       be   bs             be   bs                       be 
b   bs           be   bs           be   bs     be   bs           be   bs       be      bs     be   bs       
be   bs     be   bs       be   bs     be   bs     be   bs       be   bs         be   bs       be   bs       
be   b      bs   be   bs       be   bs         be   bs   be b   bs     be   bs   be   bs   be   bs         be 
     b
-Graphemes:  b    b    b    b b    b    b b    b  b b   b  b   b  b   b    b    b    b    b b b    b    b b   
    b      b    b      b b    b    b    b  b b   b    b      b  b   b    b   b    b  b b    b    b    b    b 
b    b    b   b    b  b     b    b    b b       b    b   b    b  b   b   b   b    b    b   b   b   b   b   b  
b   b  b b   b   b    b  b b   b   b    b  b   b    b    b   b   b    b  b   b b       b  b b b    b  b b b b 
   b  b b b    b  b b b b    b  b b b    b  b b b    b  b b b b    b  b b b b b    b  b b b b    b  b b b b   
 b      b  b b    b  b b b b    b  b b b b b    b  b b  b   b  b b b    b  b b    b  b b    b  b b b b b      
 b
-Hyphens:       i         i i         i i         i i i           i i         i         i i i         i i     
       i i         i i i         i         i i i         i i           i i i         i         i         i i  
       i i i         i i i         i i            i i i         i i i i i i         i i i i i i i i i i i     
      i i i i i         i i i i i         i i         i i i i i         i i i            i i         i i i    
     i i         i i i         i i         i i         i i i         i i i i         i i i         i i i      
          i         i i i         i i i i         i           i i         i         i         i i i i         
 
+Text:         ⁦म⁩ ⁦ी⁩  [ ]  ⁦क⁩ ⁦ा⁩ ⁦च⁩  [ ]  ⁦ख⁩ ⁦ा⁩ ⁦ऊ⁩  [ ]  ⁦श⁩ ⁦क⁩ ⁦त⁩ ⁦ो⁩  ⁦,⁩ [ ]  ⁦म⁩ ⁦ल⁩ ⁦ा⁩  [ ]  
⁦त⁩ ⁦े⁩  [ ]  ⁦द⁩ ⁦ु⁩ ⁦ख⁩ ⁦त⁩  [ ]  ⁦न⁩ ⁦ा⁩ ⁦ह⁩  [0x0a]  ⁦म⁩ ⁦ै⁩ ⁦ं⁩  [ ]  ⁦क⁩ ⁦ा⁩ ⁦ँ⁩ ⁦च⁩  [ ]  ⁦ख⁩ ⁦ा⁩  [ ] 
 ⁦स⁩ ⁦क⁩ ⁦त⁩ ⁦ा⁩  [ ]  ⁦ह⁩ ⁦ू⁩ ⁦ँ⁩  ⁦,⁩ [ ]  ⁦म⁩ ⁦ु⁩ ⁦झ⁩ ⁦े⁩  [ ]  ⁦उ⁩ ⁦स⁩  [ ]  ⁦स⁩ ⁦े⁩  [ ]  ⁦क⁩ ⁦ो⁩ ⁦ई⁩  [ 
]  ⁦प⁩ ⁦ी⁩ ⁦ड⁩ ⁦ा⁩  [ ]  ⁦न⁩ ⁦ह⁩ ⁦ी⁩ ⁦ं⁩  [ ]  ⁦ह⁩ ⁦ो⁩ ⁦त⁩  [0x0a]  ⁦ந⁩ ⁦ா⁩ ⁦ன⁩ ⁦்⁩  [ ]  ⁦க⁩ ⁦ண⁩ ⁦்⁩ ⁦ண⁩ ⁦ா⁩ 
⁦ட⁩ ⁦ி⁩  [ ]  ⁦ச⁩ ⁦ா⁩ ⁦ப⁩ ⁦்⁩ ⁦ப⁩ ⁦ி⁩ ⁦ட⁩ ⁦ு⁩ ⁦வ⁩ ⁦ே⁩
  ⁦ன⁩ ⁦்⁩  ⁦,⁩ [ ]  ⁦அ⁩ ⁦த⁩ ⁦ன⁩ ⁦ா⁩ ⁦ல⁩ ⁦்⁩  [ ]  ⁦எ⁩ ⁦ன⁩ ⁦க⁩ ⁦்⁩ ⁦க⁩ ⁦ு⁩  [ ]  ⁦ஒ⁩ ⁦ர⁩ ⁦ு⁩  [ ]  ⁦க⁩ ⁦ே⁩ ⁦ட⁩ 
⁦ு⁩ ⁦ம⁩ ⁦்⁩  [ ]  ⁦வ⁩ ⁦ர⁩ ⁦ா⁩ ⁦த⁩  [0x0a]  ⁦ﻢ⁩ ⁦ﯾ⁩ ⁦ں⁩  [ ]  ⁦ﮎ⁩ ⁦ﺎ⁩ ⁦ﻨ⁩ ⁦ﭼ⁩  [ ]  ⁦ﮎ⁩ ⁦ھ⁩ ⁦ﺍ⁩  [ ]  ⁦ﺲ⁩ ⁦ﮑ⁩ 
⁦ﺗ⁩ ⁦ﺍ⁩  [ ]  ⁦ہ⁩ ⁦ﻭ⁩ ⁦ں⁩  [ ]  ⁦ﺍ⁩ ⁦ﻭ⁩ ⁦ﺭ⁩  [ ]  ⁦ﻢ⁩ ⁦ﺟ⁩ ⁦ھ⁩ ⁦ے⁩  [ ]  ⁦ﺖ⁩ ⁦ﮑ⁩ ⁦ﻠ⁩ ⁦ﯿ⁩ ⁦ﻓ⁩  [ ]  ⁦ﻥ⁩ ⁦ہ⁩ ⁦ﯼ⁩ 
⁦ں⁩  [ ]  ⁦ہ⁩ ⁦ﻮ⁩ ⁦ﺘ⁩ ⁦ﯾ⁩  [ ] [0x0a]  ⁦ﺰ⁩ ⁦ﻫ⁩  [ ]  ⁦ﺶ⁩ ⁦ﻴ⁩ ⁦ﺸ⁩ ⁦ﻫ⁩  [ ]  ⁦ﺥ⁩ ⁦ﻭ⁩ ⁦ړ⁩ ⁦ﻝ⁩ ⁦ې⁩  [ ]  ⁦ﺶ⁩ ⁦ﻣ⁩  
⁦،⁩ [ ]  ⁦ﻪ⁩ ⁦ﻐ⁩ ⁦ﻫ⁩  [ ]  ⁦ﻡ⁩ ⁦ﺍ⁩  [ ]  ⁦ﻦ⁩ ⁦ﻫ⁩  [ ]  ��
 �ﺥ⁩ ⁦ﻭ⁩ ⁦ږ⁩ ⁦ﻮ⁩ ⁦ﻳ⁩  [0x0a]  
+Breaks:     c    c    lc   c c    lc   c c    lc c c   c  c   lc c   c    lc   c    lc   c c c    lc   c c   
    Lc     c    lc     c c    lc   c    lc c c   c    lc     c  c   lc   c   c    lc c c    lc   c    lc   c 
c    lc   c   c    lc c     c    lc   c c       Lc   c   c    lc c   c   c   c    lc   c   c   c   c   c   c  
c   lc c c   c   c    lc c c   c   c    lc c   c    lc   c   c   c    lc c   c c       Lc c c c    lc c c c c 
   lc c c c    lc c c c c    lc c c c    lc c c c    lc c c c c    lc c c c c c    lc c c c c    lc c c c c   
 c      Lc c c    lc c c c c    lc c c c c c    lc c c  c   lc c c c    lc c c    lc c c    lc c c c c c      
 Lc
+Whitespace:      x           x           x                x          x         x             x           w   
           x             x         x             x              x            x         x         x           
x             x             x           w                x                   x                                
x                x                 x           x                 x             w              x             x 
          x             x           x           x             x               x             x             x   
 w           x             x               x            x          x         x         x               w      
 w 
+Sentences:  bs                                                                                           e   
    bs                                                                                                        
                                       e       bs                                                             
                                                                              e       bs                      
                                                                                                         e    
       bs                                                                                             e       
b 
+Words:      bs   be   bs     be   bs     be   bs       be b   bs     be   bs   be   bs       be   bs     be  
    bs     be   bs       be   bs   be   bs       be   bs     be b   bs       be   bs   be   bs   be   bs     
be   bs       be   bs       be   bs     be      bs       be   bs             be   bs                       be 
b   bs           be   bs           be   bs     be   bs           be   bs       be      bs     be   bs       
be   bs     be   bs       be   bs     be   bs     be   bs       be   bs         be   bs       be   bs       
be   b      bs   be   bs       be   bs         be   bs   be b   bs     be   bs   be   bs   be   bs         be 
     b 
+Graphemes:  b    b    b    b b    b    b b    b  b b   b  b   b  b   b    b    b    b    b b b    b    b b   
    b      b    b      b b    b    b    b  b b   b    b      b  b   b    b   b    b  b b    b    b    b    b 
b    b    b   b    b  b     b    b    b b       b    b   b    b  b   b   b   b    b    b   b   b   b   b   b  
b   b  b b   b   b    b  b b   b   b    b  b   b    b    b   b   b    b  b   b b       b  b b b    b  b b b b 
   b  b b b    b  b b b b    b  b b b    b  b b b    b  b b b b    b  b b b b b    b  b b b b    b  b b b b   
 b      b  b b    b  b b b b    b  b b b b b    b  b b  b   b  b b b    b  b b    b  b b    b  b b b b b      
 b 
+Hyphens:       i         i i         i i         i i i           i i         i         i i i         i i     
       i i         i i i         i         i i i         i i           i i i         i         i         i i  
       i i i         i i i         i i            i i i         i i i i i i         i i i i i i i i i i i     
      i i i i i         i i i i i         i i         i i i i i         i i i            i i         i i i    
     i i         i i i         i i         i i         i i i         i i i i         i i i         i i i      
          i         i i i         i i i i         i           i i         i         i         i i i i         
  
diff --git a/tests/breaks/one.expected b/tests/breaks/one.expected
index cc257131..44fee3ef 100644
--- a/tests/breaks/one.expected
+++ b/tests/breaks/one.expected
@@ -1,7 +1,7 @@
-Text:         ⁦a⁩ ⁦b⁩ ⁦c⁩  ⁦/⁩  ⁦d⁩ ⁦e⁩ ⁦f⁩  [ ]  ⁦g⁩ ⁦h⁩ ⁦i⁩ [0xad]  ⁦j⁩ ⁦k⁩ ⁦l⁩  ⁦.⁩ [ ]  ⁦B⁩ ⁦l⁩ ⁦a⁩  
[0x0a] 
-Breaks:     c  c c c  lc c c c    lc c c c      lc c c c  c   lc c c c       c
-Whitespace:                  x                            x          w       w
-Sentences:  bs                                            e   bs     e       b
-Words:      bs     be bs     be   bs                   be b   bs     be      b
-Graphemes:  b  b b b  b  b b b    b  b b b      b  b b b  b   b  b b b       b
-Hyphens:       i i       i i         i i        i  i i           i i          
+Text:         ⁦a⁩ ⁦b⁩ ⁦c⁩  ⁦/⁩  ⁦d⁩ ⁦e⁩ ⁦f⁩  [ ]  ⁦g⁩ ⁦h⁩ ⁦i⁩ [0xad]  ⁦j⁩ ⁦k⁩ ⁦l⁩  ⁦.⁩ [ ]  ⁦B⁩ ⁦l⁩ ⁦a⁩  
[0x0a]  
+Breaks:     c  c c c  lc c c c    lc c c c      lc c c c  c   lc c c c       lc
+Whitespace:                  x                            x          w       w 
+Sentences:  bs                                            e   bs     e       b 
+Words:      bs     be bs     be   bs                   be b   bs     be      b 
+Graphemes:  b  b b b  b  b b b    b  b b b      b  b b b  b   b  b b b       b 
+Hyphens:       i i       i i         i i        i  i i           i i           
diff --git a/tests/breaks/sixteen.expected b/tests/breaks/sixteen.expected
index 75f20b9f..221358e7 100644
--- a/tests/breaks/sixteen.expected
+++ b/tests/breaks/sixteen.expected
@@ -1,7 +1,7 @@
-Text:         ⁦h⁩ ⁦y⁩ ⁦‧⁩  ⁦p⁩ ⁦h⁩ ⁦e⁩ ⁦n⁩  ⁦|⁩  ⁦a⁩ ⁦t⁩ ⁦i⁩ ⁦o⁩ ⁦n⁩  [ ]  ⁦o⁩ ⁦v⁩ ⁦e⁩ ⁦r⁩ [0xad]  ⁦l⁩ ⁦o⁩ 
⁦a⁩ ⁦d⁩  [0x0a] 
-Breaks:     c  c c lc c c c c  lc c c c c c    lc c c c c      lc c c c c       c
-Whitespace:                               x                             w       w
-Sentences:  bs                                                          e       b
-Words:      bs   e s        be bs         be   bs                       be      b
-Graphemes:  b  b b b  b b b b  b  b b b b b    b  b b b b      b  b b b b       b
-Hyphens:       i   ri i i i    ri i i i i         i i i        i  i i i          
+Text:         ⁦h⁩ ⁦y⁩ ⁦‧⁩  ⁦p⁩ ⁦h⁩ ⁦e⁩ ⁦n⁩  ⁦|⁩  ⁦a⁩ ⁦t⁩ ⁦i⁩ ⁦o⁩ ⁦n⁩  [ ]  ⁦o⁩ ⁦v⁩ ⁦e⁩ ⁦r⁩ [0xad]  ⁦l⁩ ⁦o⁩ 
⁦a⁩ ⁦d⁩  [0x0a]  
+Breaks:     c  c c lc c c c c  lc c c c c c    lc c c c c      lc c c c c       lc
+Whitespace:                               x                             w       w 
+Sentences:  bs                                                          e       b 
+Words:      bs   e s        be bs         be   bs                       be      b 
+Graphemes:  b  b b b  b b b b  b  b b b b b    b  b b b b      b  b b b b       b 
+Hyphens:       i   ri i i i    ri i i i i         i i i        i  i i i           
diff --git a/tests/breaks/ten.expected b/tests/breaks/ten.expected
index c9f91dc8..aa768c1b 100644
--- a/tests/breaks/ten.expected
+++ b/tests/breaks/ten.expected
@@ -1,7 +1,7 @@
-Text:         ⁦i⁩ ⁦ක⁩ ⁦්⁩ [0x200d] ⁦ක⁩  [ ]  ⁦a⁩ [0x200c] ⁦a⁩ ⁦்⁩  [0x0a] 
-Breaks:     c  c              c    lc          c   c       c
-Whitespace:                   x                    w       w
-Sentences:  bs                                     e       b
-Words:      bs                be   bs              be      b
-Graphemes:  b  b              b    b           b   b       b
-Hyphens:       i i i        i         i        i i          
+Text:         ⁦i⁩ ⁦ක⁩ ⁦්⁩ [0x200d] ⁦ක⁩  [ ]  ⁦a⁩ [0x200c] ⁦a⁩ ⁦்⁩  [0x0a]  
+Breaks:     c  c              c    lc          c   c       lc
+Whitespace:                   x                    w       w 
+Sentences:  bs                                     e       b 
+Words:      bs                be   bs              be      b 
+Graphemes:  b  b              b    b           b   b       b 
+Hyphens:       i i i        i         i        i i           
diff --git a/tests/breaks/thirteen.expected b/tests/breaks/thirteen.expected
index 70742cff..e6b1787d 100644
--- a/tests/breaks/thirteen.expected
+++ b/tests/breaks/thirteen.expected
@@ -1,7 +1,7 @@
-Text:         ⁦a⁩  [ ]  ⁦a⁩ ⁦b⁩ [0x200b]  ⁦s⁩ ⁦p⁩ [0x200b] [ ] [ ]  ⁦d⁩ ⁦e⁩ [0xad]  ⁦f⁩ ⁦g⁩  [ ]  ⁦b⁩  
[0x0a] 
-Breaks:     c  c    lc c c        lc c c        c   c   lc c c      lc c c    lc c       c
-Whitespace:    x                                x   x                    x       w       w
-Sentences:  bs                                                                   e       b
-Words:      bs be   bs                                                   be   bs be      b
-Graphemes:  b  b    b  b b        b  b b        b   b   b  b b      b  b b    b  b       b
-Hyphens:               i          i  i                     i        i  i                  
+Text:         ⁦a⁩  [ ]  ⁦a⁩ ⁦b⁩ [0x200b]  ⁦s⁩ ⁦p⁩ [0x200b] [ ] [ ]  ⁦d⁩ ⁦e⁩ [0xad]  ⁦f⁩ ⁦g⁩  [ ]  ⁦b⁩  
[0x0a]  
+Breaks:     c  c    lc c c        lc c c        c   c   lc c c      lc c c    lc c       lc
+Whitespace:    x                                x   x                    x       w       w 
+Sentences:  bs                                                                   e       b 
+Words:      bs be   bs                                                   be   bs be      b 
+Graphemes:  b  b    b  b b        b  b b        b   b   b  b b      b  b b    b  b       b 
+Hyphens:               i          i  i                     i        i  i                   
diff --git a/tests/breaks/three.expected b/tests/breaks/three.expected
index c2c89158..3962cbc5 100644
--- a/tests/breaks/three.expected
+++ b/tests/breaks/three.expected
@@ -1,7 +1,7 @@
-Text:         ⁦o⁩ ⁦n⁩ ⁦e⁩  [ ]  ⁦t⁩ ⁦w⁩ ⁦o⁩  [0x2028]  ⁦r⁩ ⁦e⁩ ⁦d⁩  [ ]  ⁦b⁩ ⁦l⁩ ⁦u⁩ ⁦e⁩ [0x200d] ⁦g⁩ ⁦r⁩ 
⁦e⁩ ⁦e⁩ ⁦n⁩  [0x0a] 
-Breaks:     c  c c c    lc c c c         Lc c c c    lc c c c          c c c c c c       c
-Whitespace:        x           w                x                                w       w
-Sentences:  bs                 e         bs                                      e       b
-Words:      bs     be   bs     be        bs     be   bs                          be      b
-Graphemes:  b  b b b    b  b b b         b  b b b    b  b b b          b b b b b b       b
-Hyphens:       i i         i i              i i         i i i i        i i i i i          
+Text:         ⁦o⁩ ⁦n⁩ ⁦e⁩  [ ]  ⁦t⁩ ⁦w⁩ ⁦o⁩  [0x2028]  ⁦r⁩ ⁦e⁩ ⁦d⁩  [ ]  ⁦b⁩ ⁦l⁩ ⁦u⁩ ⁦e⁩ [0x200d] ⁦g⁩ ⁦r⁩ 
⁦e⁩ ⁦e⁩ ⁦n⁩  [0x0a]  
+Breaks:     c  c c c    lc c c c         Lc c c c    lc c c c          c c c c c c       lc
+Whitespace:        x           w                x                                w       w 
+Sentences:  bs                 e         bs                                      e       b 
+Words:      bs     be   bs     be        bs     be   bs                          be      b 
+Graphemes:  b  b b b    b  b b b         b  b b b    b  b b b          b b b b b b       b 
+Hyphens:       i i         i i              i i         i i i i        i i i i i           
diff --git a/tests/breaks/twelve.expected b/tests/breaks/twelve.expected
index 63e14e64..0fb7655e 100644
--- a/tests/breaks/twelve.expected
+++ b/tests/breaks/twelve.expected
@@ -1,7 +1,7 @@
-Text:         ⁦t⁩ ⁦h⁩ ⁦e⁩  [ ]  ⁦f⁩ ⁦i⁩ ⁦l⁩ ⁦e⁩  [ ]  ⁦/⁩ ⁦p⁩ ⁦a⁩ ⁦t⁩ ⁦h⁩ ⁦/⁩   ⁦t⁩ ⁦o⁩ ⁦/⁩  ⁦m⁩ ⁦y⁩ ⁦/⁩   
⁦h⁩ ⁦o⁩ ⁦m⁩ ⁦e⁩  [ ]  ⁦i⁩ ⁦s⁩  [ ]  ⁦c⁩ ⁦u⁩ ⁦r⁩ ⁦s⁩ ⁦e⁩ ⁦d⁩  ⁦.⁩ [0x0a] 
-Breaks:     c  c c c    lc c c c c    lc c c c c c lc  c c lc c c lc  c c c c    lc c c    lc c c c c c c  c 
     c
-Whitespace:        x             x                                          x         x                    w 
     w
-Sentences:  bs                                                                                             e 
     b
-Words:      bs     be   bs       be   bs           bse     bs     bse       be   bs   be   bs           be b 
     b
-Graphemes:  b  b b b    b  b b b b    b  b b b b b b   b b b  b b b   b b b b    b  b b    b  b b b b b b  b 
     b
-Hyphens:       i i         i i i           i i i       i      i       i i i         i         i i i i i      
      
+Text:         ⁦t⁩ ⁦h⁩ ⁦e⁩  [ ]  ⁦f⁩ ⁦i⁩ ⁦l⁩ ⁦e⁩  [ ]  ⁦/⁩ ⁦p⁩ ⁦a⁩ ⁦t⁩ ⁦h⁩ ⁦/⁩   ⁦t⁩ ⁦o⁩ ⁦/⁩  ⁦m⁩ ⁦y⁩ ⁦/⁩   
⁦h⁩ ⁦o⁩ ⁦m⁩ ⁦e⁩  [ ]  ⁦i⁩ ⁦s⁩  [ ]  ⁦c⁩ ⁦u⁩ ⁦r⁩ ⁦s⁩ ⁦e⁩ ⁦d⁩  ⁦.⁩ [0x0a]  
+Breaks:     c  c c c    lc c c c c    lc c c c c c lc  c c lc c c lc  c c c c    lc c c    lc c c c c c c  c 
     lc
+Whitespace:        x             x                                          x         x                    w 
     w 
+Sentences:  bs                                                                                             e 
     b 
+Words:      bs     be   bs       be   bs           bse     bs     bse       be   bs   be   bs           be b 
     b 
+Graphemes:  b  b b b    b  b b b b    b  b b b b b b   b b b  b b b   b b b b    b  b b    b  b b b b b b  b 
     b 
+Hyphens:       i i         i i i           i i i       i      i       i i i         i         i i i i i      
       
diff --git a/tests/breaks/two.expected b/tests/breaks/two.expected
index 0280c52f..2921d224 100644
--- a/tests/breaks/two.expected
+++ b/tests/breaks/two.expected
@@ -1,7 +1,7 @@
-Text:         ⁦g⁩ ⁦o⁩ ⁦r⁩ ⁦i⁩ ⁦l⁩ ⁦·⁩ ⁦l⁩ ⁦e⁩ ⁦s⁩  [0x0a] 
-Breaks:     c  c c c c c c c c c       c
-Whitespace:                    w       w
-Sentences:  bs                 e       b
-Words:      bs         e s     be      b
-Graphemes:  b  b b b b b b b b b       b
-Hyphens:       i i i i   i i i          
+Text:         ⁦g⁩ ⁦o⁩ ⁦r⁩ ⁦i⁩ ⁦l⁩ ⁦·⁩ ⁦l⁩ ⁦e⁩ ⁦s⁩  [0x0a]  
+Breaks:     c  c c c c c c c c c       lc
+Whitespace:                    w       w 
+Sentences:  bs                 e       b 
+Words:      bs         e s     be      b 
+Graphemes:  b  b b b b b b b b b       b 
+Hyphens:       i i i i   i i i           


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]