sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit f8229ce1cbe19e494d3936c5f836b17e0478a1fa
parent e4b98c49131adebf6b2e51f5ce72679e19842a0b
Author: Vickenty Fesunov <kent@setattr.net>
Date:   Wed, 24 Jun 2015 20:32:45 +0200

Make slice_by_display_length faster, part 2.

Don't call fix_encoding! on every character in the string.

Diffstat:
M lib/sup/util.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
@@ -252,7 +252,9 @@ class String
 
   def slice_by_display_length len
     each_char.each_with_object "" do |c, buffer|
-      len -= c.display_length
+      width = Unicode.width(c, false)
+      width = 1 if width < 0
+      len -= width
       return buffer if len < 0
       buffer << c
     end