config: rename "wcswidth" to "legacy" for "grapheme-width-method"

We don't actually use libc wcswidth to determine width and even if we
did some terminals use wcwidth (which behaves differently), some use
the Python wcswidth library (which behaves differently), etc. The
reality is there is no real consistency on "legacy" behavior so by
naming it "legacy" we show that we're doing our best but also gives us
wiggle room to change our behavior in the future.

Functionally nothing changes with this commit.
This commit is contained in:
Mitchell Hashimoto
2024-04-19 09:56:22 -07:00
parent 93f8db59ce
commit be0d52a4f2
2 changed files with 7 additions and 6 deletions

View File

@ -193,13 +193,14 @@ const c = @cImport({
///
/// Valid values are:
///
/// * `wcswidth` - Use the wcswidth function to determine grapheme width.
/// This maximizes compatibility with legacy programs but may result
/// * `legacy` - Use a legacy method to determine grapheme width, such as
/// wcswidth This maximizes compatibility with legacy programs but may result
/// in incorrect grapheme width for certain graphemes such as skin-tone
/// emoji, non-English characters, etc.
///
/// Note that this `wcswidth` functionality is based on the libc wcswidth,
/// not any other libraries with that name.
/// This is called "legacy" and not something more specific because the
/// behavior is undefined and we want to retain the ability to modify it.
/// For example, we may or may not use libc `wcswidth` now or in the future.
///
/// * `unicode` - Use the Unicode standard to determine grapheme width.
///
@ -3464,6 +3465,6 @@ pub const WindowNewTabPosition = enum {
/// See grapheme-width-method
pub const GraphemeWidthMethod = enum {
wcswidth,
legacy,
unicode,
};

View File

@ -141,7 +141,7 @@ pub fn init(alloc: Allocator, opts: termio.Options) !Exec {
// switch to ensure we get a compiler error if more cases are added.
switch (opts.config.grapheme_width_method) {
.unicode => term.modes.set(.grapheme_cluster, true),
.wcswidth => {},
.legacy => {},
}
// Set the image size limits