From 86d7553b9caa22ed27e1e4580dcd6807adafc2f6 Mon Sep 17 00:00:00 2001 From: slava Date: Mon, 18 Dec 2006 03:15:04 +0000 Subject: [PATCH] Fix interactor-busy? handling --- TODO.txt | 2 +- core/ui/text/interactor.factor | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/TODO.txt b/TODO.txt index 6c0e9b85c0..1252cf948d 100644 --- a/TODO.txt +++ b/TODO.txt @@ -27,7 +27,7 @@ - inspector where slot values can be changed - compiled call traces: - should be independent of whenever the runtime was built with - -fomit-frame-pointer or not (ppc and amd64) + -fomit-frame-pointer on ppc - we don't know if signal handlers run with the same stack or not - use crc32 instead of modification date in reload-modules - models: don't do redundant work diff --git a/core/ui/text/interactor.factor b/core/ui/text/interactor.factor index 27b537adcb..bd3393ce37 100644 --- a/core/ui/text/interactor.factor +++ b/core/ui/text/interactor.factor @@ -32,12 +32,16 @@ M: interactor graft* : add-interactor-history ( str interactor -- ) over empty? [ 2drop ] [ interactor-history push-new ] if ; +: interactor-continue ( obj interactor -- ) + t over set-interactor-busy? + interactor-continuation schedule-thread-with ; + : interactor-finish ( obj interactor -- ) [ editor-string ] keep [ interactor-input. ] 2keep [ add-interactor-history ] keep dup control-model clear-doc - interactor-continuation continue-with ; + interactor-continue ; : interactor-eval ( interactor -- ) [ @@ -61,8 +65,7 @@ M: interactor stream-readln ] interactor-yield ; : interactor-call ( quot interactor -- ) - 2dup interactor-input. - interactor-continuation schedule-thread-with ; + 2dup interactor-input. interactor-continue ; M: interactor stream-read swap dup zero?