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:
parent
27b28f1dc2
commit
c2fd2754eb
1 changed files with 14 additions and 20 deletions
34
st.c
34
st.c
|
@ -3245,28 +3245,22 @@ xdraws(char *s, Glyph base, int x, int y, int charlen, int bytelen) {
|
|||
bytelen -= u8cblen;
|
||||
|
||||
doesexist = XftCharExists(xw.dpy, font->match, unicodep);
|
||||
if(oneatatime || !doesexist || bytelen <= 0) {
|
||||
if(oneatatime || bytelen <= 0) {
|
||||
if(doesexist) {
|
||||
u8fl++;
|
||||
u8fblen += u8cblen;
|
||||
}
|
||||
}
|
||||
|
||||
if(u8fl > 0) {
|
||||
XftDrawStringUtf8(xw.draw, fg,
|
||||
font->match, xp,
|
||||
winy + font->ascent,
|
||||
(FcChar8 *)u8fs,
|
||||
u8fblen);
|
||||
xp += xw.cw * u8fl;
|
||||
|
||||
}
|
||||
break;
|
||||
if(doesexist) {
|
||||
u8fl++;
|
||||
u8fblen += u8cblen;
|
||||
if(!oneatatime && bytelen > 0)
|
||||
continue;
|
||||
}
|
||||
|
||||
u8fl++;
|
||||
u8fblen += u8cblen;
|
||||
if(u8fl > 0) {
|
||||
XftDrawStringUtf8(xw.draw, fg,
|
||||
font->match, xp,
|
||||
winy + font->ascent,
|
||||
(FcChar8 *)u8fs,
|
||||
u8fblen);
|
||||
xp += xw.cw * u8fl;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(doesexist) {
|
||||
if(oneatatime)
|
||||
|
|
Loading…
Reference in a new issue