Clean up history code
							parent
							
								
									4381c8bc58
								
							
						
					
					
						commit
						5f2fd87ce1
					
				| 
						 | 
				
			
			@ -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 ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue