From e57868835a629eb2e55e10e56219770b59c95c60 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Mon, 19 Nov 2007 22:52:19 +0000 Subject: [PATCH] opening a locked teaching language file now works properly svn: r7772 original commit: ac98c07210b1bbe3e4ced080b155f05ceb2c995f --- collects/framework/private/text.ss | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/collects/framework/private/text.ss b/collects/framework/private/text.ss index 23c9c445..98b22993 100644 --- a/collects/framework/private/text.ss +++ b/collects/framework/private/text.ss @@ -880,7 +880,8 @@ WARNING: printf is rebound in the body of the unit to always (define file<%> (interface (editor:file<%> basic<%>) - get-read-write?)) + get-read-write? + while-unlocked)) (define file-mixin (mixin (editor:file<%> basic<%>) (file<%>) @@ -896,6 +897,15 @@ WARNING: printf is rebound in the body of the unit to always #t)]) (set! read-write? can-edit?))) + (define/public (while-unlocked t) + (let ([unlocked? 'unint]) + (dynamic-wind + (λ () + (set! unlocked? read-write?) + (set! read-write? #t)) + (λ () (t)) + (λ () (set! read-write? unlocked?))))) + (define/augment (can-insert? x y) (and read-write? (inner #t can-insert? x y))) (define/augment (can-delete? x y)