commit d220c50773c73b8d9590793aa8bd43d89d183454
parent 186f9d01ea5696fbe2fb45e710c49e2ec94056a6
Author: Quan Tong <quantonganh@gmail.com>
Date: Wed, 9 Aug 2023 12:37:16 +0700
Double-width icons can cause duplicated first characters in the filename on macOS
Diffstat:
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/src/nnn.c b/src/nnn.c
@@ -131,6 +131,18 @@
#include "icons.h"
#endif
+#if defined(ICONS_ENABLED) && defined(__APPLE__)
+/*
+ * For some reason, wcswidth returns 2 for certain icons on macOS
+ * leading to duplicated first characters in filenames when navigating.
+ * https://github.com/jarun/nnn/issues/1692
+ * There might be a better way to fix it without requiring a refresh.
+ */
+#define macos_icons_hack() do { clrtoeol(); refresh(); } while(0)
+#else
+#define macos_icons_hack()
+#endif
+
#ifdef TOURBIN_QSORT
#include "qsort.h"
#endif
@@ -6520,6 +6532,7 @@ static void draw_line(int ncols)
}
move(2 + last - curscroll, 0);
+ macos_icons_hack();
printent(&pdents[last], ncols, FALSE);
if (g_state.oldcolor && (pdents[cur].flags & DIR_OR_DIRLNK)) {
@@ -6533,6 +6546,7 @@ static void draw_line(int ncols)
}
move(2 + cur - curscroll, 0);
+ macos_icons_hack();
printent(&pdents[cur], ncols, TRUE);
/* Must reset e.g. no files in dir */