aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/psql/command.c5
-rw-r--r--src/bin/psql/common.c10
-rw-r--r--src/bin/psql/help.c4
-rw-r--r--src/bin/psql/print.c5
-rw-r--r--src/bin/psql/startup.c5
-rw-r--r--src/bin/psql/win32.mak28
-rw-r--r--src/interfaces/libpq/fe-auth.c4
-rw-r--r--src/interfaces/libpq/fe-connect.c24
-rw-r--r--src/interfaces/libpq/fe-misc.c4
-rw-r--r--src/interfaces/libpq/fe-print.c4
-rw-r--r--src/interfaces/libpq/libpq.rc10
-rw-r--r--src/interfaces/libpq/libpqdll.def11
-rw-r--r--src/interfaces/libpq/pqexpbuffer.c8
-rw-r--r--src/win32.mak16
14 files changed, 121 insertions, 17 deletions
diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
index 6f1bc1b66d8..4ed0280c895 100644
--- a/src/bin/psql/command.c
+++ b/src/bin/psql/command.c
@@ -28,6 +28,7 @@
#include "variables.h"
#ifdef WIN32
+#include "../../interfaces/libpq/win32.h"
#define popen(x,y) _popen(x,y)
#define pclose(x) _pclose(x)
#endif
@@ -849,7 +850,11 @@ unescape(const char *source, int encoding)
unsigned int len;
char *copy;
const char *value;
+#ifndef WIN32
void *new;
+#else
+ char *new;
+#endif
len = strcspn(p + 2, "}");
copy = xstrdup(p + 2);
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c
index 8133faa467a..b1241bd53d8 100644
--- a/src/bin/psql/common.c
+++ b/src/bin/psql/common.c
@@ -111,10 +111,12 @@ setQFout(const char *fname)
}
/* Direct signals */
+#ifndef WIN32
if (pset.queryFoutPipe)
pqsignal(SIGPIPE, SIG_IGN);
else
pqsignal(SIGPIPE, SIG_DFL);
+#endif
return status;
}
@@ -252,11 +254,15 @@ 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
if (PQstatus(pset.db) == CONNECTION_BAD)
{
@@ -345,11 +351,15 @@ 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
if (results == NULL)
{
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index 47fc0d8fc51..18f41e84fc5 100644
--- a/src/bin/psql/help.c
+++ b/src/bin/psql/help.c
@@ -176,7 +176,9 @@ slashUsage(void)
(fout = popen(pagerenv, "w")))
{
usePipe = true;
+#ifndef WIN32
pqsignal(SIGPIPE, SIG_IGN);
+#endif
}
else
fout = stdout;
@@ -220,7 +222,9 @@ slashUsage(void)
if (usePipe)
{
pclose(fout);
+#ifndef WIN32
pqsignal(SIGPIPE, SIG_DFL);
+#endif
}
}
diff --git a/src/bin/psql/print.c b/src/bin/psql/print.c
index 156cdf6c653..4676d4b506e 100644
--- a/src/bin/psql/print.c
+++ b/src/bin/psql/print.c
@@ -922,7 +922,9 @@ printTable(const char *title,
if (pager)
{
output = pager;
+#ifndef WIN32
pqsignal(SIGPIPE, SIG_IGN);
+#endif
}
else
output = fout;
@@ -963,7 +965,10 @@ printTable(const char *title,
if (pager)
{
pclose(pager);
+#ifndef WIN32
pqsignal(SIGPIPE, SIG_DFL);
+#endif
+
}
}
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 2b2a1db3d4b..c1e9fa02190 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -10,7 +10,7 @@
#ifdef WIN32
#include <io.h>
-#include <window.h>
+#include <windows.h>
#else
#include <unistd.h>
#endif
@@ -223,7 +223,8 @@ main(int argc, char **argv)
#ifdef WIN32
/* getopt is not in the standard includes on Win32 */
int getopt(int, char *const[], const char *);
-
+/* And it requires progname to be set */
+char *__progname = "psql";
#endif
static void
diff --git a/src/bin/psql/win32.mak b/src/bin/psql/win32.mak
index 0b0228f3f62..0365a003116 100644
--- a/src/bin/psql/win32.mak
+++ b/src/bin/psql/win32.mak
@@ -17,8 +17,20 @@ OutDir=.\Release
ALL : "$(OUTDIR)\psql.exe"
CLEAN :
- -@erase "$(INTDIR)\psql.obj"
+ -@erase "$(INTDIR)\command.obj"
+ -@erase "$(INTDIR)\common.obj"
+ -@erase "$(INTDIR)\help.obj"
+ -@erase "$(INTDIR)\input.obj"
-@erase "$(INTDIR)\stringutils.obj"
+ -@erase "$(INTDIR)\mainloop.obj"
+ -@erase "$(INTDIR)\copy.obj"
+ -@erase "$(INTDIR)\startup.obj"
+ -@erase "$(INTDIR)\prompt.obj"
+ -@erase "$(INTDIR)\variables.obj"
+ -@erase "$(INTDIR)\large_obj.obj"
+ -@erase "$(INTDIR)\print.obj"
+ -@erase "$(INTDIR)\describe.obj"
+ -@erase "$(INTDIR)\tab-complete.obj"
-@erase "$(INTDIR)\getopt.obj"
-@erase "$(INTDIR)\vc50.idb"
-@erase "$(OUTDIR)\psql.exe"
@@ -46,8 +58,20 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
odbccp32.lib wsock32.lib /nologo /subsystem:console /incremental:no\
/pdb:"$(OUTDIR)\psql.pdb" /machine:I386 /out:"$(OUTDIR)\psql.exe"
LINK32_OBJS= \
- "$(INTDIR)\psql.obj" \
+ "$(INTDIR)\command.obj" \
+ "$(INTDIR)\common.obj" \
+ "$(INTDIR)\help.obj" \
+ "$(INTDIR)\input.obj" \
"$(INTDIR)\stringutils.obj" \
+ "$(INTDIR)\mainloop.obj" \
+ "$(INTDIR)\copy.obj" \
+ "$(INTDIR)\startup.obj" \
+ "$(INTDIR)\prompt.obj" \
+ "$(INTDIR)\variables.obj" \
+ "$(INTDIR)\large_obj.obj" \
+ "$(INTDIR)\print.obj" \
+ "$(INTDIR)\describe.obj" \
+ "$(INTDIR)\tab-complete.obj" \
"$(INTDIR)\getopt.obj" \
"..\..\interfaces\libpq\Release\libpqdll.lib"
diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c
index fe92bd6964a..53d29a59d31 100644
--- a/src/interfaces/libpq/fe-auth.c
+++ b/src/interfaces/libpq/fe-auth.c
@@ -9,7 +9,7 @@
* exceed INITIAL_EXPBUFFER_SIZE (currently 256 bytes).
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.34 1999/10/25 03:08:00 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-auth.c,v 1.35 2000/01/18 19:05:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -27,7 +27,9 @@
*
*/
+#ifndef WIN32
#include "postgres.h"
+#endif
#include "libpq-fe.h"
#include "libpq-int.h"
#include "fe-auth.h"
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 818b85f0eae..a444e5bd7a8 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -7,13 +7,12 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.112 2000/01/18 06:09:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.113 2000/01/18 19:05:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
#include <sys/types.h>
-#include <sys/socket.h>
#include <fcntl.h>
#include <errno.h>
#include <ctype.h>
@@ -26,6 +25,7 @@
#ifdef WIN32
#include "win32.h"
#else
+#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <netinet/tcp.h>
@@ -43,6 +43,16 @@
#include "mb/pg_wchar.h"
#endif
+#ifdef WIN32
+static int inet_aton(const char *cp, struct in_addr *inp) {
+ unsigned long a = inet_addr(cp);
+ if (a == -1)
+ return 0;
+ inp->s_addr = a;
+ return 1;
+}
+#endif
+
/* ----------
* pg_setenv_state
* A struct used when polling a setenv request. This is referred to externally
@@ -842,7 +852,11 @@ connectDBStart(PGconn *conn)
*/
if (connect(conn->sock, &conn->raddr.sa, conn->raddr_len) < 0)
{
+#ifndef WIN32
if (errno == EINPROGRESS)
+#else
+ if (WSAGetLastError() == WSAEINPROGRESS)
+#endif
{
/* This is fine - we're in non-blocking mode, and the
* connection is in progress. */
@@ -1036,8 +1050,12 @@ PQconnectPoll(PGconn *conn)
case CONNECTION_STARTED:
{
SOCKET_SIZE_TYPE laddrlen;
+#ifndef WIN32
int optval;
- int optlen = sizeof(int);
+#else
+ char optval;
+#endif
+ int optlen = sizeof(optval);
/* Write ready, since we've made it here, so the connection
* has been made. */
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index a936e937427..b87ab4df98b 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -24,12 +24,11 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.34 2000/01/18 06:09:24 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-misc.c,v 1.35 2000/01/18 19:05:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
-#include <sys/time.h>
#include <errno.h>
#include <signal.h>
#include <time.h>
@@ -43,6 +42,7 @@
#include "win32.h"
#else
#include <unistd.h>
+#include <sys/time.h>
#endif
#ifdef HAVE_SYS_SELECT_H
diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c
index d6f952d32bd..7a73a8669b8 100644
--- a/src/interfaces/libpq/fe-print.c
+++ b/src/interfaces/libpq/fe-print.c
@@ -9,7 +9,7 @@
* didn't really belong there.
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.29 2000/01/15 05:37:21 ishii Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-print.c,v 1.30 2000/01/18 19:05:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -30,8 +30,10 @@
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#else
+#ifndef WIN32
#include <sys/termios.h>
#endif
+#endif
#ifdef MULTIBYTE
#include "mb/pg_wchar.h"
diff --git a/src/interfaces/libpq/libpq.rc b/src/interfaces/libpq/libpq.rc
index 9bf68cb19a9..5a6ada372ad 100644
--- a/src/interfaces/libpq/libpq.rc
+++ b/src/interfaces/libpq/libpq.rc
@@ -1,8 +1,8 @@
#include <winver.h>
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,6,0,0
- PRODUCTVERSION 6,6,0,0
+ FILEVERSION 7,0,0,0
+ PRODUCTVERSION 7,0,0,0
FILEFLAGSMASK 0x3fL
FILEFLAGS 0
FILEOS VOS__WINDOWS32
@@ -15,13 +15,13 @@ BEGIN
BEGIN
VALUE "CompanyName", "\0"
VALUE "FileDescription", "PostgreSQL Access Library\0"
- VALUE "FileVersion", "6, 6, 0, 0\0"
+ VALUE "FileVersion", "7, 0, 0, 0\0"
VALUE "InternalName", "libpq\0"
- VALUE "LegalCopyright", "Copyright (C) 1999\0"
+ VALUE "LegalCopyright", "Copyright (C) 2000\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "libpq.dll\0"
VALUE "ProductName", "PostgreSQL\0"
- VALUE "ProductVersion", "6, 6, 0, 0\0"
+ VALUE "ProductVersion", "7, 0, 0, 0\0"
END
END
BLOCK "VarFileInfo"
diff --git a/src/interfaces/libpq/libpqdll.def b/src/interfaces/libpq/libpqdll.def
index d83bdfafd48..dc33dc0ee90 100644
--- a/src/interfaces/libpq/libpqdll.def
+++ b/src/interfaces/libpq/libpqdll.def
@@ -67,3 +67,14 @@ EXPORTS
PQmblen @ 64
PQresultErrorMessage @ 65
PQresStatus @ 66
+ termPQExpBuffer @ 67
+ appendPQExpBufferChar @ 68
+ initPQExpBuffer @ 69
+ resetPQExpBuffer @ 70
+ PQoidValue @ 71
+ PQclientencoding @ 72
+ PQenv2encoding @ 73
+ appendBinaryPQExpBuffer @ 74
+ appendPQExpBufferStr @ 75
+ destroyPQExpBuffer @ 76
+ createPQExpBuffer @ 77
diff --git a/src/interfaces/libpq/pqexpbuffer.c b/src/interfaces/libpq/pqexpbuffer.c
index bedf456b3ce..6850a80c5b7 100644
--- a/src/interfaces/libpq/pqexpbuffer.c
+++ b/src/interfaces/libpq/pqexpbuffer.c
@@ -16,7 +16,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/pqexpbuffer.c,v 1.2 2000/01/17 02:59:46 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/pqexpbuffer.c,v 1.3 2000/01/18 19:05:31 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -24,6 +24,12 @@
#include "postgres.h"
#include "pqexpbuffer.h"
+#ifdef WIN32
+#include <stdarg.h>
+#include <stdio.h>
+#include "win32.h"
+#endif
+
/*
* createPQExpBuffer
*
diff --git a/src/win32.mak b/src/win32.mak
index a7264acf543..86d9ee8216e 100644
--- a/src/win32.mak
+++ b/src/win32.mak
@@ -15,9 +15,25 @@ MAKEMACRO = "MULTIBYTE=$(MULTIBYTE)"
!ENDIF
ALL:
+ cd include
+ if not exist config.h copy config.h.win32 config.h
+ cd ..
cd interfaces\libpq
nmake /f win32.mak $(MAKEMACRO)
cd ..\..\bin\psql
nmake /f win32.mak $(MAKEMACRO)
cd ..\..
echo All Win32 parts have been built!
+
+CLEAN:
+ cd interfaces\libpq
+ nmake /f win32.mak CLEAN
+ cd ..\..\bin\psql
+ nmake /f win32.mak CLEAN
+ cd ..\..
+ echo All Win32 parts have been cleaned!
+
+DISTCLEAN: CLEAN
+ cd include
+ del config.h
+ cd .. \ No newline at end of file