Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/elfmz/far2l.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelfmz <fenix1905@tut.by>2022-07-20 23:14:10 +0300
committerelfmz <fenix1905@tut.by>2022-07-20 23:14:10 +0300
commit13092d3deb4d4fd65c68491abdac7ab0a74422d0 (patch)
tree73c5c2185259f8d55c859e6f50a1c27ca6e30191 /far2l/src/treelist.cpp
parent230fd1c7f34e3956e2b92d2d80ace3f3813ec885 (diff)
fix double fclose issue (and related compiler warning)
Diffstat (limited to 'far2l/src/treelist.cpp')
-rw-r--r--far2l/src/treelist.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/far2l/src/treelist.cpp b/far2l/src/treelist.cpp
index 58b99c4c..ddfd1001 100644
--- a/far2l/src/treelist.cpp
+++ b/far2l/src/treelist.cpp
@@ -1800,13 +1800,20 @@ void TreeList::FlushCache()
far_qsort(TreeCache.ListName,TreeCache.TreeCount,sizeof(wchar_t*),SortCacheList);
+ bool SaveFailed = false;
for (int i=0; i<TreeCache.TreeCount; i++)
- fwprintf(TreeFile,L"%ls\n",TreeCache.ListName[i]);
+ {
+ if (fwprintf(TreeFile,L"%ls\n",TreeCache.ListName[i]) < 0)
+ SaveFailed = true;
+ }
+
+ if (fflush(TreeFile) == EOF)
+ SaveFailed = true;
+
+ fclose(TreeFile);
- if (fclose(TreeFile)==EOF)
+ if (SaveFailed)
{
- clearerr(TreeFile);
- fclose(TreeFile);
apiDeleteFile(TreeCache.strTreeName);
Message(MSG_WARNING|MSG_ERRORTYPE,1,Msg::Error,Msg::CannotSaveTree,TreeCache.strTreeName,Msg::Ok);
}