Alvaro Herrera <alvhe...@2ndquadrant.com> writes: > I tested this on libreadline 7.x (where #define > HAVE_RL_FILENAME_COMPLETION_FUNCTION 1). I noticed that if I enter a > filename that doesn't exist and then <tab>, it adds a closing quote. > Bash manages to do nothing somehow, which is the desired behavior IMO.
Hmm. I'll take a look, but I'm not terribly hopeful. I have looked briefly at what Bash does for filename completion, and as I recall it was massive, spaghetti-ish, and way too much in bed with various implementation details of libreadline --- they don't pretend to work with libedit. I'm not prepared to go there. It's reasonable for Bash to expend huge effort on filename completion, because that's such a core use-case for them, but I don't think it deserves as much work in psql. > I don't quite understand why a readline library that doesn't have > rl_filename_completion_function is known to have a > filename_completion_function, ie. this bit > #ifdef HAVE_RL_FILENAME_COMPLETION_FUNCTION > #define filename_completion_function rl_filename_completion_function > #else > /* decl missing in some header files, but function exists anyway */ > extern char *filename_completion_function(); > #endif I think the point is that before rl_filename_completion_function the function existed but was just called filename_completion_function. It's possible that that's obsolete --- I've not really checked. regards, tom lane