Clean up history code

db4
Slava Pestov 2009-01-16 15:22:13 -06:00
parent 4381c8bc58
commit 5f2fd87ce1
1 changed files with 11 additions and 9 deletions
basis/ui/tools/listener/history

View File

@ -9,15 +9,11 @@ TUPLE: history document elements index ;
: <history> ( document -- history )
V{ } clone 0 history boa ;
: history-add ( history -- input )
dup elements>> length 1+ >>index
[ document>> doc-string [ <input> ] [ empty? ] bi ] keep
'[ [ _ elements>> push ] keep ] unless ;
<PRIVATE
: save-history ( history -- )
[ document>> doc-string ] keep
'[ <input> _ [ index>> ] [ elements>> ] bi set-nth ]
unless-empty ;
: save-history ( history -- input )
[ document>> doc-string [ <input> ] [ empty? ] bi ] keep
'[ [ _ [ index>> ] [ elements>> ] bi set-nth ] keep ] unless ;
: update-document ( history -- )
[ [ index>> ] [ elements>> ] bi nth string>> ]
@ -31,12 +27,18 @@ TUPLE: history document elements index ;
: history-recall ( history i -- )
[ [ elements>> empty? ] keep ] dip '[
_
[ save-history ]
[ save-history drop ]
[ _ change-history-index ]
[ update-document ]
tri
] unless ;
PRIVATE>
: history-add ( history -- input )
dup elements>> length 1+ >>index
save-history ;
: history-recall-previous ( history -- )
-1 history-recall ;