On 2024-04-05 04:37 +0200, Michael Paquier wrote: > On Thu, Apr 04, 2024 at 10:31:24PM -0400, Tom Lane wrote: > > Michael Paquier <mich...@paquier.xyz> writes: > >> This stuff is actually kind of funny on this host, "\echo :{?VERB\t" > >> completes to something incorrect, as of: > >> postgres=# \echo :\{\?VERBOSITY\} > > > > Just to be clear: you see the extra backslashes if you try this > > tab-completion manually? > > Yeah, I do, after completing "\echo :{?VERB" with this version of > libedit. I see that this completes with backslashes added before '{', > '}' and '?'. The test is telling the same. > > >> Attaching the log file, for reference. Now I can see that this uses > >> libedit at 3.1-20181209, which is far from recent. I'd be OK to just > >> remove libedit from the build to remove this noise, still I am > >> wondering if 927332b95e77 got what it was trying to achieve actually > >> right. Thoughts? > > > > It kind of looks like a libedit bug, but maybe we should dig more > > deeply. I felt itchy about 927332b95e77 removing '{' from the > > WORD_BREAKS set, and wondered exactly how that would change readline's > > behavior. But even if that somehow accounts for the extra backslash > > before '{', it's not clear how it could lead to '?' and '}' also > > getting backslashed. > > I don't have a clear idea, either. I also feel uneasy about > 927332b95e77 and its change of WORD_BREAKS, but this has the smell > of a bug from an outdated libedit version.
It works with the latest libedit 20230828-3.1. Have to check the NetBSD source to find out what changed since 20181209-3.1. https://github.com/NetBSD/src/tree/trunk/lib/libedit -- Erik