Skip to content

FFI bindings to libc's wcswidth() to determine the actual display width of strings

License

Notifications You must be signed in to change notification settings

janlelis/wcswidth-ruby

Repository files navigation

wcswidth [version] [ci]

Determine terminal display width (columns) of Ruby strings via FFI bindings to libc's wcswidth() function.

See unicode/display_width for a Ruby-only unicode data based approach.

Usage

require 'wcswidth/kernel_method'

# full width chars
wcswidth("!") # => 2
wcswidth("一") # => 2

# single width chars
wcswidth("A") # => 1
wcswidth("·") # => 1

# zero width chars
wcswidth("ֿ") # => 0
wcswidth("\0") # => 0

# control chars
wcswidth("\x01") # => -1
wcswidth("\n") # => -1

Without opting in for wcswidth/kernel_method it is Wcswidth.of("string")

MIT License

Copyright (C) 2016 Jan Lelis https://janlelis.com. Released under the MIT license.

About

FFI bindings to libc's wcswidth() to determine the actual display width of strings

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages