package charInfo_width
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=08fb7fc94018d9a499e0fdd46a1df25560151bc43b9df3c182eb606e3a689412
md5=b1856eb22cafcaf564d2d11be5d522c0
README.md.html
CharInfo_width
Determine column width of a character.
Description
CharInfo_width.width c
returns the column width of c
where c
is of type Camomile.UChar.t
and the value returned is of type int
.
This module is implemented purely in OCaml and the width
function follows the prototype of POSIX's wcwidth. i.e. If c
is a printable character, the value is at least 0. If c
is null character (L'\0'), the value is 0. Otherwise, -1 is returned. The width_exn
function, when encounter an unprintable character, it raises Failure "unprintable character"
instead of returning -1.
By default, the width
and width_exn
function is compatible with ncursesw, ncursesw based CLIs, terminals. The way they consider the width of a character is the same.
An optional parameter, cfg
, can extend extra width info. The current width info table of ncursesw, xterm, xterm-compatible terminal is inadequate and limited, so is the default cfg of this module. When implement raw mode command-line interface, e.g. readline, a text editor, better extend extra width info by cfg
. An on going sample repository of width table is here: charInfo_width_extra
This module also provides a function, CharInfo_width.width_utext
to calculate the width of a unicode string. The returned value is either Ok width
or Error pos-of-unprintable-character
.