From: wmorgan Date: Mon, 12 Nov 2007 23:37:39 +0000 (+0000) Subject: bugfix for input history (stop adding all those excessive blank entries) X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=ce3ab8c6a49943ccb640bce7ec7f2f0bc66018c7;p=sup 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 --- diff --git a/lib/sup/textfield.rb b/lib/sup/textfield.rb index c155ea0..f4d7fbb 100644 --- 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