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