Created attachment 200987 [details]
sysutils/tmux: Add utf8proc option to Makefile
This patch adds an option to compile tmux with utf8proc support, and defaults it to on.
This patch comes after I spent a while tracking down why I was having issues with various characters in the terminal and reading through https://github.com/tmux/tmux/issues/1057. Within that issue, there is a newtest.txt file which I was using to test tmux in a reliable way.
The characters within the file are a "hugging face" and a "glowing star". They are definitely printable characters. They're listed at emojipedia as:
Tmux compiled without utf8proc will show the following when displaying the above file:
Unicode 1f917, wcwidth() -1
input_top_bit_set 4 '\360\237\244\227' (width 1)
Unicode 1f31f, wcwidth() -1
input_top_bit_set 4 '\360\237\214\237' (width 1)
The wcwidth() lines are showing that wcwidth(3) failed to properly detect the character width, which leads to display issues later on.
Once compiled against utf8proc, the above becomes:
input_top_bit_set 4 '\360\237\244\227' (width 2)
input_top_bit_set 4 '\360\237\214\237' (width 2)
The character width is correctly detected and display issues no longer happen.
I made this an option instead of just enabling it in the CONFIGURE_ARGS since maybe someone, somewhere depends on the odd wcwidth() behaviour.
Created attachment 203355 [details]
This is the test file from GitHub to avoid having to go hunting for it. I should have included this in the beginning.
A commit references this bug:
Date: Wed Apr 10 16:01:38 UTC 2019
New revision: 498577
Add a default option to use utf8proc for Unicode normalization,
case-folding, and other operations.
It is substantially better and more up-to-date than the libc functions
providing the same features.
Submitted by: David O'Rourke