diff --git a/basis/ui/tools/listener/history/history-tests.factor b/basis/ui/tools/listener/history/history-tests.factor index 5a2e3cf1b5..068673889a 100644 --- a/basis/ui/tools/listener/history/history-tests.factor +++ b/basis/ui/tools/listener/history/history-tests.factor @@ -52,3 +52,16 @@ IN: ui.tools.listener.history.tests [ ] [ "h" get history-recall-previous ] unit-test [ "22" ] [ "d" get doc-string ] unit-test + +[ ] [ "d" set ] unit-test +[ ] [ "d" get "h" set ] unit-test + +[ ] [ "aaa" "d" get set-doc-string ] unit-test +[ T{ input f "aaa" } ] [ "h" get history-add ] unit-test + +[ ] [ "" "d" get set-doc-string ] unit-test +[ T{ input f "" } ] [ "h" get history-add ] unit-test +[ T{ input f "" } ] [ "h" get history-add ] unit-test +[ ] [ " " "d" get set-doc-string ] unit-test +[ ] [ "h" get history-recall-previous ] unit-test + diff --git a/basis/ui/tools/listener/history/history.factor b/basis/ui/tools/listener/history/history.factor index 333347dbac..5e03ab21ad 100644 --- a/basis/ui/tools/listener/history/history.factor +++ b/basis/ui/tools/listener/history/history.factor @@ -16,9 +16,15 @@ TUPLE: history document elements index ; [ + [ [ T{ input f "" } ] dip push ] keep + (save-history) + ] [ set-nth ] if ; + : save-history ( history -- ) [ document>> doc-string ] keep - '[ _ [ index>> ] [ elements>> ] bi set-nth ] + '[ _ [ index>> ] [ elements>> ] bi (save-history) ] unless-empty ; : update-document ( history -- )