diff options
author | Shmuel Zeigerman <solomuz0@gmail.com> | 2022-03-30 14:00:14 +0300 |
---|---|---|
committer | Shmuel Zeigerman <solomuz0@gmail.com> | 2022-03-30 14:00:14 +0300 |
commit | 401f0cefbdf5ed407acc46372ab9005c51611e0e (patch) | |
tree | 9c1bb065f74c090632dcae01ace73ee01b06ad03 /far2l/src/fileedit.cpp | |
parent | 040c03d9a32241c86abce04df7dfe29f7e848179 (diff) |
Fix ECTL_SAVEFILE with invalid code page (see #1287)
Diffstat (limited to 'far2l/src/fileedit.cpp')
-rw-r--r-- | far2l/src/fileedit.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/far2l/src/fileedit.cpp b/far2l/src/fileedit.cpp index 83aa5454..1bd28b17 100644 --- a/far2l/src/fileedit.cpp +++ b/far2l/src/fileedit.cpp @@ -1036,7 +1036,7 @@ int FileEditor::ReProcessKey(int Key,int CalledFromControl) if (SaveAs) { FARString strSaveAsName = Flags.Check(FFILEEDIT_SAVETOSAVEAS)?strFullFileName:strFileName; - + bool AddSignature = DecideAboutSignature(); if (!dlgSaveFileAs(strSaveAsName, SaveAsTextFormat, codepage, AddSignature)) return FALSE; @@ -1923,7 +1923,8 @@ int FileEditor::SaveFile(const wchar_t *Name,int Ask, bool bSaveAs, int TextForm int Length; CurPtr->GetBinaryString(&SaveStr,&EndSeq,Length); BOOL UsedDefaultCharStr=FALSE,UsedDefaultCharEOL=FALSE; - WINPORT(WideCharToMultiByte)(codepage,WC_NO_BEST_FIT_CHARS,SaveStr,Length,nullptr,0,nullptr,&UsedDefaultCharStr); + if (Length && !WINPORT(WideCharToMultiByte)(codepage,WC_NO_BEST_FIT_CHARS,SaveStr,Length,nullptr,0,nullptr,&UsedDefaultCharStr)) + return SAVEFILE_ERROR; if (!*EndSeq && CurPtr->m_next) EndSeq=*m_editor->GlobalEOL?m_editor->GlobalEOL:DOS_EOL_fmt; |