lib/sup/textfield.rb in sup-0.9 vs lib/sup/textfield.rb in sup-0.9.1

- old
+ new

@@ -100,16 +100,25 @@ Ncurses::Form::REQ_NEXT_CHAR when Ncurses::KEY_DC Ncurses::Form::REQ_DEL_CHAR when Ncurses::KEY_BACKSPACE, 127 # 127 is also a backspace keysym Ncurses::Form::REQ_DEL_PREV - when 1 #ctrl-a + when ?\C-a + nop Ncurses::Form::REQ_BEG_FIELD - when 5 #ctrl-e + when ?\C-e Ncurses::Form::REQ_END_FIELD - when 11 # ctrl-k + when ?\C-k Ncurses::Form::REQ_CLR_EOF + when ?\C-u + set_cursed_value cursed_value_after_point + Ncurses::Form.form_driver @form, Ncurses::Form::REQ_END_FIELD + nop + Ncurses::Form::REQ_BEG_FIELD + when ?\C-w + Ncurses::Form.form_driver @form, Ncurses::Form::REQ_PREV_CHAR + Ncurses::Form.form_driver @form, Ncurses::Form::REQ_DEL_WORD when Ncurses::KEY_UP, Ncurses::KEY_DOWN unless @history.empty? value = get_cursed_value @i ||= @history.size #debug "history before #{@history.inspect}" @@ -153,8 +162,20 @@ end end def set_cursed_value v @field.set_field_buffer 0, v + end + + def cursed_value_after_point + point = Ncurses.curx - @question.length + get_cursed_value[point..-1] + end + + ## this is almost certainly unnecessary, but it's the only way + ## i could get ncurses to remember my form's value + def nop + Ncurses::Form.form_driver @form, " "[0] + Ncurses::Form.form_driver @form, Ncurses::Form::REQ_DEL_PREV end end end