On 2019-Dec-13, Tom Lane wrote: > I wrote: > >> Alvaro Herrera <alvhe...@2ndquadrant.com> writes:
> >>> #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 > Looking closer at this, the "extern" could be got rid of, I think. > prairiedog's readline header does have that extern, so it's hard to > believe anybody is still using libedit versions that don't declare it. Agreed. > A possible further change is to switch the code over to calling > "rl_filename_completion_function", and then invert the sense of > this logic, like > > /* > * Ancient versions of libedit provide filename_completion_function() > * instead of rl_filename_completion_function(). > */ > #ifndef HAVE_RL_FILENAME_COMPLETION_FUNCTION > #define rl_filename_completion_function filename_completion_function > #endif > > This would make it easier to compare our code to the readline > documentation, so maybe it's helpful ... or maybe it's just > churn. Thoughts? +1, I think that's clearer. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services