aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bin/psql/psql.c21
-rw-r--r--src/include/c.h4
-rw-r--r--src/include/libpq/pqcomm.h9
-rw-r--r--src/interfaces/libpq/libpq-fe.h8
-rw-r--r--src/interfaces/libpq/win32.mak22
5 files changed, 47 insertions, 17 deletions
diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c
index d9c3fd1e5ee..715fb50a2c9 100644
--- a/src/bin/psql/psql.c
+++ b/src/bin/psql/psql.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.156 1998/08/27 13:25:18 scrappy Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.157 1998/08/29 04:05:39 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -89,7 +89,8 @@ char *__progname = "psql";
#define PROMPT_READY '='
#define PROMPT_CONTINUE '-'
#define PROMPT_COMMENT '*'
-#define PROMPT_QUOTE '\''
+#define PROMPT_SINGLEQUOTE '\''
+#define PROMPT_DOUBLEQUOTE '"'
/* Backslash command handling:
* 0 - send currently constructed query to backend (i.e. we got a \g)
@@ -2310,7 +2311,7 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
/* We've reached the end of our command input. */
bool success;
- bool in_quote;
+ char in_quote; /* == 0 for no in_quote */
bool was_bslash; /* backslash */
int paren_level;
char *query_start;
@@ -2380,8 +2381,10 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
{
if (interactive && !pset->quiet)
{
- if (in_quote)
- pset->prompt[strlen(pset->prompt) - 3] = PROMPT_QUOTE;
+ if (in_quote && in_quote == PROMPT_SINGLEQUOTE)
+ pset->prompt[strlen(pset->prompt) - 3] = PROMPT_SINGLEQUOTE;
+ else if (in_quote && in_quote == PROMPT_DOUBLEQUOTE)
+ pset->prompt[strlen(pset->prompt) - 3] = PROMPT_DOUBLEQUOTE;
else if (xcomment != NULL)
pset->prompt[strlen(pset->prompt) - 3] = PROMPT_COMMENT;
else if (query[0] != '\0' && !querySent)
@@ -2500,7 +2503,7 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
was_bslash = true;
/* inside a quote? */
- if (in_quote && (line[i] != '\'' || was_bslash))
+ if (in_quote && (line[i] != in_quote || was_bslash))
/* do nothing */ ;
else if (xcomment != NULL) /* inside an extended
* comment? */
@@ -2548,8 +2551,10 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
line[i] = '\0'; /* remove comment */
break;
}
- else if (line[i] == '\'')
- in_quote ^= 1;
+ else if (in_quote && line[i] == in_quote)
+ in_quote = false;
+ else if (!in_quote && (line[i] == '\'' || line[i] == '"'))
+ in_quote = line[i];
/* semi-colon? then send query now */
else if (!paren_level && line[i] == ';')
{
diff --git a/src/include/c.h b/src/include/c.h
index 65eb4266aea..3d7c08ddd4f 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -7,7 +7,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: c.h,v 1.43 1998/08/25 21:04:41 scrappy Exp $
+ * $Id: c.h,v 1.44 1998/08/29 04:05:41 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -133,7 +133,9 @@ typedef char *Pointer;
* Example:
* extern const Version RomVersion;
*/
+#ifndef WIN32
#define const /* const */
+#endif
/*
* signed --
diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h
index a9bb120552d..e3b5a71b837 100644
--- a/src/include/libpq/pqcomm.h
+++ b/src/include/libpq/pqcomm.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: pqcomm.h,v 1.27 1998/08/22 04:24:18 momjian Exp $
+ * $Id: pqcomm.h,v 1.28 1998/08/29 04:05:43 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -15,20 +15,25 @@
#include <stdio.h>
#include <sys/types.h>
+#ifdef WIN32
+#include <winsock.h>
+#else
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
+#endif
#include "c.h"
-
/* Define a generic socket address type. */
typedef union SockAddr
{
struct sockaddr sa;
struct sockaddr_in in;
+#ifndef WIN32
struct sockaddr_un un;
+#endif
} SockAddr;
diff --git a/src/interfaces/libpq/libpq-fe.h b/src/interfaces/libpq/libpq-fe.h
index 4cd45fca6c3..0e2112c1595 100644
--- a/src/interfaces/libpq/libpq-fe.h
+++ b/src/interfaces/libpq/libpq-fe.h
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
- * $Id: libpq-fe.h,v 1.38 1998/08/17 03:50:40 scrappy Exp $
+ * $Id: libpq-fe.h,v 1.39 1998/08/29 04:05:45 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -21,9 +21,13 @@ extern "C"
#include <stdio.h>
/* these wouldn't need to be included if PGSockAddr weren't exported: */
+#ifdef WIN32
+#include <winsock.h>
+#else
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
+#endif
/* ----------------
* include stuff common to fe and be
* ----------------
@@ -141,7 +145,9 @@ extern "C"
{
struct sockaddr sa;
struct sockaddr_in in;
+#ifndef WIN32
struct sockaddr_un un;
+#endif
} PGSockAddr;
/* large-object-access data ... allocated only if large-object code is used.
diff --git a/src/interfaces/libpq/win32.mak b/src/interfaces/libpq/win32.mak
index 4c50caf5e4b..41d28189dcd 100644
--- a/src/interfaces/libpq/win32.mak
+++ b/src/interfaces/libpq/win32.mak
@@ -11,6 +11,7 @@ NULL=nul
!ENDIF
CPP=cl.exe
+RSC=rc.exe
OUTDIR=.\Release
INTDIR=.\Release
@@ -28,10 +29,14 @@ CLEAN :
-@erase "$(INTDIR)\fe-lobj.obj"
-@erase "$(INTDIR)\fe-misc.obj"
-@erase "$(INTDIR)\fe-print.obj"
- -@erase "$(OUTDIR)\libpqdll.obj"
- -@erase "$(INTDIR)\vc50.idb"
+ -@erase "$(OUTDIR)\libpqdll.obj"
-@erase "$(OUTDIR)\libpq.lib"
- -@erase "$(OUTDIR)\libpq.dll"
+ -@erase "$(OUTDIR)\libpq.dll"
+ -@erase "$(OUTDIR)\libpq.res"
+ -@erase "vc50.pch"
+ -@erase "$(OUTDIR)\libpq.pch"
+ -@erase "$(OUTDIR)\libpqdll.exp"
+ -@erase "$(OUTDIR)\libpqdll.lib"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
@@ -53,6 +58,8 @@ LIB32_OBJS= \
"$(INTDIR)\fe-misc.obj" \
"$(INTDIR)\fe-print.obj"
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
+
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib wsock32.lib\
@@ -61,7 +68,8 @@ LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
/implib:"$(OUTDIR)\libpqdll.lib" /def:libpqdll.def
LINK32_OBJS= \
"$(INTDIR)\libpqdll.obj" \
- "$(OUTDIR)\libpq.lib"
+ "$(OUTDIR)\libpq.lib" \
+ "$(OUTDIR)\libpq.res"
"$(OUTDIR)\libpq.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
@@ -69,7 +77,11 @@ LINK32_OBJS= \
$(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
<<
-"$(OUTDIR)\libpq.dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" "$(INTDIR)\libpqdll.obj"
+"$(INTDIR)\libpq.res" : "$(INTDIR)" libpq.rc
+ $(RSC) $(RSC_PROJ) libpq.rc
+
+
+"$(OUTDIR)\libpq.dll" : "$(OUTDIR)" "$(OUTDIR)\libpqdll.obj" "$(INTDIR)\libpqdll.obj" "$(INTDIR)\libpq.res"
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<