diff options
author | sabetts <sabetts> | 2003-05-28 22:36:27 +0000 |
---|---|---|
committer | sabetts <sabetts> | 2003-05-28 22:36:27 +0000 |
commit | 99d6bf980b231670ef58d12e082cfd52e0513707 (patch) | |
tree | a9c2d6dbb1810084a42969039b54123816ec15eb /src/editor.c | |
parent | c590e039dac7c9edd4074d8e52f7928e789b5078 (diff) | |
download | ratpoison-99d6bf980b231670ef58d12e082cfd52e0513707.zip |
* src/globals.h (COMPLETION_NEXT): new define
(COMPLETION_PREVIOUS): likewise
* src/editor.c (editor_complete): remove prototype
(editor_complete_prev): new prototype
(editor_complete_next): likewise
(editor_insert): make it a static function. update prototype
(edit_bindings): add editor_complete_prev. replace editor_complete
with editor_complete_next.
(editor_complete): call completions_complete
(editor_complete_next): new function
(editor_complete_prev): likewise
* src/completions.h (completions_next_completion): remove prototype
(completions_update): likewise
(completions_assign): likewise
(completions_complete): new prototype
* src/completions.c (completions_assign): make it a static
function
(completions_update): likewise
(completions_prev_match): new function
(completions_next_match): likewise
(completions_complete): renamed from
completions_next_completion. call completions_next_match and
completions_prev_match.
Diffstat (limited to 'src/editor.c')
-rw-r--r-- | src/editor.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/editor.c b/src/editor.c index eb3e443..a16b497 100644 --- a/src/editor.c +++ b/src/editor.c @@ -28,11 +28,12 @@ static edit_status editor_no_action (rp_input_line *line); static edit_status editor_enter (rp_input_line *line); static edit_status editor_history_previous (rp_input_line *line); static edit_status editor_history_next (rp_input_line *line); -static edit_status editor_complete (rp_input_line *line); static edit_status editor_backward_kill_line (rp_input_line *line); +static edit_status editor_complete_prev (rp_input_line *line); +static edit_status editor_complete_next (rp_input_line *line); /* default edit action */ -edit_status editor_insert (rp_input_line *line, char *keysym_buf); +static edit_status editor_insert (rp_input_line *line, char *keysym_buf); static char *saved_command = NULL; @@ -73,7 +74,8 @@ static edit_binding edit_bindings[] = {{XK_Down, 0}, editor_history_next}, {{XK_Return, 0}, editor_enter}, {{XK_KP_Enter, 0}, editor_enter}, - {{XK_Tab, 0}, editor_complete}, + {{XK_Tab, 0}, editor_complete_next}, + {{XK_ISO_Left_Tab, 0}, editor_complete_prev}, { {0, 0}, 0} }; rp_input_line * @@ -549,7 +551,7 @@ editor_paste_selection (rp_input_line *line) } static edit_status -editor_complete (rp_input_line *line) +editor_complete (rp_input_line *line, int direction) { char *tmp; char *s; @@ -562,7 +564,7 @@ editor_complete (rp_input_line *line) /* We don't need to free s because it's a string from the completion list. */ - s = completions_next_completion (line->compl, tmp); + s = completions_complete (line->compl, tmp, direction); free (tmp); if (s == NULL) @@ -574,3 +576,15 @@ editor_complete (rp_input_line *line) return EDIT_COMPLETE; } + +static edit_status +editor_complete_next (rp_input_line *line) +{ + return editor_complete (line, COMPLETION_NEXT); +} + +static edit_status +editor_complete_prev (rp_input_line *line) +{ + return editor_complete (line, COMPLETION_PREVIOUS); +} |