From 271689da99d4f83a0281a3d91ed32300c1da7ce1 Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch
Date: Sat, 31 Oct 2020 15:56:23 +0100 Subject: fancy-prompt.lua: allow non-ASCII buffer names It may theoretically bite us in the ass with non-UTF-8-compliant IRC servers, and certainly with double-width characters. --- plugins/degesch/fancy-prompt.lua | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'plugins/degesch') diff --git a/plugins/degesch/fancy-prompt.lua b/plugins/degesch/fancy-prompt.lua index 300801e..93fe67c 100644 --- a/plugins/degesch/fancy-prompt.lua +++ b/plugins/degesch/fancy-prompt.lua @@ -64,12 +64,13 @@ degesch.hook_prompt (function (hook) local lines, cols = degesch.get_screen_size () x = x .. " " .. active .. string.rep (" ", cols) - -- Readline seems to be broken and completely corrupts the prompt - -- (tested on 7.0.003 Archlinux, 7.0-5 Debian buster) - x = x:gsub("[\128-\255]", "?") + -- Readline 7.0.003 seems to be broken and completely corrupts the prompt. + -- However 8.0.004 seems to be fine with these, as is libedit 20191231-3.1. + --x = x:gsub("[\128-\255]", "?") -- Cut off extra characters and apply formatting, including the hack. - -- Note that this doesn't count with full-width or zero-width characters. + -- FIXME: this doesn't count with full-width or zero-width characters. + -- We might want to export wcwidth() above term_from_utf8 somehow. local overflow = utf8.offset (x, cols - 1) if overflow then x = x:sub (1, overflow) end x = "\x01\x1b[0;4;1;38;5;16m\x1b[48;5;" .. bg_color .. "m\x02" .. -- cgit v1.2.3-70-g09d2