Rand Stats

Terminal::WCWidth

zef:raku-community-modules

Actions Status Actions Status Actions Status

NAME

Terminal::WCWidth - returns character width on a terminal

SYNOPSIS

use Terminal::WCWidth;

sub print-right-aligned($s) {
    print " " x (80 - wcswidth($s));
    say $s;
}
print-right-aligned("this is right-aligned");
print-right-aligned("another right-aligned string")

DESCRIPTION

A Raku port of a Python module.

SUBROUTINES

wcwidth

Takes a single codepoint and outputs its width:

wcwidth(0x3042) # "あ" - returns 2

Returns:

wcswidth

Takes a string and outputs its total width:

wcswidth("*ウルヰ*") # returns 8 = 2 + 6

Returns -1 if any control characters are found.

Unlike the Python version, this module does not support getting the width of only the first n characters of a string, as you can use the .substr method.

ACKNOWLEDGEMENTS

Thanks to Jeff Quast (jquast), the author of the Python module, which in turn is based on the C library by Markus Kuhn.

AUTHORS

COPYRIGHT AND LICENSE

Copyright 2015 - 2017 +merlan #flirora

Copyright 2020, 2024 Raku Commuity

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.