Introduction
Introduction Statistics Contact Development Disclaimer Help
Improve speed of drw_text when provided with large strings - dmenu - dynamic me…
git clone git://git.suckless.org/dmenu
Log
Files
Refs
README
LICENSE
---
commit c585e8e498ec6f9c423ab8ea07cf853ee5b05fbe
parent 523aa08f51a88c59ad4b1f600f8ce3d122e9e289
Author: Miles Alan <[email protected]>
Date: Sat, 7 Aug 2021 21:34:35 -0400
Improve speed of drw_text when provided with large strings
Calculates len & ew in drw_font_getexts loop by incrementing instead of
decrementing; as such avoids proportional increase in time spent in loop
based on provided strings size.
Diffstat:
M drw.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/drw.c b/drw.c
@@ -310,8 +310,11 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned …
if (utf8strlen) {
drw_font_getexts(usedfont, utf8str, utf8strlen, &ew, N…
/* shorten text if necessary */
- for (len = MIN(utf8strlen, sizeof(buf) - 1); len && ew…
- drw_font_getexts(usedfont, utf8str, len, &ew, …
+ if (ew > w)
+ for (ew = 0, len = 0; ew < w - lpad * 2 && len…
+ drw_font_getexts(usedfont, utf8str, le…
+ else
+ len = MIN(utf8strlen, sizeof(buf) - 1);
if (len) {
memcpy(buf, utf8str, len);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.