diff options
author | NRK <nrk@disroot.org> | 2022-09-01 23:51:43 +0600 |
---|---|---|
committer | Hiltjo Posthuma <hiltjo@codemadness.org> | 2022-09-02 13:00:48 +0200 |
commit | 528d39b011afb7ef6fd794ba6b74155d4e69bc68 (patch) | |
tree | 75b3a7056698d928254de2681764ef2734d358c1 | |
parent | 32db2b125190d366be472ccb7cad833248696144 (diff) |
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).
-rw-r--r-- | dmenu.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -517,9 +517,9 @@ insert: | |||
517 | case XK_Tab: | 517 | case XK_Tab: |
518 | if (!sel) | 518 | if (!sel) |
519 | return; | 519 | return; |
520 | strncpy(text, sel->text, sizeof text - 1); | 520 | cursor = strnlen(sel->text, sizeof text - 1); |
521 | memcpy(text, sel->text, cursor); | ||
521 | text[sizeof text - 1] = '\0'; | 522 | text[sizeof text - 1] = '\0'; |
522 | cursor = strlen(text); | ||
523 | match(); | 523 | match(); |
524 | break; | 524 | break; |
525 | } | 525 | } |