From 528d39b011afb7ef6fd794ba6b74155d4e69bc68 Mon Sep 17 00:00:00 2001 From: NRK Date: Thu, 1 Sep 2022 23:51:43 +0600 Subject: 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). --- dmenu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dmenu.c b/dmenu.c index 969f6d8..6b285df 100644 --- 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; } -- cgit v1.2.3-54-g00ecf