From 5a9488a6de0ddf160e5f8fcb2dc926e30139a488 Mon Sep 17 00:00:00 2001 From: Hiroshi Inoue Date: Tue, 24 Mar 2009 21:38:45 +0000 Subject: [PATCH] Add a textbox to setup dialog to change the directory for logging. --- dlg_specific.c | 12 ++++++++++++ dlg_specific.h | 2 ++ dlg_wingui.c | 5 +++++ mylog.c | 2 +- psqlodbc.rc | 22 ++++++++++++++-------- resource.h | 3 ++- version.h | 2 +- 7 files changed, 37 insertions(+), 11 deletions(-) diff --git a/dlg_specific.c b/dlg_specific.c index 5103577..d528009 100644 --- a/dlg_specific.c +++ b/dlg_specific.c @@ -697,6 +697,18 @@ getDriverNameFromDSN(const char *dsn, char *driver_name, int namelen) return SQLGetPrivateProfileString(ODBC_DATASOURCES, dsn, "", driver_name, namelen, ODBC_INI); } +int +getLogDir(char *dir, int dirmax) +{ + return SQLGetPrivateProfileString(DBMS_NAME, INI_LOGDIR, "", dir, dirmax, ODBCINST_INI); +} + +int +setLogDir(const char *dir) +{ + return SQLWritePrivateProfileString(DBMS_NAME, INI_LOGDIR, dir, ODBCINST_INI); +} + void getDSNinfo(ConnInfo *ci, char overwrite) { diff --git a/dlg_specific.h b/dlg_specific.h index 578e6b2..37f1064 100644 --- a/dlg_specific.h +++ b/dlg_specific.h @@ -278,6 +278,8 @@ void makeConnectString(char *connect_string, const ConnInfo *ci, UWORD); BOOL copyAttributes(ConnInfo *ci, const char *attribute, const char *value); BOOL copyCommonAttributes(ConnInfo *ci, const char *attribute, const char *value); int getDriverNameFromDSN(const char *dsn, char *driver_name, int namelen); +int getLogDir(char *dir, int dirmax); +int setLogDir(const char *dir); int changeDriverNameOfaDSN(const char *dsn, const char *driver_name, DWORD *errcode); UInt4 getExtraOptions(const ConnInfo *); BOOL setExtraOptions(ConnInfo *, const char *str, const char *format); diff --git a/dlg_wingui.c b/dlg_wingui.c index 178af08..5114987 100644 --- a/dlg_wingui.c +++ b/dlg_wingui.c @@ -336,6 +336,7 @@ global_optionsProc(HWND hdlg, HMODULE hmodule; FARPROC proc; #endif /* _HANDLE_ENLIST_IN_DTC_ */ + char logdir[PATH_MAX]; switch (wMsg) { @@ -348,6 +349,8 @@ global_optionsProc(HWND hdlg, #ifndef MY_LOG EnableWindow(GetDlgItem(hdlg, DRV_DEBUG), FALSE); #endif /* MY_LOG */ + getLogDir(logdir, sizeof(logdir)); + SetDlgItemText(hdlg, DS_LOGDIR, logdir); #ifdef _HANDLE_ENLIST_IN_DTC_ hmodule = DtcProc("GetMsdtclog", &proc); if (proc) @@ -372,6 +375,8 @@ global_optionsProc(HWND hdlg, globals.debug = IsDlgButtonChecked(hdlg, DRV_DEBUG); if (writeDriverCommoninfo(ODBCINST_INI, NULL, &globals) < 0) MessageBox(hdlg, "Sorry, impossible to update the values\nWrite permission seems to be needed", "Update Error", MB_ICONEXCLAMATION | MB_OK); + GetDlgItemText(hdlg, DS_LOGDIR, logdir, sizeof(logdir)); + setLogDir(logdir[0] ? logdir : NULL); #ifdef _HANDLE_ENLIST_IN_DTC_ hmodule = DtcProc("SetMsdtclog", &proc); if (proc) diff --git a/mylog.c b/mylog.c index f8ab7b8..67b58ed 100644 --- a/mylog.c +++ b/mylog.c @@ -359,7 +359,7 @@ void InitializeLogging() { char dir[PATH_MAX]; - SQLGetPrivateProfileString(DBMS_NAME, INI_LOGDIR, "", dir, sizeof(dir), ODBCINST_INI); + getLogDir(dir, sizeof(dir)); if (dir[0]) logdir = strdup(dir); mylog_initialize(); diff --git a/psqlodbc.rc b/psqlodbc.rc index 41fcaaa..49fa5b8 100644 --- a/psqlodbc.rc +++ b/psqlodbc.rc @@ -201,7 +201,7 @@ BEGIN BS_AUTOCHECKBOX | WS_TABSTOP,15,85,87,10 END -DLG_OPTIONS_GLOBAL DIALOG DISCARDABLE 0, 0, 306, 105 +DLG_OPTIONS_GLOBAL DIALOG DISCARDABLE 0, 0, 306, 115 STYLE DS_MODALFRAME | DS_3DLOOK | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "‚“x‚Ȑݒè(‘S‘Ì)" @@ -216,10 +216,13 @@ BEGIN CONTROL "MSDTCƒƒO (C:\\pgdtclog\\mylog_xxxx.log - MSDTCƒfƒoƒbƒOo—̓ƒO)", DRV_DTCLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,60, 260,10 - DEFPUSHBUTTON "OK",IDOK,5,86,50,14,WS_GROUP - PUSHBUTTON "ƒLƒƒƒ“ƒZƒ‹",IDCANCEL,65,85,50,15 + RTEXT "ƒƒMƒ“ƒO—pƒtƒHƒ‹ƒ_",IDC_STATIC,14,77,79,12 + EDITTEXT DS_LOGDIR,98,75,188,13,ES_AUTOHSCROLL | WS_GROUP, + WS_EX_TRANSPARENT + DEFPUSHBUTTON "OK",IDOK,5,96,50,14,WS_GROUP + PUSHBUTTON "ƒLƒƒƒ“ƒZƒ‹",IDCANCEL,65,95,50,15 GROUPBOX "ƒRƒlƒNƒVƒ‡ƒ“‘O‚̃fƒtƒHƒ‹ƒgƒƒMƒ“ƒOƒIƒvƒVƒ‡ƒ“", - IDC_STATIC,5,5,296,76 + IDC_STATIC,5,5,296,88 END DLG_DRIVER_CHANGE DIALOG DISCARDABLE 0, 0, 306, 87 @@ -586,7 +589,7 @@ BEGIN BS_AUTORADIOBUTTON | WS_TABSTOP,247,138,47,9 END -DLG_OPTIONS_GLOBAL DIALOG DISCARDABLE 0, 0, 306, 105 +DLG_OPTIONS_GLOBAL DIALOG DISCARDABLE 0, 0, 306, 110 STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Global settings" FONT 8, "MS Sans Serif" @@ -600,10 +603,13 @@ BEGIN CONTROL "MSDTC log (C:\\pgdtclog\\mylog_xxxx.log - MSDTC debug output)", DRV_DTCLOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,60, 264,10 - DEFPUSHBUTTON "OK",IDOK,82,86,50,14,WS_GROUP - PUSHBUTTON "Cancel",IDCANCEL,172,85,50,15 + RTEXT "Folder for logging",IDC_STATIC,14,77,69,12 + EDITTEXT DS_LOGDIR,98,75,188,13,ES_AUTOHSCROLL | WS_GROUP, + WS_EX_TRANSPARENT + DEFPUSHBUTTON "OK",IDOK,82,92,50,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,172,91,50,15 GROUPBOX "Pre-connection/default logging options",IDC_STATIC,5,5, - 296,76 + 296,85 END DLG_DRIVER_CHANGE DIALOG DISCARDABLE 0, 0, 306, 87 diff --git a/resource.h b/resource.h index 51f62a3..aa57434 100644 --- a/resource.h +++ b/resource.h @@ -94,6 +94,7 @@ #define DRV_DTCLOG 1083 #define DS_EXTRA_OPTIONS 1084 #define IDC_TEST 1085 +#define DS_LOGDIR 1086 // Next default values for new objects // @@ -101,7 +102,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 105 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1086 +#define _APS_NEXT_CONTROL_VALUE 1087 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/version.h b/version.h index 6b01c33..2036968 100644 --- a/version.h +++ b/version.h @@ -12,6 +12,6 @@ #define POSTGRESDRIVERVERSION "08.03.0402" #define POSTGRES_RESOURCE_VERSION "08.03.0402\0" #define PG_DRVFILE_VERSION 8,3,04,02 -#define PG_BUILD_VERSION "200903230002" +#define PG_BUILD_VERSION "200903240002" #endif -- 2.39.5