mirror of
https://github.com/ilyakooo0/vty.git
synced 2024-12-01 14:36:27 +03:00
74a7c557fb
This change introduces a new module, Graphics.Vty.UnicodeWidthTable.Install, that is responsible for installing custom unicode width tables into the process. It does so by allocating memory to hold the table, populating the table's character ranges with widths from the UnicodeWidthTable, and then marking the table as ready for use. That causes future calls to 'wcwidth' to consult the new table rather than relying on the built-in logic to compute widths. Note that this functionality breaks the purity of 'wcwidth': 'wcwidth' calls made before the installation of a custom table may return different values after the table is installed, despite 'wcwidth' being a pure function. This choice was made deliberately to simplify the API and is based on the observation that in practice this will probably never be an issue. It's also worth nothing (as is spelled out in the docs, too) that a custom table installation can only be performed at most once per program lifetime. Once a custom table installation is performed, it cannot be undone and no new table can be installed. This, too, is a simplification based on the assumption that in practice multiple tables will usually not be required. |
||
---|---|---|
.. | ||
get_tty_erase.c | ||
gwinsz.c | ||
gwinsz.h | ||
mk_wcwidth.c | ||
set_term_timing.c |