From be0d52a4f2289a59f8f97d014ea3ebd74809a315 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 19 Apr 2024 09:56:22 -0700 Subject: [PATCH] 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. --- src/config/Config.zig | 11 ++++++----- src/termio/Exec.zig | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/config/Config.zig b/src/config/Config.zig index 64c9460fc..40632f7ac 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -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, }; diff --git a/src/termio/Exec.zig b/src/termio/Exec.zig index fd74bd1a7..97702fd3b 100644 --- a/src/termio/Exec.zig +++ b/src/termio/Exec.zig @@ -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