From 310bfe4e0213b51362a64cdf2d561b4f1492ea6f Mon Sep 17 00:00:00 2001 From: bakkeby Date: Tue, 24 Aug 2021 15:06:49 +0200 Subject: [PATCH] Revert "Improve speed of drw_text when provided with large strings" This reverts commit c585e8e498ec6f9c423ab8ea07cf853ee5b05fbe. It causes issues with truncation of characters when the text does not fit and so on. The patch should be reworked and properly tested. https://git.suckless.org/dmenu/commit/d78ff08d99780a73447d5a95bf1e358e8c23aa3c.html --- README.md | 4 ++-- drw.c | 7 ++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f65baa5..c0544b4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -Similar to [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch) this dmenu 5.0 (cd2133a, -2021-08-09) project has a different take on patching. It uses preprocessor directives to decide +Similar to [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch) this dmenu 5.0 (d78ff08, +2021-08-20) project has a different take on patching. It uses preprocessor directives to decide whether or not to include a patch during build time. Essentially this means that this build, for better or worse, contains both the patched _and_ the original code. The aim being that you can select which patches to include and the build will contain that code and nothing more. diff --git a/drw.c b/drw.c index 6ad9d1f..60199b5 100644 --- a/drw.c +++ b/drw.c @@ -493,11 +493,8 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp 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);