Skip to content

raku-community-modules/Terminal-WCWidth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  • -1 for a control character

  • 0 for a character that does not advance the cursor (NULL or combining)

  • 1 for most characters

  • 2 for full width characters

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

  • +merlan #flirora

  • José Joaquín Atria

  • Raku Community

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.