The original GFA implementation of the auto save feature.
Sub Gfa_Init
'
' Add menu item for AutoSave
'
Global Int IdxAutosave = Gfa_AddMenu("&AutoSave", Menu_Autosave)
Gfa_MenuCheck(idxautosave) = Gfa_IntSetting("Auto_Save") And 1
Gfa_MenuDesc(idxautosave) = "Autosave every 5 minutes"
EndSub
Sub Menu_Autosave(idx%)
Gfa_MenuCheck(idx) = !Gfa_MenuCheck(idx)
Gfa_IntSetting("Auto_Save") = -Gfa_MenuCheck(Idx)
EndSub
Sub Gfa_Minute // autosave every 5 Minutes
Local Date d
Local st_old$
// Don't save if not wanted
If !Gfa_MenuCheck(IdxAutosave) Then Exit Sub
// Don't save empty program
If Gfa_LineCnt == 0 Then Exit Sub
// Changes have bee saved before
If !Gfa_Dirty Then Exit Sub
// Get filetime of the autosave file
Try
d = FileDateTime(TempDir & "temp.g32")
Catch
d = 0.0
EndCatch
// When not older then 4.5 Minuten
// (1 day / 24 (hours) / 60 (Minutes)) * 4.5
// so 5 minutes or older is
If d > Now - (1 / 24 / 60) * 4.5
Exit Sub //do nothing
EndIf
// Change statusbar
st_old = Gfa_StatusText
Gfa_StatusText = "Autosave as " & TempDir & "temp.g32"
Gfa_SaveFile TempDir & "temp.g32"
Gfa_StatusText = st_old
End Sub
{Created by Sjouke Hamstra; Last updated: 08/10/2014 by James Gaite}