[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>̀
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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 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.,
Gavin D. Smith <=