texinfo-commits
[Top][All Lists]
Advanced

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

branch master updated: * tp/Texinfo/XS/xspara.c (xspara__add_next): If c


From: Gavin D. Smith
Subject: branch master updated: * tp/Texinfo/XS/xspara.c (xspara__add_next): If character has wcwidth 0 (e.g. combining accents), count this as 1 to match Perl results.
Date: Thu, 18 Aug 2022 09:38:36 -0400

This is an automated email from the git hooks/post-receive script.

gavin pushed a commit to branch master
in repository texinfo.

The following commit(s) were added to refs/heads/master by this push:
     new 7aea1ef1ec * tp/Texinfo/XS/xspara.c (xspara__add_next): If character 
has wcwidth 0 (e.g. combining accents), count this as 1 to match Perl results.
7aea1ef1ec is described below

commit 7aea1ef1ecf35f6dcbd61c679d41f831a5f1d6e1
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Thu Aug 18 14:38:28 2022 +0100

    * tp/Texinfo/XS/xspara.c (xspara__add_next):
    If character has wcwidth 0 (e.g. combining accents), count this
    as 1 to match Perl results.
---
 ChangeLog                                                    |  6 ++++++
 tp/Texinfo/XS/xspara.c                                       | 10 ++++++++--
 tp/t/results/converters_tests/empty_accent.pl                |  3 ++-
 tp/tests/layout/res_parser/formatting_info/formatting.info   | 12 ++++++------
 .../layout/res_parser/formatting_plaintext/formatting.txt    |  8 ++++----
 5 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index eabed1bbac..51b9a1fe2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2022-08-18  Gavin Smith  <gavinsmith0123@gmail.com>
+
+       * tp/Texinfo/XS/xspara.c (xspara__add_next):
+       If character has wcwidth 0 (e.g. combining accents), count this
+       as 1 to match Perl results.
+
 2022-08-18  Gavin Smith  <gavinsmith0123@gmail.com>
 
        * tp/Texinfo/XS/xspara.c (xspara__add_next):
diff --git a/tp/Texinfo/XS/xspara.c b/tp/Texinfo/XS/xspara.c
index 17f91fe755..a8172bdab5 100644
--- a/tp/Texinfo/XS/xspara.c
+++ b/tp/Texinfo/XS/xspara.c
@@ -719,10 +719,16 @@ xspara__add_next (TEXT *result, char *word, int word_len, 
int transparent)
           int columns;
           int char_len = mbrtowc (&w, p, left, NULL);
           left -= char_len;
-          p += char_len;
+
           columns = wcwidth (w);
+          /* Not correct but this matches the results from
+             the Perl code. */
+          if (columns == 0)
+            columns = 1;
           if (columns > 0)
-            len += columns;
+            len++;
+
+          p += char_len;
         }
 
       state.word_counter += len;
diff --git a/tp/t/results/converters_tests/empty_accent.pl 
b/tp/t/results/converters_tests/empty_accent.pl
index 7f8fa4f410..20ef634768 100644
--- a/tp/t/results/converters_tests/empty_accent.pl
+++ b/tp/t/results/converters_tests/empty_accent.pl
@@ -64,7 +64,8 @@ $result_floats{'empty_accent'} = {};
 
 
 
-$result_converted{'plaintext'}->{'empty_accent'} = '̀';
+$result_converted{'plaintext'}->{'empty_accent'} = '̀
+';
 
 
 $result_converted{'html_text'}->{'empty_accent'} = '<p>&#768;
diff --git a/tp/tests/layout/res_parser/formatting_info/formatting.info 
b/tp/tests/layout/res_parser/formatting_info/formatting.info
index 415ef06dd8..970d0b8aad 100644
--- a/tp/tests/layout/res_parser/formatting_info/formatting.info
+++ b/tp/tests/layout/res_parser/formatting_info/formatting.info
@@ -62,8 +62,8 @@ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 
a a a a
 '@H{a}' a̋ '@H{--a}' -a̋ '@dotaccent{a}' ȧ '@dotaccent{--a}' -ȧ
 '@ringaccent{a}' å '@ringaccent{--a}' -å '@tieaccent{a}' a͡
 '@tieaccent{--a}' -a͡ '@u{a}' ă '@u{--a}' -ă '@ubaraccent{a}' a̲
-'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}' ǎ
-'@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
+'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}'
+ǎ '@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
 'a@sup{h}@sub{l}' a^{h}_{l} '@footnote{in footnote}' (1) '@footnote{in
 footnote2}' (2)
 
@@ -772,8 +772,8 @@ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 
a a a a a
 '@H{a}' a̋ '@H{--a}' -a̋ '@dotaccent{a}' ȧ '@dotaccent{--a}' -ȧ
 '@ringaccent{a}' å '@ringaccent{--a}' -å '@tieaccent{a}' a͡
 '@tieaccent{--a}' -a͡ '@u{a}' ă '@u{--a}' -ă '@ubaraccent{a}' a̲
-'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}' ǎ
-'@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
+'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}'
+ǎ '@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
 'a@sup{h}@sub{l}' a^{h}_{l} '@footnote{in footnote}' (1) '@footnote{in
 footnote2}' (2)
 
@@ -1439,8 +1439,8 @@ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 
a a a a a a
 '@H{a}' a̋ '@H{--a}' -a̋ '@dotaccent{a}' ȧ '@dotaccent{--a}' -ȧ
 '@ringaccent{a}' å '@ringaccent{--a}' -å '@tieaccent{a}' a͡
 '@tieaccent{--a}' -a͡ '@u{a}' ă '@u{--a}' -ă '@ubaraccent{a}' a̲
-'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}' ǎ
-'@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
+'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}'
+ǎ '@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
 'a@sup{h}@sub{l}' a^{h}_{l} '@footnote{in footnote}' (3) '@footnote{in
 footnote2}' (4)
 
diff --git a/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt 
b/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt
index c646944ff4..c2dba8aa34 100644
--- a/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt
+++ b/tp/tests/layout/res_parser/formatting_plaintext/formatting.txt
@@ -75,8 +75,8 @@ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 
a a a a
 '@H{a}' a̋ '@H{--a}' -a̋ '@dotaccent{a}' ȧ '@dotaccent{--a}' -ȧ
 '@ringaccent{a}' å '@ringaccent{--a}' -å '@tieaccent{a}' a͡
 '@tieaccent{--a}' -a͡ '@u{a}' ă '@u{--a}' -ă '@ubaraccent{a}' a̲
-'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}' ǎ
-'@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
+'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}'
+ǎ '@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
 'a@sup{h}@sub{l}' a^{h}_{l} '@footnote{in footnote}' (1) '@footnote{in
 footnote2}' (2)
 
@@ -742,8 +742,8 @@ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 
a a a a a
 '@H{a}' a̋ '@H{--a}' -a̋ '@dotaccent{a}' ȧ '@dotaccent{--a}' -ȧ
 '@ringaccent{a}' å '@ringaccent{--a}' -å '@tieaccent{a}' a͡
 '@tieaccent{--a}' -a͡ '@u{a}' ă '@u{--a}' -ă '@ubaraccent{a}' a̲
-'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}' ǎ
-'@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
+'@ubaraccent{--a}' -a̲ '@udotaccent{a}' ạ '@udotaccent{--a}' -ạ '@v{a}'
+ǎ '@v{--a}' -ǎ '@,{c}' ç '@,{--c}' -ç '@ogonek{a}' ą '@ogonek{--a}' -ą
 'a@sup{h}@sub{l}' a^{h}_{l} '@footnote{in footnote}' (3) '@footnote{in
 footnote2}' (4)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]