D15757: Add a tool for generating character width tables
Mariusz Glebocki
noreply at phabricator.kde.org
Wed Sep 26 01:55:25 BST 2018
mglb created this revision.
mglb added a reviewer: Konsole.
mglb added a project: Konsole.
mglb requested review of this revision.
REVISION SUMMARY
The uni2characterwidth tool, converts Unicode Character Database files
into character width lookup tables. It uses a template file to place
the tables in a source code file together with a function for finding
the width for specified character. It also allows to generate few forms
of lists with width data for debug and test purposes, or for future use
as a replacement of Unicode files.
Set `KONSOLE_BUILD_UNI2CHARACTERWIDTH` cmake flag to build the tool.
Use `--help` argument for more detailed usage.
There is a possibility to generate separate "width" for Ambiguous
characters. It can be used to add ability to configure the characters
width in Konsole settings.
The `example.template` file contains all possible named tags, and some
additional tags to show how to use them.
CCBUG: 396435
Depends on D15756 <https://phabricator.kde.org/D15756>
TEST PLAN
Download files listed below from `11.0.0` and `emoji/11.0` directories
on `https://unicode.org/Public/`. You can also directly use URLs to the
files.
- UnicodeData.txt
- EastAsianWidth.txt
- emoji-data.txt
Generate any available list except compact-ranges (e.g. `details`):
uni2characterwidth \
-U UnicodeData.txt -A EastAsianWidth.txt -E emoji-data.txt \
-g details result.txt
The list should contain ranges for all possible widths
(-2, -1, 0, 1, 2). You can choose some characters with a width you know
and check how they were classified. -2 is a special non-standard width
for ambiguous characters, which can be overriden by adding `-a 1` or
`-a 2` parameter. With this flag, all ranges from -2 group should
disappear and become assigned to selected width (1 or 2).
Generate output using a template:
uni2characterwidth \
-U UnicodeData.txt -A EastAsianWidth.txt -E emoji-data.txt \
-g code,./template.example result.txt
BRANCH
arc/396435/Add-a-tool-for-generating-character-width-tables (branched from master)
REVISION DETAIL
https://phabricator.kde.org/D15757
AFFECTED FILES
src/CMakeLists.txt
tools/CMakeLists.txt
tools/uni2characterwidth/CMakeLists.txt
tools/uni2characterwidth/properties.h
tools/uni2characterwidth/template.cpp
tools/uni2characterwidth/template.example
tools/uni2characterwidth/template.h
tools/uni2characterwidth/uni2characterwidth.cpp
To: mglb, #konsole
Cc: konsole-devel, herrold, ngraham, maximilianocuria, hindenburg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/konsole-devel/attachments/20180926/0cc01c48/attachment-0001.html>
More information about the konsole-devel
mailing list