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?