dmenu

dynamic menu
git clone git://git.suckless.org/dmenu
Log | Files | Refs | README | LICENSE

commit 528d39b011afb7ef6fd794ba6b74155d4e69bc68
parent 32db2b125190d366be472ccb7cad833248696144
Author: NRK <nrk@disroot.org>
Date:   Thu,  1 Sep 2022 23:51:43 +0600

tab-complete: figure out the size before copying

we already need to know the string length since `cursor` needs to be
adjusted.

so just calculate the length beforehand and use `memcpy` to copy exactly
as much as needed (as opposed to `strncpy` which always writes `n`
bytes).

Diffstat:
Mdmenu.c | 4++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dmenu.c b/dmenu.c @@ -517,9 +517,9 @@ insert: case XK_Tab: if (!sel) return; - strncpy(text, sel->text, sizeof text - 1); + cursor = strnlen(sel->text, sizeof text - 1); + memcpy(text, sel->text, cursor); text[sizeof text - 1] = '\0'; - cursor = strlen(text); match(); break; }