Add multibyte support.

Provide an extenisible scheme of encoding conversion.
	As the first step, SJIS and BIG5 are supported.
	From now on multibyte people would be happy to use
	this psqlodbc driver.

Eiji Tokuya e-tokuya@mail.sankyo-unyu.co.jp
This commit is contained in:
Hiroshi Inoue 2001-03-16 01:17:23 +00:00
parent 25f03eb30c
commit 9242e6c038
7 changed files with 266 additions and 18 deletions

View File

@ -12,6 +12,11 @@
* Comments: See "notice.txt" for copyright and license information. * Comments: See "notice.txt" for copyright and license information.
* *
*/ */
/* Multibyte support Eiji Tokuya 2001-03-15 */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "environ.h" #include "environ.h"
#include "connection.h" #include "connection.h"
@ -20,6 +25,11 @@
#include "qresult.h" #include "qresult.h"
#include "lobj.h" #include "lobj.h"
#include "dlg_specific.h" #include "dlg_specific.h"
#ifdef MULTIBYTE
#include "multibyte.h"
#endif
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -496,9 +506,18 @@ static char *func="CC_connect";
globals.text_as_longvarchar, globals.text_as_longvarchar,
globals.unknowns_as_longvarchar, globals.unknowns_as_longvarchar,
globals.bools_as_char); globals.bools_as_char);
#ifdef MULTIBYTE
check_client_encoding(globals.conn_settings);
qlog(" extra_systable_prefixes='%s', conn_settings='%s' conn_encoding='%s'\n",
globals.extra_systable_prefixes,
globals.conn_settings,
check_client_encoding(globals.conn_settings));
#else
qlog(" extra_systable_prefixes='%s', conn_settings='%s'\n", qlog(" extra_systable_prefixes='%s', conn_settings='%s'\n",
globals.extra_systable_prefixes, globals.extra_systable_prefixes,
globals.conn_settings); globals.conn_settings);
#endif
if (self->status != CONN_NOT_CONNECTED) { if (self->status != CONN_NOT_CONNECTED) {
self->errormsg = "Already connected."; self->errormsg = "Already connected.";

View File

@ -15,6 +15,7 @@
* Comments: See "notice.txt" for copyright and license information. * Comments: See "notice.txt" for copyright and license information.
* *
*/ */
/* Multibyte support Eiji Tokuya 2001-03-15 */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -26,6 +27,10 @@
#include "psqlodbc.h" #include "psqlodbc.h"
#ifdef MULTIBYTE
#include "multibyte.h"
#endif
#ifndef WIN32 #ifndef WIN32
#include "iodbc.h" #include "iodbc.h"
#include "isql.h" #include "isql.h"
@ -690,6 +695,9 @@ int lobj_fd, retval;
param_number = -1; param_number = -1;
oldstmtlen = strlen(old_statement); oldstmtlen = strlen(old_statement);
#ifdef MULTIBYTE
multibyte_init();
#endif
for (opos = 0; opos < oldstmtlen; opos++) { for (opos = 0; opos < oldstmtlen; opos++) {
@ -700,10 +708,18 @@ int lobj_fd, retval;
} }
/* Handle literals (date, time, timestamp) and ODBC scalar functions */ /* Handle literals (date, time, timestamp) and ODBC scalar functions */
#ifdef MULTIBYTE
else if (multibyte_char_check(old_statement[opos]) == 0 && old_statement[opos] == '{') {
#else
else if (old_statement[opos] == '{') { else if (old_statement[opos] == '{') {
#endif
char *esc; char *esc;
char *begin = &old_statement[opos + 1]; char *begin = &old_statement[opos + 1];
#ifdef MULTIBYTE
char *end = multibyte_strchr(begin, '}');
#else
char *end = strchr(begin, '}'); char *end = strchr(begin, '}');
#endif
if ( ! end) if ( ! end)
continue; continue;
@ -1334,11 +1350,18 @@ char *p;
max = strlen(si); max = strlen(si);
else else
max = used; max = used;
#ifdef MULTIBYTE
multibyte_init();
#endif
for (i = 0; i < max; i++) { for (i = 0; i < max; i++) {
if (si[i] == '\r' && i+1 < strlen(si) && si[i+1] == '\n') if (si[i] == '\r' && i+1 < strlen(si) && si[i+1] == '\n')
continue; continue;
#ifdef MULTIBYTE
else if (multibyte_char_check(si[i]) == 0 && (si[i] == '\'' || si[i] == '\\'))
#else
else if (si[i] == '\'' || si[i] == '\\') else if (si[i] == '\'' || si[i] == '\\')
#endif
p[out++] = '\\'; p[out++] = '\\';
p[out++] = si[i]; p[out++] = si[i];

View File

@ -15,6 +15,7 @@
* Comments: See "notice.txt" for copyright and license information. * Comments: See "notice.txt" for copyright and license information.
* *
*/ */
/* Multibyte support Eiji Tokuya 2001-03-15 */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -34,6 +35,10 @@
#include "dlg_specific.h" #include "dlg_specific.h"
#include "convert.h" #include "convert.h"
#ifdef MULTIBYTE
#include "multibyte.h"
#endif
#ifndef BOOL #ifndef BOOL
#define BOOL int #define BOOL int
#endif #endif
@ -507,8 +512,17 @@ char encoded_conn_settings[LARGE_REGISTRY_LEN];
ci->show_oid_column, ci->show_oid_column,
ci->fake_oid_index, ci->fake_oid_index,
ci->show_system_tables); ci->show_system_tables);
#ifdef MULTIBYTE
check_client_encoding(ci->conn_settings);
qlog(" conn_settings='%s',conn_encoding='%s'\n",
ci->conn_settings,
check_client_encoding(ci->conn_settings));
#else
qlog(" conn_settings='%s'\n", qlog(" conn_settings='%s'\n",
ci->conn_settings); ci->conn_settings);
#endif
qlog(" translation_dll='%s',translation_option='%s'\n", qlog(" translation_dll='%s',translation_option='%s'\n",
ci->translation_dll, ci->translation_dll,
ci->translation_option); ci->translation_option);

View File

@ -17,6 +17,11 @@
* Comments: See "notice.txt" for copyright and license information. * Comments: See "notice.txt" for copyright and license information.
* *
*/ */
/* Multibyte support Eiji Tokuya 2001-03-15 */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
@ -27,6 +32,10 @@
#include "qresult.h" #include "qresult.h"
#include "pgtypes.h" #include "pgtypes.h"
#ifdef MULTIBYTE
#include "multibyte.h"
#endif
#ifndef WIN32 #ifndef WIN32
#ifndef HAVE_STRICMP #ifndef HAVE_STRICMP
#define stricmp(s1,s2) strcasecmp(s1,s2) #define stricmp(s1,s2) strcasecmp(s1,s2)
@ -88,7 +97,11 @@ char qc, in_escape = FALSE;
if (s[i] == qc && ! in_escape) { if (s[i] == qc && ! in_escape) {
break; break;
} }
#ifdef MULTIBYTE
if (multibyte_char_check(s[i]) == 0 && s[i] == '\\' && ! in_escape) {
#else
if (s[i] == '\\' && ! in_escape) { if (s[i] == '\\' && ! in_escape) {
#endif
in_escape = TRUE; in_escape = TRUE;
} }
else { else {

View File

@ -6,7 +6,7 @@
* *
* Comments: See "notice.txt" for copyright and license information. * Comments: See "notice.txt" for copyright and license information.
* *
* $Id: psqlodbc.h,v 1.38 2001/02/15 05:32:00 inoue Exp $ * $Id: psqlodbc.h,v 1.39 2001/03/16 01:17:23 inoue Exp $
*/ */
#ifndef __PSQLODBC_H__ #ifndef __PSQLODBC_H__
@ -41,7 +41,7 @@ typedef UInt4 Oid;
#define DRIVERNAME "PostgreSQL ODBC" #define DRIVERNAME "PostgreSQL ODBC"
#define DBMS_NAME "PostgreSQL" #define DBMS_NAME "PostgreSQL"
#define POSTGRESDRIVERVERSION "07.01.0003" #define POSTGRESDRIVERVERSION "07.01.0004"
#ifdef WIN32 #ifdef WIN32
#define DRIVER_FILE_NAME "PSQLODBC.DLL" #define DRIVER_FILE_NAME "PSQLODBC.DLL"
@ -134,6 +134,7 @@ typedef struct GlobalValues_
char conn_settings[LARGE_REGISTRY_LEN]; char conn_settings[LARGE_REGISTRY_LEN];
char protocol[SMALL_REGISTRY_LEN]; char protocol[SMALL_REGISTRY_LEN];
FILE* mylogFP; FILE* mylogFP;
FILE* qlogFP; FILE* qlogFP;
} GLOBAL_VALUES; } GLOBAL_VALUES;

View File

@ -52,6 +52,118 @@ END
// Dialog // Dialog
// //
#ifdef MULTIBYTE
DLG_CONFIG DIALOG DISCARDABLE 65, 43, 299, 113
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
CAPTION "PostgreSQL Driver Setup"
FONT 10, "Terminal"
BEGIN
RTEXT "&Data Source:",IDC_DSNAMETEXT,3,9,49,8,NOT WS_GROUP
EDITTEXT IDC_DSNAME,59,9,72,12,ES_AUTOHSCROLL | WS_GROUP
RTEXT "Des&cription:",IDC_DESCTEXT,135,10,49,8,NOT WS_GROUP
EDITTEXT IDC_DESC,185,10,110,25,ES_AUTOHSCROLL
RTEXT "Data&base:",IDC_STATIC,15,24,37,8,NOT WS_GROUP
EDITTEXT IDC_DATABASE,59,24,72,12,ES_AUTOHSCROLL
RTEXT "&Server:",IDC_STATIC,23,38,29,8,NOT WS_GROUP
EDITTEXT IDC_SERVER,59,38,72,12,ES_AUTOHSCROLL
RTEXT "&Port:",IDC_STATIC,161,38,21,8
EDITTEXT IDC_PORT,185,38,37,12,ES_AUTOHSCROLL
RTEXT "&User Name:",IDC_STATIC,11,53,41,8
EDITTEXT IDC_USER,59,53,72,12,ES_AUTOHSCROLL
RTEXT "Pass&word:",IDC_STATIC,145,53,37,8
EDITTEXT IDC_PASSWORD,185,53,72,12,ES_PASSWORD | ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,27,88,40,14,WS_GROUP
PUSHBUTTON "Cancel",IDCANCEL,81,88,40,14
GROUPBOX "Options (Advanced):",IDC_OPTIONS,141,72,140,35,
BS_CENTER
PUSHBUTTON "Driver",IDC_DRIVER,149,89,50,14
PUSHBUTTON "DataSource",IDC_DATASOURCE,221,88,50,14
CTEXT "Please supply any missing information needed to connect.",
DRV_MSG_LABEL,25,4,238,10
END
DLG_OPTIONS_DRV DIALOG DISCARDABLE 0, 0, 306, 213
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Advanced Options (Driver)"
FONT 10, "Terminal"
BEGIN
CONTROL "Disable Genetic &Optimizer",DRV_OPTIMIZER,"Button",
BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,13,11,116,10
CONTROL "Comm&Log (C:\\psqlodbc.log)",DRV_COMMLOG,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,164,11,120,10
CONTROL "&KSQO (Keyset Query Optimization)",DRV_KSQO,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,13,23,144,10
CONTROL "&ReadOnly (Default)",DRV_READONLY,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,164,24,88,10
CONTROL "Recognize Unique &Indexes",DRV_UNIQUEINDEX,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,13,35,112,10
CONTROL "P&arse Statements",DRV_PARSE,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,164,37,80,10
CONTROL "&Use Declare/Fetch",DRV_USEDECLAREFETCH,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,13,47,84,10
CONTROL "Cancel as FreeStmt (Exp)",DRV_CANCELASFREESTMT,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,164,50,112,10
GROUPBOX "Unknown Sizes",IDC_STATIC,13,63,175,24
CONTROL "Maximum",DRV_UNKNOWN_MAX,"Button",BS_AUTORADIOBUTTON |
WS_GROUP | WS_TABSTOP,21,71,44,10
CONTROL "Don't Know",DRV_UNKNOWN_DONTKNOW,"Button",
BS_AUTORADIOBUTTON | WS_TABSTOP,72,71,56,10
CONTROL "Longest",DRV_UNKNOWN_LONGEST,"Button",
BS_AUTORADIOBUTTON | WS_TABSTOP,135,71,44,10
GROUPBOX "Data Type Options",IDC_STATIC,13,91,282,23
CONTROL "Text as LongVarChar",DRV_TEXT_LONGVARCHAR,"Button",
BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,15,102,92,10
CONTROL "Unknowns as LongVarChar",DRV_UNKNOWNS_LONGVARCHAR,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,112,102,108,10
CONTROL "Bools as Char",DRV_BOOLS_CHAR,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,225,102,68,10
LTEXT "&Cache Size:",IDC_STATIC,15,120,45,8
EDITTEXT DRV_CACHE_SIZE,61,116,35,12,ES_AUTOHSCROLL
LTEXT "Max &Varchar:",IDC_STATIC,99,120,49,8
EDITTEXT DRV_VARCHAR_SIZE,149,116,35,12,ES_AUTOHSCROLL
LTEXT "Max Lon&gVarChar:",IDC_STATIC,192,120,65,8
EDITTEXT DRV_LONGVARCHAR_SIZE,259,116,35,12,ES_AUTOHSCROLL
LTEXT "SysTable &Prefixes:",IDC_STATIC,23,131,36,20
EDITTEXT DRV_EXTRASYSTABLEPREFIXES,61,137,75,12,ES_AUTOHSCROLL
LTEXT "Connect &Settings:",IDC_STATIC,22,152,35,20
EDITTEXT DRV_CONNSETTINGS,61,153,225,25,ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
DEFPUSHBUTTON "OK",IDOK,59,188,50,14,WS_GROUP
PUSHBUTTON "Cancel",IDCANCEL,129,188,50,14
PUSHBUTTON "Defaults",IDDEFAULTS,199,188,50,15
END
DLG_OPTIONS_DS DIALOG DISCARDABLE 0, 0, 267, 161
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Advanced Options (DataSource)"
FONT 10, "Terminal"
BEGIN
CONTROL "&ReadOnly",DS_READONLY,"Button",BS_AUTOCHECKBOX |
WS_GROUP | WS_TABSTOP,45,13,48,10
CONTROL "Row &Versioning",DS_ROWVERSIONING,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,149,13,72,10
CONTROL "Show System &Tables",DS_SHOWSYSTEMTABLES,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,45,28,88,10
GROUPBOX "Protocol",IDC_STATIC,43,44,180,25
CONTROL "7.X,6.4+",DS_PG64,"Button",BS_AUTORADIOBUTTON |
WS_GROUP,53,54,47,10
CONTROL "6.3",DS_PG63,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,
131,54,26,10
CONTROL "6.2",DS_PG62,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,
187,54,26,10
GROUPBOX "OID Options",IDC_STATIC,43,74,180,25
CONTROL "Show &Column",DS_SHOWOIDCOLUMN,"Button",BS_AUTOCHECKBOX |
WS_GROUP | WS_TABSTOP,53,85,59,10
CONTROL "Fake &Index",DS_FAKEOIDINDEX,"Button",BS_AUTOCHECKBOX |
WS_GROUP | WS_TABSTOP,161,85,55,10
LTEXT "Connect &Settings:",IDC_STATIC,10,105,35,25
EDITTEXT DS_CONNSETTINGS,50,105,200,20,ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
DEFPUSHBUTTON "OK",IDOK,71,135,50,14,WS_GROUP
PUSHBUTTON "Cancel",IDCANCEL,146,135,50,14
END
#else
DLG_CONFIG DIALOG DISCARDABLE 65, 43, 292, 116 DLG_CONFIG DIALOG DISCARDABLE 65, 43, 292, 116
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU WS_SYSMENU
@ -162,7 +274,7 @@ BEGIN
DEFPUSHBUTTON "OK",IDOK,71,135,50,14,WS_GROUP DEFPUSHBUTTON "OK",IDOK,71,135,50,14,WS_GROUP
PUSHBUTTON "Cancel",IDCANCEL,146,135,50,14 PUSHBUTTON "Cancel",IDCANCEL,146,135,50,14
END END
#endif
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
@ -170,6 +282,31 @@ END
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifdef MULTIBYTE
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
DLG_CONFIG, DIALOG
BEGIN
BOTTOMMARGIN, 112
END
DLG_OPTIONS_DRV, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 301
TOPMARGIN, 5
BOTTOMMARGIN, 206
END
DLG_OPTIONS_DS, DIALOG
BEGIN
LEFTMARGIN, 5
RIGHTMARGIN, 260
TOPMARGIN, 7
BOTTOMMARGIN, 154
END
END
#else
GUIDELINES DESIGNINFO DISCARDABLE GUIDELINES DESIGNINFO DISCARDABLE
BEGIN BEGIN
DLG_CONFIG, DIALOG DLG_CONFIG, DIALOG
@ -194,6 +331,7 @@ BEGIN
BOTTOMMARGIN, 154 BOTTOMMARGIN, 154
END END
END END
#endif // MULTIBYTE
#endif // APSTUDIO_INVOKED #endif // APSTUDIO_INVOKED
@ -204,8 +342,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,1,0,3 FILEVERSION 7,1,0,4
PRODUCTVERSION 7,1,0,3 PRODUCTVERSION 7,1,0,4
FILEFLAGSMASK 0x3L FILEFLAGSMASK 0x3L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -221,16 +359,20 @@ BEGIN
BLOCK "040904e4" BLOCK "040904e4"
BEGIN BEGIN
VALUE "Comments", "PostgreSQL ODBC driver\0" VALUE "Comments", "PostgreSQL ODBC driver\0"
#ifdef MULTIBYTE
VALUE "CompanyName", "Insight Distribution Systems & Sankyo Unyu Service (MULTIBYTE support)\0"
#else
VALUE "CompanyName", "Insight Distribution Systems\0" VALUE "CompanyName", "Insight Distribution Systems\0"
#endif
VALUE "FileDescription", "PostgreSQL Driver\0" VALUE "FileDescription", "PostgreSQL Driver\0"
VALUE "FileVersion", " 07.01.0003\0" VALUE "FileVersion", " 07.01.0004\0"
VALUE "InternalName", "psqlodbc\0" VALUE "InternalName", "psqlodbc\0"
VALUE "LegalCopyright", "\0" VALUE "LegalCopyright", "\0"
VALUE "LegalTrademarks", "ODBC(TM) is a trademark of Microsoft Corporation. Microsoft® is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation.\0" VALUE "LegalTrademarks", "ODBC(TM) is a trademark of Microsoft Corporation. Microsoft® is a registered trademark of Microsoft Corporation. Windows(TM) is a trademark of Microsoft Corporation.\0"
VALUE "OriginalFilename", "psqlodbc.dll\0" VALUE "OriginalFilename", "psqlodbc.dll\0"
VALUE "PrivateBuild", "\0" VALUE "PrivateBuild", "\0"
VALUE "ProductName", "Microsoft Open Database Connectivity\0" VALUE "ProductName", "Microsoft Open Database Connectivity\0"
VALUE "ProductVersion", " 07.01.0003\0" VALUE "ProductVersion", " 07.01.0004\0"
VALUE "SpecialBuild", "\0" VALUE "SpecialBuild", "\0"
END END
END END

View File

@ -18,12 +18,12 @@ CFG=Release
!MESSAGE !MESSAGE
!ENDIF !ENDIF
!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug" !IF "$(CFG)" != "Release" && "$(CFG)" != "Debug" && "$(CFG)" != "MultibyteRelease" && "$(CFG)" != "MultibyteDebug"
!MESSAGE Invalid configuration "$(CFG)" specified. !MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE !MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE !MESSAGE
!MESSAGE NMAKE /f win32.mak CFG=Debug !MESSAGE NMAKE /f win32.mak CFG=[Release | Debug | MultibyteRelease | MultiByteDebug]
!MESSAGE !MESSAGE
!MESSAGE Possible choices for configuration are: !MESSAGE Possible choices for configuration are:
!MESSAGE !MESSAGE
@ -39,7 +39,7 @@ NULL=
NULL=nul NULL=nul
!ENDIF !ENDIF
!IF "$(CFG)" == "Release" !IF "$(CFG)" == "Release" || "$(CFG)" == "MultibyteRelease"
OUTDIR=.\Release OUTDIR=.\Release
INTDIR=.\Release INTDIR=.\Release
@ -63,6 +63,9 @@ CLEAN :
-@erase "$(INTDIR)\info.obj" -@erase "$(INTDIR)\info.obj"
-@erase "$(INTDIR)\lobj.obj" -@erase "$(INTDIR)\lobj.obj"
-@erase "$(INTDIR)\misc.obj" -@erase "$(INTDIR)\misc.obj"
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
-@erase "$(INTDIR)\multibyte.obj"
!ENDIF
-@erase "$(INTDIR)\options.obj" -@erase "$(INTDIR)\options.obj"
-@erase "$(INTDIR)\parse.obj" -@erase "$(INTDIR)\parse.obj"
-@erase "$(INTDIR)\pgtypes.obj" -@erase "$(INTDIR)\pgtypes.obj"
@ -84,8 +87,11 @@ CLEAN :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe CPP=cl.exe
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "MULTIBYTE" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
!ELSE
CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
!ENDIF
.c{$(INTDIR)}.obj:: .c{$(INTDIR)}.obj::
$(CPP) @<< $(CPP) @<<
$(CPP_PROJ) $< $(CPP_PROJ) $<
@ -96,6 +102,7 @@ CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS"
$(CPP_PROJ) $< $(CPP_PROJ) $<
<< <<
.cxx{$(INTDIR)}.obj:: .cxx{$(INTDIR)}.obj::
$(CPP) @<< $(CPP) @<<
$(CPP_PROJ) $< $(CPP_PROJ) $<
@ -140,6 +147,9 @@ LINK32_OBJS= \
"$(INTDIR)\info.obj" \ "$(INTDIR)\info.obj" \
"$(INTDIR)\lobj.obj" \ "$(INTDIR)\lobj.obj" \
"$(INTDIR)\misc.obj" \ "$(INTDIR)\misc.obj" \
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
"$(INTDIR)\multibyte.obj" \
!ENDIF
"$(INTDIR)\options.obj" \ "$(INTDIR)\options.obj" \
"$(INTDIR)\parse.obj" \ "$(INTDIR)\parse.obj" \
"$(INTDIR)\pgtypes.obj" \ "$(INTDIR)\pgtypes.obj" \
@ -158,7 +168,7 @@ LINK32_OBJS= \
$(LINK32_FLAGS) $(LINK32_OBJS) $(LINK32_FLAGS) $(LINK32_OBJS)
<< <<
!ELSEIF "$(CFG)" == "Debug" !ELSEIF "$(CFG)" == "Debug" || "$(CFG)" == "MultibyteDebug"
OUTDIR=.\Debug OUTDIR=.\Debug
INTDIR=.\Debug INTDIR=.\Debug
@ -182,6 +192,9 @@ CLEAN :
-@erase "$(INTDIR)\info.obj" -@erase "$(INTDIR)\info.obj"
-@erase "$(INTDIR)\lobj.obj" -@erase "$(INTDIR)\lobj.obj"
-@erase "$(INTDIR)\misc.obj" -@erase "$(INTDIR)\misc.obj"
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
-@erase "$(INTDIR)\multibyte.obj"
!ENDIF
-@erase "$(INTDIR)\options.obj" -@erase "$(INTDIR)\options.obj"
-@erase "$(INTDIR)\parse.obj" -@erase "$(INTDIR)\parse.obj"
-@erase "$(INTDIR)\pgtypes.obj" -@erase "$(INTDIR)\pgtypes.obj"
@ -206,8 +219,11 @@ CLEAN :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe CPP=cl.exe
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /D "MULTIBYTE" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
!ELSE
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PSQLODBC_EXPORTS" /Fp"$(INTDIR)\psqlodbc.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
!ENDIF
.c{$(INTDIR)}.obj:: .c{$(INTDIR)}.obj::
$(CPP) @<< $(CPP) @<<
$(CPP_PROJ) $< $(CPP_PROJ) $<
@ -262,6 +278,9 @@ LINK32_OBJS= \
"$(INTDIR)\info.obj" \ "$(INTDIR)\info.obj" \
"$(INTDIR)\lobj.obj" \ "$(INTDIR)\lobj.obj" \
"$(INTDIR)\misc.obj" \ "$(INTDIR)\misc.obj" \
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
"$(INTDIR)\multibyte.obj" \
!ENDIF
"$(INTDIR)\options.obj" \ "$(INTDIR)\options.obj" \
"$(INTDIR)\parse.obj" \ "$(INTDIR)\parse.obj" \
"$(INTDIR)\pgtypes.obj" \ "$(INTDIR)\pgtypes.obj" \
@ -282,7 +301,8 @@ LINK32_OBJS= \
!ENDIF !ENDIF
!IF "$(CFG)" == "Release" || "$(CFG)" == "Debug" !IF "$(CFG)" == "Release" || "$(CFG)" == "Debug" || "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
SOURCE=bind.c SOURCE=bind.c
"$(INTDIR)\bind.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\bind.obj" : $(SOURCE) "$(INTDIR)"
@ -304,6 +324,7 @@ SOURCE=connection.c
SOURCE=convert.c SOURCE=convert.c
"$(INTDIR)\convert.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\convert.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE) $(CPP) $(CPP_PROJ) $(SOURCE)
@ -354,7 +375,14 @@ SOURCE=misc.c
"$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE) $(CPP) $(CPP_PROJ) $(SOURCE)
!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug"
SOURCE=multibyte.c
"$(INTDIR)\multibyte.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE=options.c SOURCE=options.c
"$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)"
@ -381,19 +409,27 @@ SOURCE=psqlodbc.c
SOURCE=psqlodbc.rc SOURCE=psqlodbc.rc
!IF "$(CFG)" == "Release" || "$(CFG)" == "MultibyteRelease"
!IF "$(CFG)" == "Release" !IF "$(CFG)" == "Release"
"$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)"
$(RSC) /l 0x809 /fo"$(INTDIR)\psqlodbc.res" /d "NDEBUG" $(SOURCE) $(RSC) /l 0x809 /fo"$(INTDIR)\psqlodbc.res" /d "NDEBUG" $(SOURCE)
!ELSEIF "$(CFG)" == "MultibyteRelease"
"$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)"
$(RSC) /l 0x809 /fo"$(INTDIR)\psqlodbc.res" /d "NDEBUG" /d "MULTIBYTE" $(SOURCE)
!ENDIF
!ELSEIF "$(CFG)" == "Debug" !ELSEIF "$(CFG)" == "Debug" || "$(CFG)" == "MultibyteDebug"
!IF "$(CFG)" == "Debug"
"$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)"
$(RSC) /l 0x809 /fo"$(INTDIR)\psqlodbc.res" /d "_DEBUG" $(SOURCE) $(RSC) /l 0x809 /fo"$(INTDIR)\psqlodbc.res" /d "_DEBUG" $(SOURCE)
!ELSEIF "$(CFG)" == "MultibyteDebug"
"$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)"
$(RSC) /l 0x809 /fo"$(INTDIR)\psqlodbc.res" /d "_DEBUG" /d "MULTIBYTE" $(SOURCE)
!ENDIF
!ENDIF !ENDIF