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
This commit is contained in:
bakkeby 2021-08-24 15:06:49 +02:00
parent fb43216a0e
commit 310bfe4e02
2 changed files with 4 additions and 7 deletions

View File

@ -1,5 +1,5 @@
Similar to [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch) this dmenu 5.0 (cd2133a, Similar to [dwm-flexipatch](https://github.com/bakkeby/dwm-flexipatch) this dmenu 5.0 (d78ff08,
2021-08-09) project has a different take on patching. It uses preprocessor directives to decide 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 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 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. select which patches to include and the build will contain that code and nothing more.

5
drw.c
View File

@ -493,11 +493,8 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
if (utf8strlen) { if (utf8strlen) {
drw_font_getexts(usedfont, utf8str, utf8strlen, &ew, NULL); drw_font_getexts(usedfont, utf8str, utf8strlen, &ew, NULL);
/* shorten text if necessary */ /* shorten text if necessary */
if (ew > w) for (len = MIN(utf8strlen, sizeof(buf) - 1); len && ew > w; len--)
for (ew = 0, len = 0; ew < w - lpad * 2 && len < MIN(utf8strlen, sizeof(buf) - 1); len++)
drw_font_getexts(usedfont, utf8str, len, &ew, NULL); drw_font_getexts(usedfont, utf8str, len, &ew, NULL);
else
len = MIN(utf8strlen, sizeof(buf) - 1);
if (len) { if (len) {
memcpy(buf, utf8str, len); memcpy(buf, utf8str, len);