+ fix: .ini-file writing bug introduced in previous version

This commit is contained in:
Rainer Kottenhoff 2020-03-13 01:52:41 +01:00
parent 0d39bf7749
commit 855fab8d8f
11 changed files with 25 additions and 21 deletions

View File

@ -1 +1 @@
1
2

View File

@ -124,13 +124,15 @@ static HANDLE s_INI_Hndl = INVALID_HANDLE_VALUE;
static CSimpleIni s_INI(s_bIsUTF8, s_bUseMultiKey, s_bUseMultiLine);
extern "C" BOOL LoadIniFile(LPCWSTR lpIniFilePath)
extern "C" BOOL LoadIniFile(LPCWSTR lpIniFilePath, BOOL bNeedReadWriteAccess)
{
s_INI.Reset();
s_INI.SetSpaces(s_bSetSpaces);
s_INI.SetMultiLine(s_bUseMultiLine);
s_INI_Hndl = AcquireReadFileLock(lpIniFilePath, s_OvrLpd);
s_INI_Hndl = bNeedReadWriteAccess ? AcquireWriteFileLock(lpIniFilePath, s_OvrLpd) :
AcquireReadFileLock(lpIniFilePath, s_OvrLpd);;
if (s_INI_Hndl == INVALID_HANDLE_VALUE) {
return false;
}
@ -834,7 +836,7 @@ void LoadFlags()
{
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, FALSE);
const WCHAR* const Settings_Section2 = L"Settings2";
@ -890,7 +892,7 @@ void LoadSettings()
{
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, FALSE);
const WCHAR* const Settings_Section = L"Settings";
@ -1071,7 +1073,7 @@ void SaveSettings(BOOL bSaveSettingsNow)
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, TRUE);
const WCHAR* const Settings_Section = L"Settings";

View File

@ -37,7 +37,7 @@ extern "C" {
// ----------------------------------------------------------------------------
BOOL LoadIniFile(LPCWSTR lpIniFilePath);
BOOL LoadIniFile(LPCWSTR lpIniFilePath, BOOL bNeedReadWriteAccess);
BOOL SaveIniFile();
void ReleaseIniFile();

View File

@ -2700,7 +2700,7 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, TRUE);
const WCHAR* const TargetApp_Section = L"Target Application";

View File

@ -1530,7 +1530,7 @@ BOOL MRU_Load(LPMRULIST pmru) {
MRU_Empty(pmru);
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, FALSE);
const WCHAR* const RegKey_Section = pmru->szRegKey;
@ -1555,7 +1555,7 @@ BOOL MRU_Load(LPMRULIST pmru) {
BOOL MRU_Save(LPMRULIST pmru) {
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, TRUE);
WCHAR tchName[32];
WCHAR tchItem[1024] = { L'\0' };
@ -1572,7 +1572,7 @@ BOOL MRU_Save(LPMRULIST pmru) {
}
}
__finally {
SaveIniFile(g_wchIniFile);
SaveIniFile();
}
return TRUE;
}

View File

@ -1163,7 +1163,7 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance)
// Load toolbar labels
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, FALSE);
const WCHAR* const ToolbarLabels_Section = L"Toolbar Labels";
n = 0;
@ -3330,7 +3330,7 @@ void LoadTargetParamsOnce(void)
return;
__try {
LoadIniFile(g_wchIniFile);
LoadIniFile(g_wchIniFile, FALSE);
const WCHAR* const TargetApp_Section = L"Target Application";
if (IniSectionGetInt(TargetApp_Section, L"UseTargetApplication", 0xFB) != 0xFB) {

View File

@ -3,7 +3,7 @@
<assemblyIdentity
name="Notepad3"
processorArchitecture="*"
version="5.20.313.1"
version="5.20.313.2"
type="win32"
/>
<description>Notepad3 RC3</description>

View File

@ -138,13 +138,15 @@ static HANDLE s_INI_Hndl = INVALID_HANDLE_VALUE;
static CSimpleIni s_INI(s_bIsUTF8, s_bUseMultiKey, s_bUseMultiLine);
extern "C" bool LoadIniFile(LPCWSTR lpIniFilePath)
extern "C" bool LoadIniFile(LPCWSTR lpIniFilePath, bool bNeedReadWriteAccess)
{
s_INI.Reset();
s_INI.SetSpaces(s_bSetSpaces);
s_INI.SetMultiLine(s_bUseMultiLine);
s_INI_Hndl = AcquireReadFileLock(lpIniFilePath, s_OvrLpd);
s_INI_Hndl = bNeedReadWriteAccess ? AcquireWriteFileLock(lpIniFilePath, s_OvrLpd) :
AcquireReadFileLock(lpIniFilePath, s_OvrLpd);;
if (s_INI_Hndl == INVALID_HANDLE_VALUE) {
return false;
}
@ -842,7 +844,7 @@ bool OpenSettingsFile()
if (StrIsNotEmpty(Globals.IniFile)) {
CreateIniFile();
if (!IsIniFileLoaded()) {
LoadIniFile(Globals.IniFile);
LoadIniFile(Globals.IniFile, true);
}
}
return IsIniFileLoaded();

View File

@ -37,7 +37,7 @@ bool CloseSettingsFile(bool bSaveChanges);
// ----------------------------------------------------------------------------
bool LoadIniFile(LPCWSTR lpIniFilePath);
bool LoadIniFile(LPCWSTR lpIniFilePath, bool bNeedReadWriteAccess);
bool IsIniFileLoaded();
void ReleaseIniFile();
bool SaveIniFile();

View File

@ -544,7 +544,7 @@ bool Style_ImportFromFile(const WCHAR* szFile)
if (bResetToDefault) {
ReleaseIniFile();
}
bool result = !bResetToDefault ? LoadIniFile(szFile) : true;
bool result = !bResetToDefault ? LoadIniFile(szFile, false) : true;
if (result) {
@ -825,7 +825,7 @@ bool Style_ExportToFile(const WCHAR* szFile, bool bForceAll)
}
}
else {
LoadIniFile(szFilePathNorm); // reset
LoadIniFile(szFilePathNorm, true); // reset
Style_ToIniSection(bForceAll);
ok = SaveIniFile();
}

View File

@ -9,7 +9,7 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 20
#define VERSION_REV 313
#define VERSION_BUILD 1
#define VERSION_BUILD 2
#define SCINTILLA_VER 432
#define ONIGURUMA_REGEX_VER 6.9.4
#define UCHARDET_VER 2018.09.27