URI: 
       st: Fix off-by-one error when calculating character width. - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 39964614b742c4ec98a326762d98470cb987a45b
   DIR parent 0e48a1995eee1c2babc58523ef0be296e4b1c3e8
  HTML Author: Tor Andersson <tor@ccxvii.net>
       Date:   Wed,  9 Mar 2016 17:11:57 +0100
       
       st: Fix off-by-one error when calculating character width.
       
       LEN(str) is one larger than strlen(str) because it also counts the zero
       terminator. The original code would include the .notdef glyph (since it'll
       try to encode character 0, which gets encoded to the .notdef glyph) when
       measuring the average dimensions of printable ascii characters.
       
       This causes problems with fonts like GNU Unifont where the .notdef glyph is
       not the same width as the usual half-width characters.
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M st.c                                |       4 ++--
       
       1 file changed, 2 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/st.c b/st.c
       @@ -3291,7 +3291,7 @@ xloadfont(Font *f, FcPattern *pattern)
        
                XftTextExtentsUtf8(xw.dpy, f->match,
                        (const FcChar8 *) ascii_printable,
       -                LEN(ascii_printable), &extents);
       +                strlen(ascii_printable), &extents);
        
                f->set = NULL;
                f->pattern = FcPatternDuplicate(pattern);
       @@ -3302,7 +3302,7 @@ xloadfont(Font *f, FcPattern *pattern)
                f->rbearing = f->match->max_advance_width;
        
                f->height = f->ascent + f->descent;
       -        f->width = DIVCEIL(extents.xOff, LEN(ascii_printable));
       +        f->width = DIVCEIL(extents.xOff, strlen(ascii_printable));
        
                return 0;
        }