commit ce3ab8c6a49943ccb640bce7ec7f2f0bc66018c7
parent b358a16b79580f3184a3aa9b7e59c58667720af4
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Mon, 12 Nov 2007 23:37:39 +0000
bugfix for input history (stop adding all those excessive blank entries)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@695 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/lib/sup/textfield.rb b/lib/sup/textfield.rb
@@ -64,7 +64,7 @@ class TextField
case c
when Ncurses::KEY_ENTER # submit!
@value = get_cursed_value
- @history.push @value
+ @history.push @value unless @value =~ /^\s*$/
return false
when Ncurses::KEY_CANCEL # cancel
@value = nil
@@ -108,23 +108,23 @@ class TextField
Ncurses::Form::REQ_END_FIELD
when 11 # ctrl-k
Ncurses::Form::REQ_CLR_EOF
- when Ncurses::KEY_UP
- @i ||= @history.size
- @history[@i] = get_cursed_value
- @i = (@i - 1) % @history.size
- @value = @history[@i]
- set_cursed_value @value
- when Ncurses::KEY_DOWN
- @i ||= @history.size
- @history[@i] = get_cursed_value
- @i = (@i + 1) % @history.size
- @value = @history[@i]
- set_cursed_value @value
+ when Ncurses::KEY_UP, Ncurses::KEY_DOWN
+ unless @history.empty?
+ value = get_cursed_value
+ @i ||= @history.size
+ #Redwood::log "history before #{@history.inspect}"
+ @history[@i] = value #unless value =~ /^\s*$/
+ @i = (@i + (c == Ncurses::KEY_UP ? -1 : 1)) % @history.size
+ @value = @history[@i]
+ #Redwood::log "history after #{@history.inspect}"
+ set_cursed_value @value
+ Ncurses::Form::REQ_END_FIELD
+ end
else
c
end
- Ncurses::Form.form_driver @form, d
+ Ncurses::Form.form_driver @form, d if d
true
end