From 55a267a171bac0b1fa415c38b6e5ecec2e2eb004 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sun, 16 Aug 2015 17:36:36 +0200 Subject: Windows: Solve UI language change not taken into account for new install unless a preference is changed. Code refactoring. --- src/Common/Dlgcode.c | 41 +++++++++++++++++++++++++++++++++++++++++ src/Common/Dlgcode.h | 2 ++ src/Format/Tcformat.c | 27 --------------------------- src/Mount/Mount.c | 41 +---------------------------------------- 4 files changed, 44 insertions(+), 67 deletions(-) (limited to 'src') diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c index 74a2c831..abad5e70 100644 --- a/src/Common/Dlgcode.c +++ b/src/Common/Dlgcode.c @@ -8713,9 +8713,50 @@ char *ConfigReadString (char *configKey, char *defaultValue, char *str, int maxL if (ConfigRead (configKey, str, maxLen)) return str; else + { + StringCbCopyA (str, maxLen, defaultValue); return defaultValue; + } } +void ConfigReadCompareInt(char *configKey, int defaultValue, int* pOutputValue, BOOL bOnlyCheckModified, BOOL* pbModified) +{ + int intValue = ConfigReadInt (configKey, defaultValue); + if (pOutputValue) + { + if (pbModified && (*pOutputValue != intValue)) + *pbModified = TRUE; + if (!bOnlyCheckModified) + *pOutputValue = intValue; + } +} + +void ConfigReadCompareString (char *configKey, char *defaultValue, char *str, int maxLen, BOOL bOnlyCheckModified, BOOL *pbModified) +{ + char *strValue = (char*) malloc (maxLen); + if (strValue) + { + memcpy (strValue, str, maxLen); + + ConfigReadString (configKey, defaultValue, strValue, maxLen); + + if (pbModified && strcmp (str, strValue)) + *pbModified = TRUE; + if (!bOnlyCheckModified) + memcpy(str, strValue, maxLen); + + free (strValue); + } + else + { + /* allocation failed. Suppose that value changed */ + if (pbModified) + *pbModified = TRUE; + if (!bOnlyCheckModified) + ConfigReadString (configKey, defaultValue, str, maxLen); + + } +} void OpenPageHelp (HWND hwndDlg, int nPage) { diff --git a/src/Common/Dlgcode.h b/src/Common/Dlgcode.h index 752b0cb1..e3f73e07 100644 --- a/src/Common/Dlgcode.h +++ b/src/Common/Dlgcode.h @@ -425,6 +425,8 @@ BOOL ConfigWriteString (char *configKey, char *configValue); BOOL ConfigWriteInt (char *configKey, int configValue); int ConfigReadInt (char *configKey, int defaultValue); char *ConfigReadString (char *configKey, char *defaultValue, char *str, int maxLen); +void ConfigReadCompareInt(char *configKey, int defaultValue, int* pOutputValue, BOOL bOnlyCheckModified, BOOL* pbModified); +void ConfigReadCompareString (char *configKey, char *defaultValue, char *str, int maxLen, BOOL bOnlyCheckModified, BOOL *pbModified); void RestoreDefaultKeyFilesParam (void); BOOL LoadDefaultKeyFilesParam (void); void Debug (char *format, ...); diff --git a/src/Format/Tcformat.c b/src/Format/Tcformat.c index 797198ac..1ceff6a5 100644 --- a/src/Format/Tcformat.c +++ b/src/Format/Tcformat.c @@ -714,33 +714,6 @@ static BOOL CreatingHiddenSysVol (void) && bHiddenVol && !bHiddenVolHost); } -static void ConfigReadCompareInt(char *configKey, int defaultValue, int* pOutputValue, BOOL bOnlyCheckModified, BOOL* pbModified) -{ - int intValue = ConfigReadInt (configKey, defaultValue); - if (pOutputValue) - { - if (pbModified && (*pOutputValue != intValue)) - *pbModified = TRUE; - if (!bOnlyCheckModified) - *pOutputValue = intValue; - } -} - -static void ConfigReadCompareString (char *configKey, char *defaultValue, char *str, int maxLen, BOOL bOnlyCheckModified, BOOL *pbModified) -{ - char *strValue = (char*) malloc (maxLen); - memcpy (strValue, str, maxLen); - - ConfigReadString (configKey, defaultValue, strValue, maxLen); - - if (pbModified && strcmp (str, strValue)) - *pbModified = TRUE; - if (!bOnlyCheckModified) - memcpy(str, strValue, maxLen); - - free (strValue); -} - static void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL* pbSettingsModified, BOOL* pbHistoryModified) { if (!bOnlyCheckModified) diff --git a/src/Mount/Mount.c b/src/Mount/Mount.c index 63f593ed..3416c140 100644 --- a/src/Mount/Mount.c +++ b/src/Mount/Mount.c @@ -639,45 +639,6 @@ static string ResolveAmbiguousSelection (HWND hwndDlg, int *driveNoPtr) return retPath; } -static void ConfigReadCompareInt(char *configKey, int defaultValue, int* pOutputValue, BOOL bOnlyCheckModified, BOOL* pbModified) -{ - int intValue = ConfigReadInt (configKey, defaultValue); - if (pOutputValue) - { - if (pbModified && (*pOutputValue != intValue)) - *pbModified = TRUE; - if (!bOnlyCheckModified) - *pOutputValue = intValue; - } -} - -static void ConfigReadCompareString (char *configKey, char *defaultValue, char *str, int maxLen, BOOL bOnlyCheckModified, BOOL *pbModified) -{ - char *strValue = (char*) malloc (maxLen); - if (strValue) - { - memcpy (strValue, str, maxLen); - - ConfigReadString (configKey, defaultValue, strValue, maxLen); - - if (pbModified && strcmp (str, strValue)) - *pbModified = TRUE; - if (!bOnlyCheckModified) - memcpy(str, strValue, maxLen); - - free (strValue); - } - else - { - /* allocation failed. Suppose that value changed */ - if (pbModified) - *pbModified = TRUE; - if (!bOnlyCheckModified) - ConfigReadString (configKey, defaultValue, str, maxLen); - - } -} - void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL* pbSettingsModified, BOOL* pbHistoryModified) { char langid[6] = {0}; @@ -767,7 +728,7 @@ void LoadSettingsAndCheckModified (HWND hwndDlg, BOOL bOnlyCheckModified, BOOL* if (LOWORD (lLetter) != 0xffff) StringCbPrintfA (szTmp, sizeof(szTmp), "%c:", (char) HIWORD (lLetter)); - ConfigReadCompareString ("LastSelectedDrive", "", szDriveLetter, sizeof (szDriveLetter), bOnlyCheckModified, pbSettingsModified); + ConfigReadCompareString ("LastSelectedDrive", "", szTmp, sizeof (szTmp), bOnlyCheckModified, pbSettingsModified); } ConfigReadCompareString ("SecurityTokenLibrary", "", SecurityTokenLibraryPath, sizeof (SecurityTokenLibraryPath) - 1, bOnlyCheckModified, pbSettingsModified); -- cgit v1.2.3