]> granicus.if.org Git - postgresql/commitdiff
Moved psql \eset and \eshow to \encoding
authorPeter Eisentraut <peter_e@gmx.net>
Sun, 20 Feb 2000 14:28:28 +0000 (14:28 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Sun, 20 Feb 2000 14:28:28 +0000 (14:28 +0000)
Improved psql's Ctrl-C handling
Fixed configure test for sigsetjmp that now even recognizes it if it's a macro

15 files changed:
src/bin/psql/command.c
src/bin/psql/command.h
src/bin/psql/common.c
src/bin/psql/common.h
src/bin/psql/help.c
src/bin/psql/input.c
src/bin/psql/mainloop.c
src/bin/psql/mainloop.h
src/bin/psql/startup.c
src/bin/psql/tab-complete.c
src/configure
src/configure.in
src/include/config.h.in
src/include/port/linux.h
src/include/tcop/tcopprot.h

index 02bcb9335f3f9a5ecbcb4efc1a454ccd68ee7bbf..c7b4577e822779c34fbc02dfd3267bd3b61cda80 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.21 2000/02/20 02:37:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.22 2000/02/20 14:28:20 petere Exp $
  */
 #include "postgres.h"
 #include "command.h"
@@ -36,6 +36,9 @@
 #ifdef MULTIBYTE
 #include "miscadmin.h"
 #include "mb/pg_wchar.h"
+#else
+/* Grand unified hard-coded badness */
+#define pg_encoding_to_char(x) "SQL_ASCII"
 #endif
 
 
@@ -351,30 +354,29 @@ exec_command(const char *cmd,
             fputs("\n", fout);
        }
 
-#ifdef MULTIBYTE
-       /* \eset -- set client side encoding */
-       else if (strcmp(cmd, "eset") == 0)
+       /* \encoding -- set client side encoding */
+       else if (strcmp(cmd, "encoding") == 0)
        {
                char *encoding = scan_option(&string, OT_NORMAL, NULL);
-               if (PQsetClientEncoding(pset.db, encoding) == -1)
-               {
-                       psql_error("\\%s: invalid encoding\n", cmd);
-               }
-               /* save encoding info into psql internal data */
-               pset.encoding = PQclientEncoding(pset.db);
-               free(encoding);
-       }
-       /* \eshow -- show encoding info */
-       else if (strcmp(cmd, "eshow") == 0)
-       {
-               int encoding = PQclientEncoding(pset.db);
-               if (encoding == -1)
-               {
-                       psql_error("\\%s: there is no connection\n", cmd);
-               }
-               printf("%s\n", pg_encoding_to_char(encoding));
-       }
+
+        if (!encoding)
+            puts(pg_encoding_to_char(pset.encoding));
+        else
+        {
+#ifdef MULTIBYTE
+            if (PQsetClientEncoding(pset.db, encoding) == -1)
+                psql_error("%s: invalid encoding name\n", encoding);
+
+            /* save encoding info into psql internal data */
+            pset.encoding = PQclientEncoding(pset.db);
+            SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding));
+#else
+            psql_error("\\%s: multi-byte support is not enabled\n", cmd);
 #endif
+        }
+        free(encoding);
+       }
+
        /* \f -- change field separator */
        else if (strcmp(cmd, "f") == 0)
     {
@@ -425,7 +427,7 @@ exec_command(const char *cmd,
                }
                else
         {
-                       success = process_file(fname);
+                       success = process_file(fname) == EXIT_SUCCESS;
             free (fname);
         }
        }
@@ -1148,6 +1150,7 @@ do_connect(const char *new_dbname, const char *new_user)
     SetVariable(pset.vars, "USER", NULL);
     SetVariable(pset.vars, "HOST", NULL);
     SetVariable(pset.vars, "PORT", NULL);
+    SetVariable(pset.vars, "ENCODING", NULL);
 
        /* If dbname is "" then use old name, else new one (even if NULL) */
        if (oldconn && new_dbname && PQdb(oldconn) && strcmp(new_dbname, "") == 0)
@@ -1247,6 +1250,7 @@ do_connect(const char *new_dbname, const char *new_user)
     SetVariable(pset.vars, "USER", PQuser(pset.db));
     SetVariable(pset.vars, "HOST", PQhost(pset.db));
     SetVariable(pset.vars, "PORT", PQport(pset.db));
+    SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding));
 
     pset.issuper = test_superuser(PQuser(pset.db));
 
@@ -1471,7 +1475,7 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf)
  * Read commands from filename and then them to the main processing loop
  * Handler for \i, but can be used for other things as well.
  */
-bool
+int
 process_file(char *filename)
 {
        FILE       *fd;
@@ -1494,7 +1498,7 @@ process_file(char *filename)
        result = MainLoop(fd);
        fclose(fd);
        pset.inputfile = oldfilename;
-       return (result == EXIT_SUCCESS);
+       return result;
 }
 
 
index 4fcbf61fcedbc912ce47608a7f919de29cda5684..1fec5346faaa62e0047153f4aacf52b98d301059 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/command.h,v 1.8 2000/02/16 13:15:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/command.h,v 1.9 2000/02/20 14:28:20 petere Exp $
  */
 #ifndef COMMAND_H
 #define COMMAND_H
@@ -31,7 +31,7 @@ HandleSlashCmds(const char *line,
                                PQExpBuffer query_buf,
                                const char **end_of_cmd);
 
-bool
+int
 process_file(char *filename);
 
 bool
index c86a2f3d834f427fe4478c6facd94db01be76a56..cb352793a21d6adb537e64e2190e9584ad880aa6 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.15 2000/02/20 02:37:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.c,v 1.16 2000/02/20 14:28:20 petere Exp $
  */
 #include "postgres.h"
 #include "common.h"
@@ -19,6 +19,7 @@
 #include <signal.h>
 #ifndef WIN32
 #include <unistd.h>                            /* for write() */
+#include <setjmp.h>
 #else
 #include <io.h>                 /* for _write() */
 #include <win32.h>
@@ -34,7 +35,7 @@
 #include "copy.h"
 #include "prompt.h"
 #include "print.h"
-
+#include "mainloop.h"
 
 
 /*
@@ -184,7 +185,7 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
        if (!destination)
                return NULL;
        if (prompt)
-               fputs(prompt, stdout);
+               fputs(prompt, stderr);
 
 #ifdef HAVE_TERMIOS_H
        if (!echo)
@@ -238,14 +239,22 @@ simple_prompt(const char *prompt, int maxlen, bool echo)
  */
 
 static PGconn *cancelConn;
+volatile bool cancel_pressed;
 
 #define write_stderr(String) write(fileno(stderr), String, strlen(String))
 
-static void
+void
 handle_sigint(SIGNAL_ARGS)
 {
        if (cancelConn == NULL)
+#ifndef WIN32
+        siglongjmp(main_loop_jmp, 1);
+#else
                return;
+#endif
+
+    cancel_pressed = true;
+
        /* Try to send cancel request */
        if (PQrequestCancel(cancelConn))
                write_stderr("\nCancel request sent\n");
@@ -287,15 +296,8 @@ PSQLexec(const char *query)
                return NULL;
 
        cancelConn = pset.db;
-#ifndef WIN32
-       pqsignal(SIGINT, handle_sigint);        /* control-C => cancel */
-#endif
-
        res = PQexec(pset.db, query);
-
-#ifndef WIN32
-       pqsignal(SIGINT, SIG_DFL);      /* now control-C is back to normal */
-#endif
+    cancelConn = NULL;
 
        if (PQstatus(pset.db) == CONNECTION_BAD)
        {
@@ -316,6 +318,7 @@ PSQLexec(const char *query)
             SetVariable(pset.vars, "HOST", NULL);
             SetVariable(pset.vars, "PORT", NULL);
             SetVariable(pset.vars, "USER", NULL);
+            SetVariable(pset.vars, "ENCODING", NULL);
                        return NULL;
                }
                else
@@ -359,7 +362,7 @@ SendQuery(const char *query)
 
        if (!pset.db)
        {
-        psql_error("you are currently not connected to a database.\n");
+        psql_error("You are currently not connected to a database.\n");
                return false;
        }
 
@@ -384,15 +387,8 @@ SendQuery(const char *query)
     }
 
        cancelConn = pset.db;
-#ifndef WIN32
-       pqsignal(SIGINT, handle_sigint);
-#endif
-
        results = PQexec(pset.db, query);
-
-#ifndef WIN32
-       pqsignal(SIGINT, SIG_DFL);
-#endif
+    cancelConn = NULL;
 
        if (results == NULL)
        {
@@ -494,6 +490,7 @@ SendQuery(const char *query)
                 SetVariable(pset.vars, "HOST", NULL);
                 SetVariable(pset.vars, "PORT", NULL);
                 SetVariable(pset.vars, "USER", NULL);
+                SetVariable(pset.vars, "ENCODING", NULL);
                                return false;
                        }
                        else
index af6f04965da4e216c88c2f2e583267e43b34d575..6a7be3ec2028b64f95f69570e8f7830c8994d0c6 100644 (file)
@@ -3,11 +3,14 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.6 2000/02/16 13:15:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/common.h,v 1.7 2000/02/20 14:28:20 petere Exp $
  */
 #ifndef COMMON_H
 #define COMMON_H
 
+#include "postgres.h"
+#include <signal.h>
+#include "pqsignal.h"
 #include "libpq-fe.h"
 
 char *         xstrdup(const char *string);
@@ -25,6 +28,9 @@ void        NoticeProcessor(void * arg, const char * message);
 
 char *         simple_prompt(const char *prompt, int maxlen, bool echo);
 
+extern volatile bool cancel_pressed;
+void        handle_sigint(SIGNAL_ARGS);
+
 PGresult *     PSQLexec(const char *query);
 
 bool           SendQuery(const char *query);
index 30d2307e892c6a82619b4564a9b0b7ab1aa3a054..8fa9187d2da24a69d3bfd2960d5ffff5c709f29a 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.21 2000/02/20 02:37:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/help.c,v 1.22 2000/02/20 14:28:20 petere Exp $
  */
 #include "postgres.h"
 #include "help.h"
 #include "common.h"
 #include "sql_help.h"
 
+/*
+ * PLEASE:
+ * If you change something in this file, also make the same changes
+ * in the DocBook documentation, file ref/psql-ref.sgml. If you don't
+ * know how to do it, please find someone who can help you.
+ */
+
 
 /*
  * usage
@@ -200,10 +207,7 @@ slashUsage(void)
        fprintf(fout, " \\dT            list data types\n");
        fprintf(fout, " \\e [fname]     edit the current query buffer or <fname> with external editor\n");
        fprintf(fout, " \\echo <text>   write text to stdout\n");
-#ifdef MULTIBYTE
-       fprintf(fout, " \\eset <encoding> set client encoding\n");
-       fprintf(fout, " \\eshow         show client encoding\n");
-#endif
+       fprintf(fout, " \\encoding <encoding>  set client encoding\n");
        fprintf(fout, " \\g [fname]     send query to backend (and results in <fname> or |pipe)\n");
        fprintf(fout, " \\h [cmd]       help on syntax of sql commands, * for all commands\n");
        fprintf(fout, " \\i <fname>     read and execute queries from filename\n");
index 2e509aad0b1bd973f3eb8cba266f854d7a8adea7..6d7143467c09fc81feed95275554d1df6a56fb8d 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/input.c,v 1.11 2000/02/20 02:37:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/input.c,v 1.12 2000/02/20 14:28:20 petere Exp $
  */
 #include "postgres.h"
 #include "input.h"
@@ -148,6 +148,8 @@ initializeInput(int flags)
                }
        }
 #endif
+
+    atexit(finishInput);
 }
 
 
index 28d7b58bb061328186fdd3956d6d05479fdaac9d..9b3834cca7d74cf9c5df9205e777dd79f840f1c1 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.21 2000/02/20 02:37:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.22 2000/02/20 14:28:20 petere Exp $
  */
 #include "postgres.h"
 #include "mainloop.h"
 #include "common.h"
 #include "command.h"
 
+#ifndef WIN32
+#include <setjmp.h>
+
+sigjmp_buf main_loop_jmp;
+#endif
 
 
 /*
@@ -88,6 +93,40 @@ MainLoop(FILE *source)
        /* main loop to get queries and execute them */
        while (1)
        {
+        /*
+         * Welcome code for Control-C
+         */
+        if (cancel_pressed)
+        {
+            cancel_pressed = false;
+            if (!pset.cur_cmd_interactive)
+            {
+                /*
+                 * You get here if you stopped a script with Ctrl-C and a query
+                 * cancel was issued. In that case we don't do the longjmp, so
+                 * the query routine can finish nicely.
+                 */
+                successResult = EXIT_USER;
+                break;
+            }
+        }
+#ifndef WIN32
+        if (sigsetjmp(main_loop_jmp, 1) != 0)
+        {
+            /* got here with longjmp */
+            if (pset.cur_cmd_interactive)
+            {
+                fputc('\n', stdout);
+                resetPQExpBuffer(query_buf);
+            }
+            else
+            {
+                successResult = EXIT_USER;
+                break;
+            }            
+        }
+#endif
+
                if (slashCmdStatus == CMD_NEWEDIT)
                {
                        /*
@@ -213,7 +252,7 @@ MainLoop(FILE *source)
 
                /* echo back if flag is set */
         var = GetVariable(pset.vars, "ECHO");
-        if (var && strcmp(var, "all")==0)
+        if (!pset.cur_cmd_interactive && var && strcmp(var, "all")==0)
             puts(line);
         fflush(stdout);
 
index 72d46d76dbd935eceaea32b9a3829bbe39f54699..a9cc61b7f66b2a77877afa55ca47858eb6d79c98 100644 (file)
@@ -3,11 +3,19 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.h,v 1.7 2000/02/16 13:15:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.h,v 1.8 2000/02/20 14:28:20 petere Exp $
  */
 #ifndef MAINLOOP_H
 #define MAINLOOP_H
 
+#include "postgres.h"
+#include <stdio.h>
+#ifndef WIN32
+#include <setjmp.h>
+
+extern sigjmp_buf main_loop_jmp;
+#endif
+
 int MainLoop(FILE *source);
 
 #endif  /* MAINLOOP_H */
index ccb5f477e65e7737ca5432d309cbec35514cd9d8..7f538048acd919e76953cc5d40af1122d3bf3db8 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.24 2000/02/16 13:15:26 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.25 2000/02/20 14:28:20 petere Exp $
  */
 #include "postgres.h"
 
 #include "settings.h"
 #include "variables.h"
 
+#ifdef MULTIBYTE
+#include "miscadmin.h"
+#include "mb/pg_wchar.h"
+#else
+/* XXX Grand unified hard-coded badness; this should go into libpq */
+#define pg_encoding_to_char(x) "SQL_ASCII"
+#endif
+
 /*
  * Global psql options
  */
@@ -65,7 +73,7 @@ struct adhoc_opts
 };
 
 static void
-parse_options(int argc, char *argv[], struct adhoc_opts * options);
+parse_psql_options(int argc, char *argv[], struct adhoc_opts * options);
 
 static void
 process_psqlrc(void);
@@ -121,7 +129,7 @@ main(int argc, char *argv[])
        pset.getPassword = false;
 #endif
 
-       parse_options(argc, argv, &options);
+       parse_psql_options(argc, argv, &options);
 
     if (!pset.popt.topt.fieldSep)
         pset.popt.topt.fieldSep = xstrdup(DEFAULT_FIELD_SEP);
@@ -191,6 +199,11 @@ main(int argc, char *argv[])
     SetVariable(pset.vars, "USER", PQuser(pset.db));
     SetVariable(pset.vars, "HOST", PQhost(pset.db));
     SetVariable(pset.vars, "PORT", PQport(pset.db));
+    SetVariable(pset.vars, "ENCODING", pg_encoding_to_char(pset.encoding));
+
+#ifndef WIN32
+       pqsignal(SIGINT, handle_sigint);        /* control-C => cancel */
+#endif
 
        /*
      * Now find something to do
@@ -200,7 +213,7 @@ main(int argc, char *argv[])
      * process file given by -f
      */
        if (options.action == ACT_FILE)
-               successResult = process_file(options.action_string) ? 0 : 1;
+               successResult = process_file(options.action_string);
        /*
      * process slash command if one was given to -c
      */
@@ -208,9 +221,10 @@ main(int argc, char *argv[])
     {
         const char * value;
 
-        if ((value = GetVariable(pset.vars, "ECHO")) && strcmp(value, "full")==0)
+        if ((value = GetVariable(pset.vars, "ECHO")) && strcmp(value, "all")==0)
             puts(options.action_string);
-               successResult = HandleSlashCmds(options.action_string, NULL, NULL) != CMD_ERROR ? 0 : 1;
+               successResult = HandleSlashCmds(options.action_string, NULL, NULL) != CMD_ERROR
+            ? EXIT_SUCCESS : EXIT_FAILURE;
     }
        /*
      * If the query given to -c was a normal one, send it
@@ -219,9 +233,10 @@ main(int argc, char *argv[])
     {
         const char * value;
 
-        if ((value = GetVariable(pset.vars, "ECHO")) && strcmp(value, "full")==0)
+        if ((value = GetVariable(pset.vars, "ECHO")) && strcmp(value, "all")==0)
             puts(options.action_string);
-               successResult = SendQuery(options.action_string) ? 0 : 1;
+               successResult = SendQuery(options.action_string)
+            ? EXIT_SUCCESS : EXIT_FAILURE;
     }
        /*
      * or otherwise enter interactive main loop
@@ -246,14 +261,11 @@ main(int argc, char *argv[])
         if (!pset.notty)
             initializeInput(options.no_readline ? 0 : 1);
                successResult = MainLoop(stdin);
-        if (!pset.notty)
-            finishInput();
     }
 
        /* clean up */
        PQfinish(pset.db);
        setQFout(NULL);
-       DestroyVariableSpace(pset.vars);
 
        return successResult;
 }
@@ -272,7 +284,7 @@ char        *__progname = "psql";
 #endif
 
 static void
-parse_options(int argc, char *argv[], struct adhoc_opts * options)
+parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
 {
 #ifdef HAVE_GETOPT_LONG
        static struct option long_options[] =
index f1492e11ed31e73ec0a11f5417315507e4cb9aa6..9edfc6b6da8fc3fae32eeb2f5a957d41ac150f1c 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.13 2000/02/20 02:37:40 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v 1.14 2000/02/20 14:28:20 petere Exp $
  */
 
 /*-----------
@@ -198,14 +198,19 @@ char ** psql_completion(char *text, int start, int end)
 
     static char * backslash_commands[] = {
         "\\connect", "\\copy", "\\d", "\\di", "\\di", "\\ds", "\\dS", "\\dv",
-        "\\da", "\\df", "\\do", "\\dt", "\\e", "\\echo", "\\g", "\\h", "\\i", "\\l",
+        "\\da", "\\df", "\\do", "\\dt", "\\e", "\\echo", "\\encoding",
+        "\\g", "\\h", "\\i", "\\l",
         "\\lo_import", "\\lo_export", "\\lo_list", "\\lo_unlink",
-        "\\o", "\\p", "\\pset", "\\q", "\\qecho", "\\r", "\\set", "\\t", "\\x",
-        "\\w", "\\z", "\\!", NULL
+        "\\o", "\\p", "\\pset", "\\q", "\\qecho", "\\r", "\\set", "\\t", "\\unset",
+        "\\x", "\\w", "\\z", "\\!", NULL
     };
 
     (void)end; /* not used */
 
+#ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
+        rl_completion_append_character = ' ';
+#endif
+
     /* Clear a few things. */
     completion_charp = NULL;
     completion_charpp = NULL;
@@ -547,7 +552,8 @@ char ** psql_completion(char *text, int start, int end)
     /* If we still don't have anything to match we have to fabricate some sort
        of default list. If we were to just return NULL, readline automatically
        attempts filename completion, and that's usually no good. */
-    if (matches == NULL) {
+    if (matches == NULL)
+    {
         COMPLETE_WITH_CONST("");
 #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER
         rl_completion_append_character = '\0';
index 15ffca02c3c2e8e335295a12bff2d25883628b09..3c95d0c64b59d859dd34ecdc1e263998bc9905b6 100755 (executable)
@@ -5052,7 +5052,7 @@ fi
 
 fi
 
-for ac_func in memmove sigsetjmp sysconf
+for ac_func in memmove sysconf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 echo "configure:5059: checking for $ac_func" >&5
@@ -6236,15 +6236,39 @@ else
 fi
 rm -f conftest*
 
+echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
+echo "configure:6241: checking for sigsetjmp" >&5
+cat > conftest.$ac_ext <<EOF
+#line 6243 "configure"
+#include "confdefs.h"
+#include <setjmp.h>
+int main() {
+sigjmp_buf x; sigsetjmp(x, 1);
+; return 0; }
+EOF
+if { (eval echo configure:6250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  cat >> confdefs.h <<\EOF
+#define HAVE_SIGSETJMP 1
+EOF
+ echo "$ac_t""yes" 1>&6
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  echo "$ac_t""no" 1>&6
+fi
+rm -f conftest*
+
 
 HAVE_LONG_INT_64=0
 echo $ac_n "checking whether 'long int' is 64 bits""... $ac_c" 1>&6
-echo "configure:6243: checking whether 'long int' is 64 bits" >&5
+echo "configure:6267: checking whether 'long int' is 64 bits" >&5
 if test "$cross_compiling" = yes; then
   echo "$ac_t""assuming not on target machine" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6248 "configure"
+#line 6272 "configure"
 #include "confdefs.h"
 typedef long int int64;
 
@@ -6272,7 +6296,7 @@ main() {
   exit(! does_int64_work());
 }
 EOF
-if { (eval echo configure:6276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   HAVE_LONG_INT_64=1
         cat >> confdefs.h <<\EOF
@@ -6293,12 +6317,12 @@ fi
 HAVE_LONG_LONG_INT_64=0
 if [ $HAVE_LONG_INT_64 -eq 0 ] ; then
 echo $ac_n "checking whether 'long long int' is 64 bits""... $ac_c" 1>&6
-echo "configure:6297: checking whether 'long long int' is 64 bits" >&5
+echo "configure:6321: checking whether 'long long int' is 64 bits" >&5
 if test "$cross_compiling" = yes; then
   echo "$ac_t""assuming not on target machine" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6302 "configure"
+#line 6326 "configure"
 #include "confdefs.h"
 typedef long long int int64;
 
@@ -6326,7 +6350,7 @@ main() {
   exit(! does_int64_work());
 }
 EOF
-if { (eval echo configure:6330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   HAVE_LONG_LONG_INT_64=1
         cat >> confdefs.h <<\EOF
@@ -6349,7 +6373,7 @@ fi
 if [ $HAVE_LONG_LONG_INT_64 -eq 1 ] ; then
   if [ x$SNPRINTF = x ] ; then
     echo $ac_n "checking whether snprintf handles 'long long int' as %lld""... $ac_c" 1>&6
-echo "configure:6353: checking whether snprintf handles 'long long int' as %lld" >&5
+echo "configure:6377: checking whether snprintf handles 'long long int' as %lld" >&5
     if test "$cross_compiling" = yes; then
    echo "$ac_t""assuming not on target machine" 1>&6
        # Force usage of our own snprintf, since we cannot test foreign snprintf
@@ -6358,7 +6382,7 @@ echo "configure:6353: checking whether snprintf handles 'long long int' as %lld"
   
 else
   cat > conftest.$ac_ext <<EOF
-#line 6362 "configure"
+#line 6386 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 typedef long long int int64;
@@ -6385,7 +6409,7 @@ main() {
   exit(! does_int64_snprintf_work());
 }
 EOF
-if { (eval echo configure:6389: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
    echo "$ac_t""yes" 1>&6
          INT64_FORMAT='"%lld"'
@@ -6396,7 +6420,7 @@ else
   rm -fr conftest*
    echo "$ac_t""no" 1>&6
     echo $ac_n "checking whether snprintf handles 'long long int' as %qd""... $ac_c" 1>&6
-echo "configure:6400: checking whether snprintf handles 'long long int' as %qd" >&5 
+echo "configure:6424: checking whether snprintf handles 'long long int' as %qd" >&5 
     if test "$cross_compiling" = yes; then
    echo "$ac_t""assuming not on target machine" 1>&6
        # Force usage of our own snprintf, since we cannot test foreign snprintf
@@ -6405,7 +6429,7 @@ echo "configure:6400: checking whether snprintf handles 'long long int' as %qd"
   
 else
   cat > conftest.$ac_ext <<EOF
-#line 6409 "configure"
+#line 6433 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 typedef long long int int64;
@@ -6432,7 +6456,7 @@ main() {
   exit(! does_int64_snprintf_work());
 }
 EOF
-if { (eval echo configure:6436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
    echo "$ac_t""yes" 1>&6
     INT64_FORMAT='"%qd"'
@@ -6474,7 +6498,7 @@ EOF
 
 
 echo $ac_n "checking alignment of short""... $ac_c" 1>&6
-echo "configure:6478: checking alignment of short" >&5
+echo "configure:6502: checking alignment of short" >&5
 if eval "test \"`echo '$''{'ac_cv_alignof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6482,7 +6506,7 @@ else
   ac_cv_alignof_short='sizeof(short)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 6486 "configure"
+#line 6510 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; short field; } mystruct;
@@ -6494,7 +6518,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:6498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_alignof_short=`cat conftestval`
 else
@@ -6514,7 +6538,7 @@ EOF
 
 
 echo $ac_n "checking alignment of int""... $ac_c" 1>&6
-echo "configure:6518: checking alignment of int" >&5
+echo "configure:6542: checking alignment of int" >&5
 if eval "test \"`echo '$''{'ac_cv_alignof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6522,7 +6546,7 @@ else
   ac_cv_alignof_int='sizeof(int)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 6526 "configure"
+#line 6550 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; int field; } mystruct;
@@ -6534,7 +6558,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:6538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_alignof_int=`cat conftestval`
 else
@@ -6554,7 +6578,7 @@ EOF
 
 
 echo $ac_n "checking alignment of long""... $ac_c" 1>&6
-echo "configure:6558: checking alignment of long" >&5
+echo "configure:6582: checking alignment of long" >&5
 if eval "test \"`echo '$''{'ac_cv_alignof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6562,7 +6586,7 @@ else
   ac_cv_alignof_long='sizeof(long)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 6566 "configure"
+#line 6590 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; long field; } mystruct;
@@ -6574,7 +6598,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:6578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_alignof_long=`cat conftestval`
 else
@@ -6595,7 +6619,7 @@ EOF
 
 if [ $HAVE_LONG_LONG_INT_64 -eq 1 ] ; then
   echo $ac_n "checking alignment of long long int""... $ac_c" 1>&6
-echo "configure:6599: checking alignment of long long int" >&5
+echo "configure:6623: checking alignment of long long int" >&5
 if eval "test \"`echo '$''{'ac_cv_alignof_long_long_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6603,7 +6627,7 @@ else
   ac_cv_alignof_long_long_int='sizeof(long long int)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 6607 "configure"
+#line 6631 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; long long int field; } mystruct;
@@ -6615,7 +6639,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:6619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_alignof_long_long_int=`cat conftestval`
 else
@@ -6636,7 +6660,7 @@ EOF
 
 fi
 echo $ac_n "checking alignment of double""... $ac_c" 1>&6
-echo "configure:6640: checking alignment of double" >&5
+echo "configure:6664: checking alignment of double" >&5
 if eval "test \"`echo '$''{'ac_cv_alignof_double'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6644,7 +6668,7 @@ else
   ac_cv_alignof_double='sizeof(double)'
 else
   cat > conftest.$ac_ext <<EOF
-#line 6648 "configure"
+#line 6672 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 struct { char filler; double field; } mystruct;
@@ -6656,7 +6680,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:6660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_alignof_double=`cat conftestval`
 else
@@ -6698,9 +6722,9 @@ EOF
 
 
 echo $ac_n "checking for POSIX signal interface""... $ac_c" 1>&6
-echo "configure:6702: checking for POSIX signal interface" >&5
+echo "configure:6726: checking for POSIX signal interface" >&5
 cat > conftest.$ac_ext <<EOF
-#line 6704 "configure"
+#line 6728 "configure"
 #include "confdefs.h"
 #include <signal.h>
 int main() {
@@ -6710,7 +6734,7 @@ act.sa_flags = SA_RESTART;
 sigaction(0, &act, &oact);
 ; return 0; }
 EOF
-if { (eval echo configure:6714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define USE_POSIX_SIGNALS 1
@@ -6734,7 +6758,7 @@ then
        # Extract the first word of "tclsh", so it can be a program name with args.
 set dummy tclsh; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6738: checking for $ac_word" >&5
+echo "configure:6762: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6771,7 +6795,7 @@ fi
                # Extract the first word of "tcl", so it can be a program name with args.
 set dummy tcl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6775: checking for $ac_word" >&5
+echo "configure:6799: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_TCLSH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6814,7 +6838,7 @@ fi
 if test "$USE_TCL" = true
 then
        echo $ac_n "checking for tclConfig.sh""... $ac_c" 1>&6
-echo "configure:6818: checking for tclConfig.sh" >&5
+echo "configure:6842: checking for tclConfig.sh" >&5
        TCL_CONFIG_SH=
        library_dirs=
        if test -z "$TCL_DIRS"
@@ -6843,7 +6867,7 @@ USE_TK=$USE_TCL           # If TCL is disabled, disable TK
 if test "$USE_TK" = true
 then
        echo $ac_n "checking for tkConfig.sh""... $ac_c" 1>&6
-echo "configure:6847: checking for tkConfig.sh" >&5
+echo "configure:6871: checking for tkConfig.sh" >&5
        TK_CONFIG_SH=
        # library_dirs are set in the check for TCL
        for dir in $library_dirs
@@ -6865,7 +6889,7 @@ echo "configure:6847: checking for tkConfig.sh" >&5
                # Extract the first word of "wish", so it can be a program name with args.
 set dummy wish; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6869: checking for $ac_word" >&5
+echo "configure:6893: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_WISH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6915,7 +6939,7 @@ if test "$USE_X" = true; then
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:6919: checking for X" >&5
+echo "configure:6943: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -6977,12 +7001,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 6981 "configure"
+#line 7005 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6986: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7010: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7051,14 +7075,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7055 "configure"
+#line 7079 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:7062: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -7164,17 +7188,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:7168: checking whether -R must be followed by a space" >&5
+echo "configure:7192: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 7171 "configure"
+#line 7195 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:7178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -7190,14 +7214,14 @@ rm -f conftest*
       else
        LIBS="$ac_xsave_LIBS -R $x_libraries"
        cat > conftest.$ac_ext <<EOF
-#line 7194 "configure"
+#line 7218 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:7201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -7229,7 +7253,7 @@ rm -f conftest*
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:7233: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:7257: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7237,7 +7261,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7241 "configure"
+#line 7265 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7248,7 +7272,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:7252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7270,7 +7294,7 @@ fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:7274: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:7298: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7278,7 +7302,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7282 "configure"
+#line 7306 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7289,7 +7313,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:7293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7318,12 +7342,12 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:7322: checking for gethostbyname" >&5
+echo "configure:7346: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7327 "configure"
+#line 7351 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -7346,7 +7370,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -7367,7 +7391,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:7371: checking for gethostbyname in -lnsl" >&5
+echo "configure:7395: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7375,7 +7399,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7379 "configure"
+#line 7403 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7386,7 +7410,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:7390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7416,12 +7440,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:7420: checking for connect" >&5
+echo "configure:7444: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7425 "configure"
+#line 7449 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -7444,7 +7468,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -7465,7 +7489,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:7469: checking for connect in -lsocket" >&5
+echo "configure:7493: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7473,7 +7497,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7477 "configure"
+#line 7501 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7484,7 +7508,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:7488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7508,12 +7532,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:7512: checking for remove" >&5
+echo "configure:7536: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7517 "configure"
+#line 7541 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -7536,7 +7560,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -7557,7 +7581,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:7561: checking for remove in -lposix" >&5
+echo "configure:7585: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7565,7 +7589,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7569 "configure"
+#line 7593 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7576,7 +7600,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:7580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7600,12 +7624,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:7604: checking for shmat" >&5
+echo "configure:7628: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7609 "configure"
+#line 7633 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -7628,7 +7652,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -7649,7 +7673,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:7653: checking for shmat in -lipc" >&5
+echo "configure:7677: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7657,7 +7681,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7661 "configure"
+#line 7685 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7668,7 +7692,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:7672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7701,7 +7725,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:7705: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:7729: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7709,7 +7733,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7713 "configure"
+#line 7737 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7720,7 +7744,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:7724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7753,7 +7777,7 @@ fi
        
        X11_LIBS=""
        echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:7757: checking for XOpenDisplay in -lX11" >&5
+echo "configure:7781: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7761,7 +7785,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 ${X_PRE_LIBS} $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7765 "configure"
+#line 7789 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7772,7 +7796,7 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:7776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7819,17 +7843,17 @@ then
        PWD_INCDIR=no
        ac_safe=`echo "pwd.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for pwd.h""... $ac_c" 1>&6
-echo "configure:7823: checking for pwd.h" >&5
+echo "configure:7847: checking for pwd.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7828 "configure"
+#line 7852 "configure"
 #include "confdefs.h"
 #include <pwd.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7833: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7857: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
index 1a5f0c4d2f43b647764f779aa068e94c5013202a..5a5e3cf6da53565231c8bbfa852c98cbfcd9fd22 100644 (file)
@@ -737,7 +737,7 @@ dnl Checks for library functions.
 AC_FUNC_MEMCMP
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS(memmove sigsetjmp sysconf)
+AC_CHECK_FUNCS(memmove sysconf)
 AC_CHECK_FUNCS(sigprocmask waitpid setsid fcvt)
 AC_CHECK_FUNCS(fpclass fp_class fp_class_d class)
 dnl We use our snprintf.c emulation if either snprintf() or vsnprintf()
@@ -856,6 +856,15 @@ AC_TRY_LINK([#include <math.h>],
        [AC_DEFINE(HAVE_FINITE) AC_MSG_RESULT(yes)],
        AC_MSG_RESULT(no))
 
+dnl Cannot use AC_CHECK_FUNC because sigsetjmp may be a macro
+dnl (especially on GNU libc)
+dnl See also comments in config.h.
+AC_MSG_CHECKING(for sigsetjmp)
+AC_TRY_LINK([#include <setjmp.h>],
+       [sigjmp_buf x; sigsetjmp(x, 1);],
+       [AC_DEFINE(HAVE_SIGSETJMP) AC_MSG_RESULT(yes)],
+       AC_MSG_RESULT(no))
+
 dnl Check to see if we have a working 64-bit integer type.
 dnl This breaks down into two steps:
 dnl (1) figure out if the compiler has a 64-bit int type with working
index ed8356c2937b1e4050863f626c0259808b3fdea4..806aae9675b313676b6a63014554c4caad86533f 100644 (file)
@@ -403,6 +403,17 @@ extern int  inet_aton(const char *cp, struct in_addr * addr);
 /* Set to 1 if you have sigsetjmp() */
 #undef HAVE_SIGSETJMP
 
+/*
+ * When there is no sigsetjmp, its functionality is provided by plain
+ * setjmp. Incidentally, nothing provides setjmp's functionality in
+ * that case.
+ */
+#ifndef HAVE_SIGSETJMP
+# define sigjmp_buf jmp_buf
+# define sigsetjmp(x,y)        setjmp(x)
+# define siglongjmp longjmp
+#endif
+
 /* Set to 1 if you have sysconf() */
 #undef HAVE_SYSCONF
 
index b2b4545a2ab0da1492241a1bed0e005c04ba9327..2de8fc8e7ec16125faa7053aee3784813de898c2 100644 (file)
@@ -33,12 +33,6 @@ typedef unsigned int slock_t;
 #ifdef HAVE_INT_TIMEZONE
 #undef HAVE_INT_TIMEZONE
 #endif
-
- /*
-  * currently undefined as I (teunis@computersupportcentre.com) have not
-  * checked this yet
-  */
-/* #define HAVE_SIGSETJMP 1 */
 #endif
 
 #if defined(__powerpc__)
index 2de9e5b06fd44a1083a2da7f0c862bd0da788535..283e517ccce18d726f88cbc183a90501d56a4500 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Id: tcopprot.h,v 1.24 2000/01/26 05:58:35 momjian Exp $
+ * $Id: tcopprot.h,v 1.25 2000/02/20 14:28:28 petere Exp $
  *
  * OLD COMMENTS
  *       This file was created so that other c files could get the two
 #include "executor/execdesc.h"
 #include "parser/parse_node.h"
 
-/*     Autoconf's test for HAVE_SIGSETJMP fails on Linux 2.0.x because the test
- *     explicitly disallows sigsetjmp being a #define, which is how it
- *     is declared in Linux. So, to avoid compiler warnings about
- *     sigsetjmp() being redefined, let's not redefine unless necessary.
- * - thomas 1997-12-27
- * Autoconf really ought to be brighter about macro-ized system functions...
- * and this code really ought to be in config.h ...
- */
-
-#if !defined(HAVE_SIGSETJMP) && !defined(sigsetjmp)
-#define sigjmp_buf jmp_buf
-#define sigsetjmp(x,y) setjmp(x)
-#define siglongjmp longjmp
-#endif
 extern DLLIMPORT sigjmp_buf Warn_restart;
 extern bool Warn_restart_ready;
 extern bool InError;