diff options
author | elfmz <fenix1905@tut.by> | 2022-07-20 23:14:10 +0300 |
---|---|---|
committer | elfmz <fenix1905@tut.by> | 2022-07-20 23:14:10 +0300 |
commit | 13092d3deb4d4fd65c68491abdac7ab0a74422d0 (patch) | |
tree | 73c5c2185259f8d55c859e6f50a1c27ca6e30191 /far2l/src/treelist.cpp | |
parent | 230fd1c7f34e3956e2b92d2d80ace3f3813ec885 (diff) |
fix double fclose issue (and related compiler warning)
Diffstat (limited to 'far2l/src/treelist.cpp')
-rw-r--r-- | far2l/src/treelist.cpp | 15 |
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); } |