Refactor the innermost loop of the xdraws function

Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
This commit is contained in:
Silvan Jegen 2014-06-06 22:09:22 +02:00 committed by Christoph Lohmann
parent 27b28f1dc2
commit c2fd2754eb
1 changed files with 14 additions and 20 deletions

34
st.c
View File

@ -3245,28 +3245,22 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
bytelen -= u8cblen; bytelen -= u8cblen;
doesexist = XftCharExists(xw.dpy, font->match, unicodep); doesexist = XftCharExists(xw.dpy, font->match, unicodep);
if(oneatatime || !doesexist || bytelen <= 0) { if(doesexist) {
if(oneatatime || bytelen <= 0) { u8fl++;
if(doesexist) { u8fblen += u8cblen;
u8fl++; if(!oneatatime && bytelen > 0)
u8fblen += u8cblen; continue;
}
}
if(u8fl > 0) {
XftDrawStringUtf8(xw.draw, fg,
font->match, xp,
winy + font->ascent,
(FcChar8 *)u8fs,
u8fblen);
xp += xw.cw * u8fl;
}
break;
} }
u8fl++; if(u8fl > 0) {
u8fblen += u8cblen; XftDrawStringUtf8(xw.draw, fg,
font->match, xp,
winy + font->ascent,
(FcChar8 *)u8fs,
u8fblen);
xp += xw.cw * u8fl;
}
break;
} }
if(doesexist) { if(doesexist) {
if(oneatatime) if(oneatatime)