Commit 92f45065 authored by Bruce Momjian's avatar Bruce Momjian

The attached patch enables PostgreSQL CVS to build cleanly under Cygwin

when built against readline 4.2.  Specifically, it handles the deprecation
of

    filename_completion_function()

with preference for

    rl_filename_completion_function()

Although, I was motivated by Cygwin support, IMO this patch is appropriate
for all platforms.  To quote from the readline source:

    #if 0
    /* Backwards compatibility (compat.c).  These will go away sometime. */
    ...
    extern READLINE_EXPORT(char, *filename_completion_function) ...
    #endif

Note that this patch is modeled after the one by Peter Eisentraut for
completion_matches():

    http://www.ca.postgresql.org/~petere/readline42.html
I tested this patch under the following environments:

    Cygwin with readline 4.1
    Cygwin with readline 4.2
    Linux with readline 2.2.1
    Linux with readline 4.2

and it behaved as expected.

Jason Tishler
parent 8af0ea9d
...@@ -928,7 +928,7 @@ AC_TRY_LINK([#include <stdio.h> ...@@ -928,7 +928,7 @@ AC_TRY_LINK([#include <stdio.h>
AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER)], AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER)],
[AC_MSG_RESULT(no)]) [AC_MSG_RESULT(no)])
AC_CHECK_FUNCS([rl_completion_matches]) AC_CHECK_FUNCS([rl_completion_matches rl_filename_completion_function])
dnl Cannot use AC_CHECK_FUNC because finite may be a macro dnl Cannot use AC_CHECK_FUNC because finite may be a macro
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright 2000 by PostgreSQL Global Development Group * Copyright 2000 by PostgreSQL Global Development Group
* *
* $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.32 2001/05/08 21:06:43 petere Exp $ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.33 2001/06/11 22:12:48 momjian Exp $
*/ */
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
...@@ -60,7 +60,9 @@ ...@@ -60,7 +60,9 @@
#include "common.h" #include "common.h"
#include "settings.h" #include "settings.h"
extern char *filename_completion_function(); #ifdef HAVE_RL_FILENAME_COMPLETION_FUNCTION
#define filename_completion_function rl_filename_completion_function
#endif
#ifdef HAVE_RL_COMPLETION_MATCHES #ifdef HAVE_RL_COMPLETION_MATCHES
#define completion_matches(x, y) rl_completion_matches((x), ((rl_compentry_func_t *)(y))) #define completion_matches(x, y) rl_completion_matches((x), ((rl_compentry_func_t *)(y)))
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* or in config.h afterwards. Of course, if you edit config.h, then your * or in config.h afterwards. Of course, if you edit config.h, then your
* changes will be overwritten the next time you run configure. * changes will be overwritten the next time you run configure.
* *
* $Id: config.h.in,v 1.165 2001/06/02 18:25:18 petere Exp $ * $Id: config.h.in,v 1.166 2001/06/11 22:12:48 momjian Exp $
*/ */
#ifndef CONFIG_H #ifndef CONFIG_H
...@@ -589,6 +589,9 @@ extern int fdatasync(int fildes); ...@@ -589,6 +589,9 @@ extern int fdatasync(int fildes);
/* Set to 1 if you have rl_completion_matches */ /* Set to 1 if you have rl_completion_matches */
#undef HAVE_RL_COMPLETION_MATCHES #undef HAVE_RL_COMPLETION_MATCHES
/* Set to 1 if you have rl_filename_completion_function */
#undef HAVE_RL_FILENAME_COMPLETION_FUNCTION
/* Set to 1 if you have getopt_long() (GNU long options) */ /* Set to 1 if you have getopt_long() (GNU long options) */
#undef HAVE_GETOPT_LONG #undef HAVE_GETOPT_LONG
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment