Date: Tue, 08 Feb 2022 16:34:37 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 261728] If sh became a usable interactive shell, then why can't it tab-autocomplete file.(mine).1.txt and file.(mine).2.txt? Message-ID: <bug-261728-227-3k9aihLoS0@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-261728-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261728 Daniel Tameling <tamelingdaniel@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tamelingdaniel@gmail.com --- Comment #6 from Daniel Tameling <tamelingdaniel@gmail.com> --- Created attachment 231647 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=231647&action=edit Add ')' and '}' to the word delimiters for the completion. They were missing. I had a look at what is going on and this looks like a bug. The word delimiters passed to libedit are L" \t\n\"\\'`@$><=;|&{(". This is missing ')' and '}'. So when it is going backwards through file.\(mine\). it recognizes the ')' as a normal character, but the '\' is actually a word delimiter and it then thinks that the ')' starts a new word. So when trying to complete the expression it looks for files starting with ")." and if there is, for example, a file ").test", one gets file.\(mine\\).test, which isn't the right thing to do. What it should do is recognize the ')' as a word delimiter, realize that the '\' before that means that it's escaped and use the whole string for the completion. So one has to add ')' and '}' to the word delimiters. The attached patched fixed the issue in my experiments. -- You are receiving this mail because: You are the assignee for the bug.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-261728-227-3k9aihLoS0>
