From f57920ad903105381b02502580be2bb11e4e6714 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 12 Apr 2018 17:49:52 +0900 Subject: Do not print non-displayable characters fzf used to print non-displayable characters (ascii code < 32) as '?', but we will simply ignore those characters with this patch, just like our terminals do. \n and \r are exceptions. They will be printed as a space character. TODO: \H should delete the preceding character, but this is not implemented. Related: #1253 --- src/util/util.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/util/util.go') diff --git a/src/util/util.go b/src/util/util.go index 867935ac..95c4e1b4 100644 --- a/src/util/util.go +++ b/src/util/util.go @@ -17,11 +17,12 @@ func RuneWidth(r rune, prefixWidth int, tabstop int) int { return tabstop - prefixWidth%tabstop } else if w, found := _runeWidths[r]; found { return w - } else { - w := Max(runewidth.RuneWidth(r), 1) - _runeWidths[r] = w - return w + } else if r == '\n' || r == '\r' { + return 1 } + w := runewidth.RuneWidth(r) + _runeWidths[r] = w + return w } // Max returns the largest integer -- cgit v1.2.3