git: 3cc3872829b1 - stable/12 - tools/tools/locale: skip control character widths

Yuri Pankov yuripv at FreeBSD.org
Mon Dec 28 04:59:16 UTC 2020


The branch stable/12 has been updated by yuripv:

URL: https://cgit.FreeBSD.org/src/commit/?id=3cc3872829b1852f3edea43f187c959fb264e95d

commit 3cc3872829b1852f3edea43f187c959fb264e95d
Author:     Yuri Pankov <yuripv at FreeBSD.org>
AuthorDate: 2020-12-23 12:49:25 +0000
Commit:     Yuri Pankov <yuripv at FreeBSD.org>
CommitDate: 2020-12-28 04:58:51 +0000

    tools/tools/locale: skip control character widths
    
    Do not explicitly encode control characters widths as 0
    allowing wcwidth() to return the proper implicit value for
    non-printable characters (-1).
    
    Reported by:    naddy
    
    (cherry picked from commit f952bdf1425d6a877f99b5c5ca59f25fc8bedabe)
---
 tools/tools/locale/etc/final-maps/widths.txt | 65 ----------------------------
 tools/tools/locale/tools/getwidths.c         |  4 ++
 2 files changed, 4 insertions(+), 65 deletions(-)

diff --git a/tools/tools/locale/etc/final-maps/widths.txt b/tools/tools/locale/etc/final-maps/widths.txt
index f01a4d5a0dd5..74c28ac58463 100644
--- a/tools/tools/locale/etc/final-maps/widths.txt
+++ b/tools/tools/locale/etc/final-maps/widths.txt
@@ -3,71 +3,6 @@
 # utf8proc 2.5.0.
 # -----------------------------------------------------------------------------
 WIDTH
-<NULL>	0
-<START_OF_HEADING>	0
-<START_OF_TEXT>	0
-<END_OF_TEXT>	0
-<END_OF_TRANSMISSION>	0
-<ENQUIRY>	0
-<ACKNOWLEDGE>	0
-<ALERT>	0
-<BACKSPACE>	0
-<tab>	0
-<newline>	0
-<vertical-tab>	0
-<form-feed>	0
-<carriage-return>	0
-<SHIFT_OUT>	0
-<SHIFT_IN>	0
-<DATA_LINK_ESCAPE>	0
-<DEVICE_CONTROL_ONE>	0
-<DEVICE_CONTROL_TWO>	0
-<DEVICE_CONTROL_THREE>	0
-<DEVICE_CONTROL_FOUR>	0
-<NEGATIVE_ACKNOWLEDGE>	0
-<SYNCHRONOUS_IDLE>	0
-<END_OF_TRANSMISSION_BLOCK>	0
-<CANCEL>	0
-<END_OF_MEDIUM>	0
-<SUBSTITUTE>	0
-<ESCAPE>	0
-<INFORMATION_SEPARATOR_FOUR>	0
-<INFORMATION_SEPARATOR_THREE>	0
-<INFORMATION_SEPARATOR_TWO>	0
-<INFORMATION_SEPARATOR_ONE>	0
-<DELETE>	0
-<CONTROL-0080>	0
-<CONTROL-0081>	0
-<BREAK_PERMITTED_HERE>	0
-<NO_BREAK_HERE>	0
-<CONTROL-0084>	0
-<NEXT_LINE>	0
-<START_OF_SELECTED_AREA>	0
-<END_OF_SELECTED_AREA>	0
-<CHARACTER_TABULATION_SET>	0
-<CHARACTER_TABULATION_WITH_JUSTIFICATION>	0
-<LINE_TABULATION_SET>	0
-<PARTIAL_LINE_FORWARD>	0
-<PARTIAL_LINE_BACKWARD>	0
-<REVERSE_LINE_FEED>	0
-<SINGLE_SHIFT_TWO>	0
-<SINGLE_SHIFT_THREE>	0
-<DEVICE_CONTROL_STRING>	0
-<PRIVATE_USE_ONE>	0
-<PRIVATE_USE_TWO>	0
-<SET_TRANSMIT_STATE>	0
-<CANCEL_CHARACTER>	0
-<MESSAGE_WAITING>	0
-<START_OF_GUARDED_AREA>	0
-<END_OF_GUARDED_AREA>	0
-<START_OF_STRING>	0
-<CONTROL-0099>	0
-<SINGLE_CHARACTER_INTRODUCER>	0
-<CONTROL_SEQUENCE_INTRODUCER>	0
-<STRING_TERMINATOR>	0
-<OPERATING_SYSTEM_COMMAND>	0
-<PRIVACY_MESSAGE>	0
-<APPLICATION_PROGRAM_COMMAND>	0
 <COMBINING_GRAVE_ACCENT>	0
 <COMBINING_ACUTE_ACCENT>	0
 <COMBINING_CIRCUMFLEX_ACCENT>	0
diff --git a/tools/tools/locale/tools/getwidths.c b/tools/tools/locale/tools/getwidths.c
index 670ebd957878..f1c7c6cc463d 100644
--- a/tools/tools/locale/tools/getwidths.c
+++ b/tools/tools/locale/tools/getwidths.c
@@ -35,12 +35,16 @@ main(void)
 {
 	int32_t wc;
 	int i, wcw;
+	utf8proc_category_t wcc;
 
 	setlocale(LC_CTYPE, "C.UTF-8");
 
 	printf("%s\n", utf8proc_version());
 
 	for (wc = 0; wc < 0x110000; wc++) {
+		wcc = utf8proc_category(wc);
+		if (wcc == UTF8PROC_CATEGORY_CC)
+			continue;
 		wcw = utf8proc_charwidth(wc);
 		if (wcw == 1)
 			continue;


More information about the dev-commits-src-all mailing list