if (utf8strlen) {
                        drw_font_getexts(usedfont, utf8str, utf8strlen, &ew, NULL);
                        /* shorten text if necessary */
-                       if (ew > w)
-                               for (ew = 0, len = 0; ew < w - lpad * 2 && len < MIN(utf8strlen, sizeof(buf) - 1); len++)
-                                       drw_font_getexts(usedfont, utf8str, len, &ew, NULL);
-                       else
-                               len = MIN(utf8strlen, sizeof(buf) - 1);
+                       for (len = MIN(utf8strlen, sizeof(buf) - 1); len && ew > w; len--)
+                               drw_font_getexts(usedfont, utf8str, len, &ew, NULL);
 
                        if (len) {
                                memcpy(buf, utf8str, len);