fixed bug with autosaving and locking

original commit: f481a5689bfdb9bb19a66b88892c8f0752550248
This commit is contained in:
Robby Findler 1997-05-15 21:01:18 +00:00
parent 8169a632bc
commit 449cafbff3

View File

@ -223,8 +223,18 @@
(begin (begin
(restore-file-format) (restore-file-format)
#f))))] #f))))]
[check-lock
(lambda ()
(let ([filename (get-filename)])
(lock (and (not (null? filename))
(not (member
'write
(file-or-directory-permissions
filename)))))))]
[after-save-file [after-save-file
(lambda (success) (lambda (success)
(when success
(check-lock))
(super-after-save-file success) (super-after-save-file success)
(restore-file-format))] (restore-file-format))]
@ -237,7 +247,7 @@
[after-load-file [after-load-file
(lambda (sucessful?) (lambda (sucessful?)
(when sucessful? (when sucessful?
(lock (not (member 'write (file-or-directory-permissions (get-filename)))))) (check-lock))
(super-after-load-file sucessful?))] (super-after-load-file sucessful?))]
[set-mode [set-mode
@ -588,7 +598,7 @@
(define make-backup-autosave-buffer% (define make-backup-autosave-buffer%
(lambda (super-edit%) (lambda (super-edit%)
(class-asi super-edit% (class super-edit% args
(inherit modified? get-filename save-file) (inherit modified? get-filename save-file)
(rename [super-on-save-file on-save-file] (rename [super-on-save-file on-save-file]
[super-on-change on-change] [super-on-change on-change]
@ -636,8 +646,8 @@
[success (save-file auto-name wx:const-media-ff-copy)]) [success (save-file auto-name wx:const-media-ff-copy)])
(if success (if success
(begin (begin
(if auto-saved-name (when auto-saved-name
(delete-file auto-saved-name)) (delete-file auto-saved-name))
(set! auto-saved-name auto-name) (set! auto-saved-name auto-name)
(set! auto-save-out-of-date? #f)) (set! auto-save-out-of-date? #f))
(begin (begin
@ -652,7 +662,10 @@
(lambda () (lambda ()
(when auto-saved-name (when auto-saved-name
(delete-file auto-saved-name) (delete-file auto-saved-name)
(set! auto-saved-name #f)))])))) (set! auto-saved-name #f)))])
(sequence
(apply super-init args)
(mred:autosave:register-autosave this)))))
(define backup-autosave-edit% (make-backup-autosave-buffer% edit%)) (define backup-autosave-edit% (make-backup-autosave-buffer% edit%))