diff --git a/applications/lazedit/editorpagecontrol.pp b/applications/lazedit/editorpagecontrol.pp index 58a2cb958..26393a732 100644 --- a/applications/lazedit/editorpagecontrol.pp +++ b/applications/lazedit/editorpagecontrol.pp @@ -679,9 +679,21 @@ begin end; procedure TEditor.SaveToFileUtf8(const Utf8Fn: String); +var + Attr: LongInt; begin try + Attr := FileGetAttrUTF8(Utf8Fn); + //TFileStreamUtf8.Create fails on hidden files on Windows, + //because it uses FILE_ATTRIBUTE_NORMAL + //see http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858%28v=vs.85%29.aspx + {$ifdef windows} + if ((Attr and faHidden) = faHidden) then FileSetAttrUtf8(Utf8Fn, Attr and (not faHidden)); + {$endif} Lines.SaveToFile(Utf8Fn); + {$ifdef windows} + if ((Attr and faHidden) = faHidden) then FileSetAttrUtf8(Utf8Fn, Attr or faHidden or faArchive); + {$endif} Modified := False; SetFileName(Utf8Fn, AutoFileTypeDetection and (not FNoFileTypeChangeOnSave)); except