mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-12-09 15:57:43 +01:00
* fix bug report 2205
This commit is contained in:
parent
88e2117b95
commit
d79fd9f918
@ -120,7 +120,8 @@ type
|
||||
function GetUndoActionCount: sw_integer; virtual;
|
||||
function GetRedoActionCount: sw_integer; virtual;
|
||||
private
|
||||
OnDiskLoadTime : longint;
|
||||
OnDiskLoadTime : cardinal;
|
||||
SystemLoadTime : cardinal;
|
||||
procedure LinesInsert(Idx: sw_integer; Line: PLine);
|
||||
end;
|
||||
|
||||
@ -378,7 +379,8 @@ begin
|
||||
New(Lines, Init(500,1000));
|
||||
TabSize:=DefaultTabSize;
|
||||
IndentSize:=DefaultIndentSize;
|
||||
OnDiskLoadTime:=-1;
|
||||
OnDiskLoadTime:=0;
|
||||
SystemLoadTime:=0;
|
||||
end;
|
||||
|
||||
procedure TCodeEditorCore.ChangeLinesTo(ALines : PLineCollection);
|
||||
@ -1431,7 +1433,7 @@ begin
|
||||
(Core^.UndoList^.At(0)^.Action=eaMoveCursor)) then
|
||||
begin
|
||||
SetCmdState(UndoCmd,false);
|
||||
if (UndoTime>Core^.OnDiskLoadTime) or (Core^.OnDiskLoadTime=-1) then
|
||||
if (UndoTime>=Core^.SystemLoadTime) or (Core^.SystemLoadTime=0) then
|
||||
SetModified(false);
|
||||
end;
|
||||
SetCmdState(RedoCmd,true);
|
||||
@ -1779,20 +1781,22 @@ begin
|
||||
longint(PA[2]):=Core^.GetChangedLine;
|
||||
EditorDialog(edChangedOnloading,@PA);
|
||||
end;
|
||||
Core^.OnDiskLoadTime:=GetFileTime(FileName);
|
||||
Core^.OnDiskLoadTime:=Cardinal(GetFileTime(FileName));
|
||||
Core^.SystemLoadTime:=Core^.OnDiskLoadTime;
|
||||
LoadFile:=OK;
|
||||
end;
|
||||
|
||||
function TFileEditor.IsChangedOnDisk : boolean;
|
||||
begin
|
||||
IsChangedOnDisk:=(Core^.OnDiskLoadTime<>GetFileTime(FileName)) and
|
||||
(Core^.OnDiskLoadTime<>-1);
|
||||
(Core^.OnDiskLoadTime<>0);
|
||||
end;
|
||||
|
||||
function TFileEditor.SaveFile: boolean;
|
||||
var OK: boolean;
|
||||
BAKName: string;
|
||||
f: text;
|
||||
SaveTime : cardinal;
|
||||
begin
|
||||
If IsChangedOnDisk then
|
||||
begin
|
||||
@ -1814,6 +1818,7 @@ begin
|
||||
EatIO;
|
||||
end;
|
||||
{$I+}
|
||||
SaveTime:=cardinal(now);
|
||||
OK:=SaveToFile(FileName);
|
||||
if OK then
|
||||
SetModified(false)
|
||||
@ -1828,7 +1833,10 @@ begin
|
||||
end;
|
||||
{ don't forget to update the OnDiskLoadTime value }
|
||||
if OK then
|
||||
Core^.OnDiskLoadTime:=GetFileTime(FileName);
|
||||
begin
|
||||
Core^.OnDiskLoadTime:=GetFileTime(FileName);
|
||||
Core^.SystemLoadTime:=SaveTime;
|
||||
end;
|
||||
if not OK then
|
||||
EditorDialog(edSaveError,@FileName);
|
||||
SaveFile:=OK;
|
||||
@ -1864,6 +1872,7 @@ begin
|
||||
ClearUndoList;
|
||||
{ don't forget to update the OnDiskLoadTime value }
|
||||
Core^.OnDiskLoadTime:=GetFileTime(FileName);
|
||||
Core^.SystemLoadTime:=Core^.OnDiskLoadTime;
|
||||
DrawView;
|
||||
end
|
||||
else
|
||||
@ -1899,7 +1908,7 @@ begin
|
||||
FileName:=FExpand(FileName);
|
||||
Message(Owner, evBroadcast, cmUpdateTitle, @Self);
|
||||
{ if we rename the file the OnDiskLoadTime is wrong so we reset it }
|
||||
Core^.OnDiskLoadTime:=-1;
|
||||
Core^.OnDiskLoadTime:=0;
|
||||
if SaveFile then
|
||||
begin
|
||||
SaveAs := true;
|
||||
@ -2062,7 +2071,10 @@ end;
|
||||
END.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.16 2002-12-16 15:14:44 pierre
|
||||
Revision 1.17 2002-12-18 16:10:01 pierre
|
||||
* fix bug report 2205
|
||||
|
||||
Revision 1.16 2002/12/16 15:14:44 pierre
|
||||
* moved OnDiskLoadTime to Core
|
||||
|
||||
Revision 1.15 2002/09/12 22:09:07 pierre
|
||||
|
||||
Loading…
Reference in New Issue
Block a user