From adcc70d0b30c306ba7843b585cdb8ac99dd664ff Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Sat, 11 May 2019 21:32:15 +0200 Subject: [PATCH] wcwidth: Return early for simple ASCII Characters from space to before DEL are width 1, and they appear *often*. So it's quite a good idea to return early for them. Fixes #5866. --- src/fallback.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/fallback.cpp b/src/fallback.cpp index 7eaaa90dd..8fb78ce9c 100644 --- a/src/fallback.cpp +++ b/src/fallback.cpp @@ -269,6 +269,10 @@ int fish_get_emoji_width(wchar_t c) { #include "widecharwidth/widechar_width.h" int fish_wcwidth(wchar_t wc) { + // Normal ASCII characters. + // These are the most common case, so it's worth checking them first. + if (wc < 0x7f && wc >= 0x20) return 1; + // The system version of wcwidth should accurately reflect the ability to represent characters // in the console session, but knows nothing about the capabilities of other terminal emulators // or ttys. Use it from the start only if we are logged in to the physical console.