From 9242e6c0380f17bc3e7849ab9b1e38e825116b60 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Fri, 16 Mar 2001 01:17:23 +0000 Subject: [PATCH] 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 --- src/interfaces/odbc/connection.c | 19 ++++ src/interfaces/odbc/convert.c | 23 +++++ src/interfaces/odbc/dlg_specific.c | 14 +++ src/interfaces/odbc/parse.c | 13 +++ src/interfaces/odbc/psqlodbc.h | 5 +- src/interfaces/odbc/psqlodbc.rc | 152 ++++++++++++++++++++++++++++- src/interfaces/odbc/win32.mak | 58 ++++++++--- 7 files changed, 266 insertions(+), 18 deletions(-) diff --git a/src/interfaces/odbc/connection.c b/src/interfaces/odbc/connection.c index 69e111e4c2..a4f0526184 100644 --- a/src/interfaces/odbc/connection.c +++ b/src/interfaces/odbc/connection.c @@ -12,6 +12,11 @@ * 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 "connection.h" @@ -20,6 +25,11 @@ #include "qresult.h" #include "lobj.h" #include "dlg_specific.h" + +#ifdef MULTIBYTE +#include "multibyte.h" +#endif + #include #include @@ -496,9 +506,18 @@ static char *func="CC_connect"; globals.text_as_longvarchar, globals.unknowns_as_longvarchar, 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", globals.extra_systable_prefixes, globals.conn_settings); +#endif if (self->status != CONN_NOT_CONNECTED) { self->errormsg = "Already connected."; diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c index 0d8ada3256..12739f32aa 100644 --- a/src/interfaces/odbc/convert.c +++ b/src/interfaces/odbc/convert.c @@ -15,6 +15,7 @@ * Comments: See "notice.txt" for copyright and license information. * */ +/* Multibyte support Eiji Tokuya 2001-03-15 */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -26,6 +27,10 @@ #include "psqlodbc.h" +#ifdef MULTIBYTE +#include "multibyte.h" +#endif + #ifndef WIN32 #include "iodbc.h" #include "isql.h" @@ -690,6 +695,9 @@ int lobj_fd, retval; param_number = -1; oldstmtlen = strlen(old_statement); +#ifdef MULTIBYTE + multibyte_init(); +#endif for (opos = 0; opos < oldstmtlen; opos++) { @@ -700,10 +708,18 @@ int lobj_fd, retval; } /* 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] == '{') { +#endif char *esc; char *begin = &old_statement[opos + 1]; +#ifdef MULTIBYTE + char *end = multibyte_strchr(begin, '}'); +#else char *end = strchr(begin, '}'); +#endif if ( ! end) continue; @@ -1334,11 +1350,18 @@ char *p; max = strlen(si); else max = used; +#ifdef MULTIBYTE + multibyte_init(); +#endif for (i = 0; i < max; i++) { if (si[i] == '\r' && i+1 < strlen(si) && si[i+1] == '\n') continue; +#ifdef MULTIBYTE + else if (multibyte_char_check(si[i]) == 0 && (si[i] == '\'' || si[i] == '\\')) +#else else if (si[i] == '\'' || si[i] == '\\') +#endif p[out++] = '\\'; p[out++] = si[i]; diff --git a/src/interfaces/odbc/dlg_specific.c b/src/interfaces/odbc/dlg_specific.c index 13e8b44e61..70df018692 100644 --- a/src/interfaces/odbc/dlg_specific.c +++ b/src/interfaces/odbc/dlg_specific.c @@ -15,6 +15,7 @@ * Comments: See "notice.txt" for copyright and license information. * */ +/* Multibyte support Eiji Tokuya 2001-03-15 */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -34,6 +35,10 @@ #include "dlg_specific.h" #include "convert.h" +#ifdef MULTIBYTE +#include "multibyte.h" +#endif + #ifndef BOOL #define BOOL int #endif @@ -507,8 +512,17 @@ char encoded_conn_settings[LARGE_REGISTRY_LEN]; ci->show_oid_column, ci->fake_oid_index, 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", ci->conn_settings); +#endif + qlog(" translation_dll='%s',translation_option='%s'\n", ci->translation_dll, ci->translation_option); diff --git a/src/interfaces/odbc/parse.c b/src/interfaces/odbc/parse.c index b8eed13bf6..a5f046f179 100644 --- a/src/interfaces/odbc/parse.c +++ b/src/interfaces/odbc/parse.c @@ -17,6 +17,11 @@ * 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 #include @@ -27,6 +32,10 @@ #include "qresult.h" #include "pgtypes.h" +#ifdef MULTIBYTE +#include "multibyte.h" +#endif + #ifndef WIN32 #ifndef HAVE_STRICMP #define stricmp(s1,s2) strcasecmp(s1,s2) @@ -88,7 +97,11 @@ char qc, in_escape = FALSE; if (s[i] == qc && ! in_escape) { break; } +#ifdef MULTIBYTE + if (multibyte_char_check(s[i]) == 0 && s[i] == '\\' && ! in_escape) { +#else if (s[i] == '\\' && ! in_escape) { +#endif in_escape = TRUE; } else { diff --git a/src/interfaces/odbc/psqlodbc.h b/src/interfaces/odbc/psqlodbc.h index ccefb1a05f..d1785c56e1 100644 --- a/src/interfaces/odbc/psqlodbc.h +++ b/src/interfaces/odbc/psqlodbc.h @@ -6,7 +6,7 @@ * * 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__ @@ -41,7 +41,7 @@ typedef UInt4 Oid; #define DRIVERNAME "PostgreSQL ODBC" #define DBMS_NAME "PostgreSQL" -#define POSTGRESDRIVERVERSION "07.01.0003" +#define POSTGRESDRIVERVERSION "07.01.0004" #ifdef WIN32 #define DRIVER_FILE_NAME "PSQLODBC.DLL" @@ -134,6 +134,7 @@ typedef struct GlobalValues_ char conn_settings[LARGE_REGISTRY_LEN]; char protocol[SMALL_REGISTRY_LEN]; + FILE* mylogFP; FILE* qlogFP; } GLOBAL_VALUES; diff --git a/src/interfaces/odbc/psqlodbc.rc b/src/interfaces/odbc/psqlodbc.rc index dbbfa34ef9..750d32113d 100644 --- a/src/interfaces/odbc/psqlodbc.rc +++ b/src/interfaces/odbc/psqlodbc.rc @@ -52,6 +52,118 @@ END // 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 STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU @@ -162,7 +274,7 @@ BEGIN DEFPUSHBUTTON "OK",IDOK,71,135,50,14,WS_GROUP PUSHBUTTON "Cancel",IDCANCEL,146,135,50,14 END - +#endif ///////////////////////////////////////////////////////////////////////////// // @@ -170,6 +282,31 @@ END // #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 BEGIN DLG_CONFIG, DIALOG @@ -194,6 +331,7 @@ BEGIN BOTTOMMARGIN, 154 END END +#endif // MULTIBYTE #endif // APSTUDIO_INVOKED @@ -204,8 +342,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 7,1,0,3 - PRODUCTVERSION 7,1,0,3 + FILEVERSION 7,1,0,4 + PRODUCTVERSION 7,1,0,4 FILEFLAGSMASK 0x3L #ifdef _DEBUG FILEFLAGS 0x1L @@ -221,16 +359,20 @@ BEGIN BLOCK "040904e4" BEGIN 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" +#endif VALUE "FileDescription", "PostgreSQL Driver\0" - VALUE "FileVersion", " 07.01.0003\0" + VALUE "FileVersion", " 07.01.0004\0" VALUE "InternalName", "psqlodbc\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 "OriginalFilename", "psqlodbc.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "Microsoft Open Database Connectivity\0" - VALUE "ProductVersion", " 07.01.0003\0" + VALUE "ProductVersion", " 07.01.0004\0" VALUE "SpecialBuild", "\0" END END diff --git a/src/interfaces/odbc/win32.mak b/src/interfaces/odbc/win32.mak index adb293d5a1..0a7eacf030 100644 --- a/src/interfaces/odbc/win32.mak +++ b/src/interfaces/odbc/win32.mak @@ -18,12 +18,12 @@ CFG=Release !MESSAGE !ENDIF -!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug" +!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug" && "$(CFG)" != "MultibyteRelease" && "$(CFG)" != "MultibyteDebug" !MESSAGE Invalid configuration "$(CFG)" specified. !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE -!MESSAGE NMAKE /f win32.mak CFG=Debug +!MESSAGE NMAKE /f win32.mak CFG=[Release | Debug | MultibyteRelease | MultiByteDebug] !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE @@ -39,7 +39,7 @@ NULL= NULL=nul !ENDIF -!IF "$(CFG)" == "Release" +!IF "$(CFG)" == "Release" || "$(CFG)" == "MultibyteRelease" OUTDIR=.\Release INTDIR=.\Release @@ -63,6 +63,9 @@ CLEAN : -@erase "$(INTDIR)\info.obj" -@erase "$(INTDIR)\lobj.obj" -@erase "$(INTDIR)\misc.obj" +!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug" + -@erase "$(INTDIR)\multibyte.obj" +!ENDIF -@erase "$(INTDIR)\options.obj" -@erase "$(INTDIR)\parse.obj" -@erase "$(INTDIR)\pgtypes.obj" @@ -84,8 +87,11 @@ CLEAN : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 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 - +!ENDIF .c{$(INTDIR)}.obj:: $(CPP) @<< $(CPP_PROJ) $< @@ -96,6 +102,7 @@ CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" $(CPP_PROJ) $< << + .cxx{$(INTDIR)}.obj:: $(CPP) @<< $(CPP_PROJ) $< @@ -140,6 +147,9 @@ LINK32_OBJS= \ "$(INTDIR)\info.obj" \ "$(INTDIR)\lobj.obj" \ "$(INTDIR)\misc.obj" \ +!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug" + "$(INTDIR)\multibyte.obj" \ +!ENDIF "$(INTDIR)\options.obj" \ "$(INTDIR)\parse.obj" \ "$(INTDIR)\pgtypes.obj" \ @@ -158,7 +168,7 @@ LINK32_OBJS= \ $(LINK32_FLAGS) $(LINK32_OBJS) << -!ELSEIF "$(CFG)" == "Debug" +!ELSEIF "$(CFG)" == "Debug" || "$(CFG)" == "MultibyteDebug" OUTDIR=.\Debug INTDIR=.\Debug @@ -182,6 +192,9 @@ CLEAN : -@erase "$(INTDIR)\info.obj" -@erase "$(INTDIR)\lobj.obj" -@erase "$(INTDIR)\misc.obj" +!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug" + -@erase "$(INTDIR)\multibyte.obj" +!ENDIF -@erase "$(INTDIR)\options.obj" -@erase "$(INTDIR)\parse.obj" -@erase "$(INTDIR)\pgtypes.obj" @@ -206,8 +219,11 @@ CLEAN : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 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 - +!ENDIF .c{$(INTDIR)}.obj:: $(CPP) @<< $(CPP_PROJ) $< @@ -262,6 +278,9 @@ LINK32_OBJS= \ "$(INTDIR)\info.obj" \ "$(INTDIR)\lobj.obj" \ "$(INTDIR)\misc.obj" \ +!IF "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug" + "$(INTDIR)\multibyte.obj" \ +!ENDIF "$(INTDIR)\options.obj" \ "$(INTDIR)\parse.obj" \ "$(INTDIR)\pgtypes.obj" \ @@ -282,7 +301,8 @@ LINK32_OBJS= \ !ENDIF -!IF "$(CFG)" == "Release" || "$(CFG)" == "Debug" +!IF "$(CFG)" == "Release" || "$(CFG)" == "Debug" || "$(CFG)" == "MultibyteRelease" || "$(CFG)" == "MultibyteDebug" + SOURCE=bind.c "$(INTDIR)\bind.obj" : $(SOURCE) "$(INTDIR)" @@ -304,6 +324,7 @@ SOURCE=connection.c SOURCE=convert.c "$(INTDIR)\convert.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) @@ -354,7 +375,14 @@ SOURCE=misc.c "$(INTDIR)\misc.obj" : $(SOURCE) "$(INTDIR)" $(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 "$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)" @@ -381,19 +409,27 @@ SOURCE=psqlodbc.c SOURCE=psqlodbc.rc -!IF "$(CFG)" == "Release" +!IF "$(CFG)" == "Release" || "$(CFG)" == "MultibyteRelease" +!IF "$(CFG)" == "Release" "$(INTDIR)\psqlodbc.res" : $(SOURCE) "$(INTDIR)" $(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)" $(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 -- 2.40.0