diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 30e0cb5473..fbf6950ffd 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.18 2000/03/01 21:09:58 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.19 2000/03/05 13:30:19 petere Exp $ */ #include "postgres.h" #include "common.h" @@ -247,6 +247,8 @@ simple_prompt(const char *prompt, int maxlen, bool echo) PGconn *cancelConn; volatile bool cancel_pressed; +#ifndef WIN32 + #define write_stderr(String) write(fileno(stderr), String, strlen(String)) void @@ -269,7 +271,7 @@ handle_sigint(SIGNAL_ARGS) write_stderr(PQerrorMessage(cancelConn)); } } - +#endif /* not WIN32 */ /* diff --git a/src/bin/psql/common.h b/src/bin/psql/common.h index 96c8a79948..2f343e425a 100644 --- a/src/bin/psql/common.h +++ b/src/bin/psql/common.h @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.8 2000/03/01 21:09:58 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.9 2000/03/05 13:30:19 petere Exp $ */ #ifndef COMMON_H #define COMMON_H @@ -30,7 +30,9 @@ char * simple_prompt(const char *prompt, int maxlen, bool echo); extern volatile bool cancel_pressed; extern PGconn *cancelConn; +#ifndef WIN32 void handle_sigint(SIGNAL_ARGS); +#endif /* not WIN32 */ PGresult * PSQLexec(const char *query); diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c index 33c187bdb2..a1bff8a31b 100644 --- a/src/bin/psql/help.c +++ b/src/bin/psql/help.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.23 2000/03/01 21:09:58 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.24 2000/03/05 13:30:19 petere Exp $ */ #include "postgres.h" #include "help.h" @@ -183,7 +183,7 @@ slashUsage(void) if (pset.notty == 0 && (pagerenv = getenv("PAGER")) && (pagerenv[0] != '\0') && - screen_size.ws_row <= 36 && + screen_size.ws_row <= 39 && (fout = popen(pagerenv, "w"))) { usePipe = true; @@ -195,6 +195,7 @@ slashUsage(void) fout = stdout; /* if you add/remove a line here, change the row test above */ + fprintf(fout, " \\a toggle between unaligned and aligned mode\n"); fprintf(fout, " \\c[onnect] [dbname|- [user]]\n" " connect to new database (currently '%s')\n", PQdb(pset.db)); fprintf(fout, " \\copy ... perform SQL COPY with data stream to the client machine\n"); @@ -209,8 +210,11 @@ slashUsage(void) fprintf(fout, " \\e [fname] edit the current query buffer or with external editor\n"); fprintf(fout, " \\echo write text to stdout\n"); fprintf(fout, " \\encoding set client encoding\n"); + fprintf(fout, " \\f change field separator\n"); fprintf(fout, " \\g [fname] send query to backend (and results in or |pipe)\n"); fprintf(fout, " \\h [cmd] help on syntax of sql commands, * for all commands\n"); + fprintf(fout, " \\H toggle HTML mode (currently %s)\n", + ON(pset.popt.topt.format==PRINT_HTML)); fprintf(fout, " \\i read and execute queries from filename\n"); fprintf(fout, " \\l list all databases\n"); fprintf(fout, " \\lo_export, \\lo_import, \\lo_list, \\lo_unlink\n" @@ -226,8 +230,8 @@ slashUsage(void) fprintf(fout, " \\set set internal variable\n"); fprintf(fout, " \\t don't show table headers or footers (currently %s)\n", ON(pset.popt.topt.tuples_only)); fprintf(fout, " \\unset unset (delete) internal variable\n"); - fprintf(fout, " \\x toggle expanded output (currently %s)\n", ON(pset.popt.topt.expanded)); fprintf(fout, " \\w write current query buffer to a file\n"); + fprintf(fout, " \\x toggle expanded output (currently %s)\n", ON(pset.popt.topt.expanded)); fprintf(fout, " \\z list table access permissions\n"); fprintf(fout, " \\! [cmd] shell escape or command\n"); diff --git a/src/bin/psql/mainloop.c b/src/bin/psql/mainloop.c index 4c5c7c5585..4bd4608e5c 100644 --- a/src/bin/psql/mainloop.c +++ b/src/bin/psql/mainloop.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.23 2000/03/01 21:09:58 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.24 2000/03/05 13:30:19 petere Exp $ */ #include "postgres.h" #include "mainloop.h" @@ -92,6 +92,7 @@ MainLoop(FILE *source) /* main loop to get queries and execute them */ while (1) { +#ifndef WIN32 /* * Welcome code for Control-C */ @@ -133,7 +134,7 @@ MainLoop(FILE *source) break; } } - +#endif /* not WIN32 */ if (slashCmdStatus == CMD_NEWEDIT) { diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index 9edfc6b6da..54561cb377 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.14 2000/02/20 14:28:20 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.15 2000/03/05 13:30:19 petere Exp $ */ /*----------- @@ -50,6 +50,10 @@ #include "common.h" #include "settings.h" +#if defined(HAVE_FILENAME_COMPLETION_FUNCTION) && !defined(HAVE_FILENAME_COMPLETION_FUNCTION_DECL) +char * filename_completion_function (char *, int); +#endif + #define BUF_SIZE 2048 #define ERROR_QUERY_TOO_LONG /* empty */ @@ -532,7 +536,15 @@ char ** psql_completion(char *text, int start, int end) strcmp(prev_wd, "\\s")==0 || strcmp(prev_wd, "\\w")==0 || strcmp(prev_wd, "\\write")==0 ) { +#ifdef HAVE_FILENAME_COMPLETION_FUNCTION matches = completion_matches(text, filename_completion_function); +#else + /* + * This will probably have the same effect, but you never know what + * the heck some readline incarnation out there is going to do. + */ + matches = NULL; +#endif } diff --git a/src/bin/psql/tab-complete.h b/src/bin/psql/tab-complete.h index 8c54cffeb6..c7d44bd2f0 100644 --- a/src/bin/psql/tab-complete.h +++ b/src/bin/psql/tab-complete.h @@ -3,11 +3,13 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.h,v 1.3 2000/01/29 16:58:49 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.h,v 1.4 2000/03/05 13:30:19 petere Exp $ */ #ifndef TAB_COMPLETE_H #define TAB_COMPLETE_H +#include "postgres.h" + void initialize_readline(void); #endif diff --git a/src/configure.in b/src/configure.in index fc91938220..dd79e1a977 100644 --- a/src/configure.in +++ b/src/configure.in @@ -846,6 +846,18 @@ AC_EGREP_HEADER(rl_completion_append_character, readline.h, AC_DEFINE(HAVE_RL_COMPLETION_APPEND_CHARACTER))]) AC_SUBST(HAVE_RL_COMPLETION_APPEND_CHARACTER) +dnl Check for readline's filename_completion_function. +dnl Some versions have it but it's not in the headers, so we have to take +dnl care of that, too. +AC_CHECK_FUNCS(filename_completion_function, + AC_EGREP_HEADER(filename_completion_function, readline.h, + AC_DEFINE(HAVE_FILENAME_COMPLETION_FUNCTION_DECL), + [AC_EGREP_HEADER(filename_completion_function, readline/readline.h, + AC_DEFINE(HAVE_FILENAME_COMPLETION_FUNCTION_DECL))]) +) +AC_SUBST(HAVE_FILENAME_COMPLETION_FUNCTION) +AC_SUBST(HAVE_FILENAME_COMPLETION_FUNCTION_DECL) + dnl Check for GNU style long options support (getopt_long) AC_CHECK_FUNCS(getopt_long) diff --git a/src/include/config.h.in b/src/include/config.h.in index 806aae9675..fb472061f5 100644 --- a/src/include/config.h.in +++ b/src/include/config.h.in @@ -468,6 +468,12 @@ extern void srandom(unsigned int seed); /* Set to 1 if your libreadline defines rl_completion_append_character */ #undef HAVE_RL_COMPLETION_APPEND_CHARACTER +/* Set to 1 if your libreadline has filename_completion_function */ +#undef HAVE_FILENAME_COMPLETION_FUNCTION + +/* Set to 1 if your readline headers actually declare the above */ +#undef HAVE_FILENAME_COMPLETION_FUNCTION_DECL + /* Set to 1 if you have getopt_long() (GNU long options) */ #undef HAVE_GETOPT_LONG diff --git a/src/include/port/win.h b/src/include/port/win.h index 77081fa36a..61acdb3e21 100644 --- a/src/include/port/win.h +++ b/src/include/port/win.h @@ -14,6 +14,3 @@ typedef unsigned char slock_t; #if (CYGWIN_VERSION_API_MAJOR >= 0) && (CYGWIN_VERSION_API_MINOR >= 8) #define sys_nerr _sys_nerr #endif - -/* not exported in readline.h */ -char * filename_completion_function();