diff -rc src.orig/interfaces/libpq/fe-connect.c src/interfaces/libpq/fe-connect.c *** src.orig/interfaces/libpq/fe-connect.c Wed May 26 16:07:33 1999 --- src/interfaces/libpq/fe-connect.c Fri Jul 16 00:27:52 1999 *************** *** 815,820 **** --- 815,824 ---- env = getenv(envname); if (!env || *env == '\0') { + #ifdef WIN32 + sprintf(envbuf, "%s=%s", envname, MULTIBYTE); + putenv(envbuf); + #else rtn = PQexec(conn, "select getdatabaseencoding()"); if (rtn && PQresultStatus(rtn) == PGRES_TUPLES_OK) { *************** *** 832,837 **** --- 836,842 ---- sprintf(envbuf, "%s=%s", envname, pg_encoding_to_char(MULTIBYTE)); putenv(envbuf); } + #endif } #endif diff -rc src.orig/interfaces/libpq/win32.mak src/interfaces/libpq/win32.mak *** src.orig/interfaces/libpq/win32.mak Tue Jun 8 16:00:37 1999 --- src/interfaces/libpq/win32.mak Fri Jul 16 00:28:16 1999 *************** *** 37,42 **** --- 37,48 ---- -@erase "$(OUTDIR)\libpq.pch" -@erase "$(OUTDIR)\libpqdll.exp" -@erase "$(OUTDIR)\libpqdll.lib" + !IFDEF MULTIBYTE + -@erase "$(INTDIR)\common.obj" + -@erase "$(INTDIR)\wchar.obj" + -@erase "$(INTDIR)\conv.obj" + -@erase "$(INTDIR)\big5.obj" + !ENDIF "$(OUTDIR)" : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" *************** *** 67,73 **** "$(INTDIR)\fe-print.obj" !IFDEF MULTIBYTE ! LIB32_OBJS = $(LIB32_OBJS) $(INTDIR)\common.obj $(INTDIR)\wchar.obj $(INTDIR)\conv.obj !ENDIF RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res" --- 73,79 ---- "$(INTDIR)\fe-print.obj" !IFDEF MULTIBYTE ! LIB32_OBJS = $(LIB32_OBJS) "$(INTDIR)\common.obj" "$(INTDIR)\wchar.obj" "$(INTDIR)\conv.obj" "$(INTDIR)\big5.obj" !ENDIF RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res" *************** *** 103,110 **** --- 109,139 ---- $(CPP) @<< $(CPP_PROJ) ..\..\backend\lib\dllist.c << + + !IFDEF MULTIBYTE + "$(INTDIR)\common.obj" : ..\..\backend\utils\mb\common.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\common.c + << + "$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\wchar.c + << + + "$(INTDIR)\conv.obj" : ..\..\backend\utils\mb\conv.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\conv.c + << + + "$(INTDIR)\big5.obj" : ..\..\backend\utils\mb\big5.c + $(CPP) @<< + $(CPP_PROJ) /I "." ..\..\backend\utils\mb\big5.c + << + !ENDIF + + .c{$(CPP_OBJS)}.obj:: $(CPP) @<< $(CPP_PROJ) $< diff -rc src.orig/interfaces/libpgtcl/libpgtcl.rc src/interfaces/libpgtcl/libpgtcl.rc *** src.orig/interfaces/libpgtcl/libpgtcl.rc Fri Jul 16 00:36:02 1999 --- src/interfaces/libpgtcl/libpgtcl.rc Fri Jul 16 00:27:01 1999 *************** *** 0 **** --- 1,31 ---- + #include + + VS_VERSION_INFO VERSIONINFO + FILEVERSION 6,5,0,0 + PRODUCTVERSION 6,5,0,0 + FILEFLAGSMASK 0x3fL + FILEFLAGS 0 + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "PostgreSQL Access Library for Tcl/Tk\0" + VALUE "FileVersion", "6, 5, 0, 0\0" + VALUE "InternalName", "libpgtcl\0" + VALUE "LegalCopyright", "Copyright (C) 1999\0" + VALUE "LegalTrademarks", "\0" + VALUE "OriginalFilename", "libpgtcl.dll\0" + VALUE "ProductName", "PostgreSQL\0" + VALUE "ProductVersion", "6, 5, 0, 0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END + END diff -rc src.orig/interfaces/libpgtcl/libpgtcldll.def src/interfaces/libpgtcl/libpgtcldll.def *** src.orig/interfaces/libpgtcl/libpgtcldll.def Fri Jul 16 00:36:02 1999 --- src/interfaces/libpgtcl/libpgtcldll.def Fri Jul 16 00:27:24 1999 *************** *** 0 **** --- 1,5 ---- + LIBRARY LIBPGTCL + DESCRIPTION "Tcl Postgres Access Library" + EXPORTS + Pgtcl_Init @ 1 + Pgtcl_SafeInit @ 2 diff -rc src.orig/interfaces/libpgtcl/pgtclCmds.c src/interfaces/libpgtcl/pgtclCmds.c *** src.orig/interfaces/libpgtcl/pgtclCmds.c Wed May 26 16:07:30 1999 --- src/interfaces/libpgtcl/pgtclCmds.c Fri Jul 16 00:27:06 1999 *************** *** 1416,1421 **** --- 1416,1426 ---- int Pg_listen(ClientData cData, Tcl_Interp *interp, int argc, char *argv[]) { + #ifdef WIN32 + /* Pg_listen has not been implemented on Windows versoin. */ + Tcl_SetResult(interp, "Pg_listen has not been implemented on Windows versoin.", TCL_VOLATILE); + return TCL_ERROR; + #else char *origrelname; char *caserelname; char *callback = NULL; *************** *** 1579,1582 **** --- 1584,1588 ---- ckfree(caserelname); return TCL_OK; + #endif } diff -rc src.orig/interfaces/libpgtcl/pgtclId.c src/interfaces/libpgtcl/pgtclId.c *** src.orig/interfaces/libpgtcl/pgtclId.c Wed May 26 16:07:31 1999 --- src/interfaces/libpgtcl/pgtclId.c Fri Jul 16 00:27:10 1999 *************** *** 258,264 **** --- 258,266 ---- * Turn off the Tcl event source for this connection, and delete any * pending notify events. */ + #ifndef WIN32 PgStopNotifyEventSource(connid); + #endif /* Close the libpq connection too */ PQfinish(connid->conn); *************** *** 591,598 **** --- 593,602 ---- * notify event source to keep Tcl from trying to select() on the now- * closed socket descriptor. */ + #ifndef WIN32 if (PQsocket(connid->conn) < 0) PgStopNotifyEventSource(connid); + #endif } /* *************** *** 613,618 **** --- 617,624 ---- notifies->interp = NULL; } + #ifndef WIN32 + /* * Comparison routine for detecting events to be removed by Tcl_DeleteEvents. * NB: In (at least) Tcl versions 7.6 through 8.0.3, there is a serious *************** *** 727,729 **** --- 733,737 ---- /* Kill any queued Tcl events that reference this channel */ Tcl_DeleteEvents(NotifyEventDeleteProc, (ClientData) connid); } + + #endif diff -rc src.orig/interfaces/libpgtcl/win32.h src/interfaces/libpgtcl/win32.h *** src.orig/interfaces/libpgtcl/win32.h Fri Jul 16 00:37:45 1999 --- src/interfaces/libpgtcl/win32.h Fri Jul 16 00:27:11 1999 *************** *** 0 **** --- 1,35 ---- + #include + + /* + * strcasecmp() is not in Windows, stricmp is, though + */ + #define strcasecmp(a,b) stricmp(a,b) + + + + #define NO_UNISTD_H + #define SOCKET_SIZE_TYPE int + + /* + * Some compat functions + */ + #define open(a,b,c) _open(a,b,c) + #define read(a,b,c) _read(a,b,c) + #define write(a,b,c) _write(a,b,c) + + + /* + * crypt not available (yet) + */ + #define crypt(a,b) a + + + + /* + * Parts of config.h that you get with autoconf on other systems + */ + + #define DEF_PGPORT "5432" + #define BLCKSZ 8192 + #define MAXIMUM_ALIGNOF 4 + diff -rc src.orig/interfaces/libpgtcl/win32.mak src/interfaces/libpgtcl/win32.mak *** src.orig/interfaces/libpgtcl/win32.mak Fri Jul 16 00:37:45 1999 --- src/interfaces/libpgtcl/win32.mak Fri Jul 16 00:27:07 1999 *************** *** 0 **** --- 1,123 ---- + # Makefile for Microsoft Visual C++ 5.0 (or compat) + + # Will build a Win32 static library (non-debug) libpgtcl.lib + # and a Win32 dynamic library (non-debug) libpgtcl.dll with import library libpgtcldll.lib + + + TCL_CFLAGS=-I "C:\Program Files\Tcl\include" + TCL_LIBS="C:\Program Files\Tcl\lib\tcl80jp.lib" + + !IF "$(OS)" == "Windows_NT" + NULL= + !ELSE + NULL=nul + !ENDIF + + CPP=cl.exe + RSC=rc.exe + + OUTDIR=.\Release + INTDIR=.\Release + # Begin Custom Macros + OutDir=.\Release + # End Custom Macros + + ALL : "$(OUTDIR)\libpgtcl.lib" "$(OUTDIR)\libpgtcl.dll" + + CLEAN : + -@erase "$(INTDIR)\pgtcl.obj" + -@erase "$(INTDIR)\pgtclCmds.obj" + -@erase "$(INTDIR)\pgtclId.obj" + -@erase "$(OUTDIR)\libpgtcldll.obj" + -@erase "$(OUTDIR)\libpgtcl.lib" + -@erase "$(OUTDIR)\libpgtcl.dll" + -@erase "$(OUTDIR)\libpgtcl.res" + -@erase "*.pch" + -@erase "$(OUTDIR)\libpgtcl.pch" + -@erase "$(OUTDIR)\libpgtcldll.exp" + -@erase "$(OUTDIR)\libpgtcldll.lib" + + "$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + + CPP_PROJ=/nologo /ML /W3 /GX /O2 /I "..\..\include" /I "..\libpq" $(TCL_CFLAGS) /D "NDEBUG" /D\ + "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpgtcl.pch" /YX\ + /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP" + + !IFDEF MULTIBYTE + !IFNDEF MBFLAGS + MBFLAGS="-DMULTIBYTE=$(MULTIBYTE)" + !ENDIF + CPP_PROJ = $(CPP_PROJ) $(MBFLAGS) + !ENDIF + + CPP_OBJS=.\Release/ + CPP_SBRS=. + + LIB32=link.exe -lib + LIB32_FLAGS=/nologo /out:"$(OUTDIR)\libpgtcl.lib" + LIB32_OBJS= \ + "$(INTDIR)\pgtcl.obj" \ + "$(INTDIR)\pgtclCmds.obj" \ + "$(INTDIR)\pgtclId.obj" + + RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpgtcl.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\ + odbccp32.lib $(TCL_LIBS) "..\libpq\Release\libpqdll.lib" /nologo /subsystem:windows /dll /incremental:no\ + /pdb:"$(OUTDIR)\libpgtcldll.pdb" /machine:I386 /out:"$(OUTDIR)\libpgtcl.dll"\ + /implib:"$(OUTDIR)\libpgtcldll.lib" /def:libpgtcldll.def + LINK32_OBJS= \ + "$(INTDIR)\pgtcl.obj" \ + "$(INTDIR)\pgtclCmds.obj" \ + "$(INTDIR)\pgtclId.obj" \ + "$(OUTDIR)\libpgtcl.lib" \ + "$(OUTDIR)\libpgtcl.res" + + + "$(OUTDIR)\libpgtcl.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) + $(LIB32) @<< + $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) + << + + "$(INTDIR)\libpgtcl.res" : "$(INTDIR)" libpgtcl.rc + $(RSC) $(RSC_PROJ) libpgtcl.rc + + + "$(OUTDIR)\libpgtcl.dll" : "$(OUTDIR)" "$(OUTDIR)\pgtcl.obj" "$(OUTDIR)\pgtclCmds.obj" "$(OUTDIR)\pgtclId.obj" "$(INTDIR)\libpgtcl.lib" "$(INTDIR)\libpgtcl.res" + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) + << + + + .c{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< + << + + .cpp{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< + << + + .cxx{$(CPP_OBJS)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< + << + + .c{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< + << + + .cpp{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< + << + + .cxx{$(CPP_SBRS)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< + << *** src.orig/win32.mak Tue Oct 6 12:02:18 1998 --- src/win32.mak Fri Jul 16 00:30:08 1999 *************** *** 17,22 **** --- 17,24 ---- ALL: cd interfaces\libpq nmake /f win32.mak $(MAKEMACRO) + cd ..\libpgtcl + nmake /f win32.mak $(MAKEMACRO) cd ..\..\bin\psql nmake /f win32.mak $(MAKEMACRO) cd ..\..