Re: [hackers] [dmenu] tab-complete: figure out the size before copying || NRK
Hi Santtu, On Fri, Sep 02, 2022 at 02:58:15PM +0300, Santtu Lakkala wrote: > This should now be > text[cursor] = '\0'; You're totally correct. I noticed this too some time later after I had already sent the patch. I was about to send an amended patch now but looks like it's already fixed thanks to you! - NRK
Re: [hackers] [dmenu] tab-complete: figure out the size before copying || NRK
On Fri, Sep 02, 2022 at 02:58:15PM +0300, Santtu Lakkala wrote: > On 2.9.2022 14.01, g...@suckless.org wrote: > > commit 528d39b011afb7ef6fd794ba6b74155d4e69bc68 > 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' > This should now be > text[cursor] = '\0'; > > (Try, for example: > printf "short\nlongerstring\n" | dmenu > > and type in: lon^Ks > and end up with shortgerstring) > > > - cursor = strlen(text); > > match(); > > break; > > } > > -- > Santtu > Thank you! -- Kind regards, Hiltjo
Re: [hackers] [dmenu] tab-complete: figure out the size before copying || NRK
On 2.9.2022 14.01, g...@suckless.org wrote: commit 528d39b011afb7ef6fd794ba6b74155d4e69bc68 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' This should now be text[cursor] = '\0'; (Try, for example: printf "short\nlongerstring\n" | dmenu and type in: lon^Ks and end up with shortgerstring) - cursor = strlen(text); match(); break; } -- Santtu