home *** CD-ROM | disk | FTP | other *** search
- /*
- PDrawAutoSave.rexx
- Copyright Gold Disk Inc, January, 1992
- */
- signal on break_c
- signal on break_d
- signal on break_e
- signal on break_f
- signal on error
- signal on halt
- signal on ioerr
-
- arg backup
-
- if ~show(p, 'PDRAWAREXX') then exit_msg()
-
- if ~show(l, "rexxsupport.library") then
- if ~addlib("rexxsupport.library",0,-30) then
- call exit_msg("Please install the rexxsupport.library in your libs: directory before running this Genie")
-
- minutes = 60 * 50
-
- do forever
-
- interval = getclip(pdautosave)
- if interval = '' then exit_msg()
-
- call delay(interval * minutes)
-
- if ~show(p, 'PDRAWAREXX') then exit_msg()
-
- do while pdm_GetState() ~= "0 0"
- call delay(.2 * minutes)
- end
-
- if ~pdm_DocChanged() then iterate
-
- dname = pdm_GetDocName()
- dsaved = pdm_SavedDate()
-
- if dname ~= prevdname then
- do
- ok = pdm_Inform(3, "Would you like to save now?", "Cancel","No", "Yes")
-
- if ok = 1 then iterate
- else if ok = 0 then exit_msg()
-
- if dsaved = "Not Saved" then
- do
- dname = pdm_GetFileName("Save Document As..", "", "")
- if dname = '' then iterate
- end
-
- backup = Y
- file = splitpath(dname)
- prevdname = dname
-
- end
- else
- do
- ok = pdm_Inform(3, "Would you like to save now?", "Cancel","No", "Yes")
- if ok = 1 then iterate
- else if ok = 0 then exit_msg()
- end
-
- if backup = 'Y' & exists(dname) then
- do
- address command
- 'copy' '"'dname'"' '"'dname'.bak"'
- backup = N
- end
-
- if ~pdm_SaveDocument(dname) then
- do
- response = pdm_Inform(2, "An error has occured saving document. Try again?", "No", "Yes")
- if response = 0 then exit_msg()
- else iterate
- end
-
- call pdm_SetDocName(file)
- end
-
-
- exit_msg()
-
- splitpath: procedure expose dname
- do
-
- spos = pos('/', dname)
-
- if spos = 0 then
- do
- vpos = pos(':', dname)
- if vpos = 0 & spos = 0 then
- return dname
-
- end
-
- file = substr(dname, max(vpos, spos) + 1)
-
- return(file)
-
- end
-
- exit_msg: procedure
- do
- parse arg message
-
- if message ~= '' then
- call pdm_Inform(1, message, )
-
- call setclip(pdrawautosave, "")
-
- exit
-
- end
-
- break_c:
- break_d:
- break_e:
- break_f:
- error:
- say errortext(rc)
- halt:
- ioerr:
- do
- call setclip(pdrawautosave, "")
- exit
- end
-
-