X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=src%2Flib%2Fcmdline_rdline.c;h=5783d6598064b0740601a797c35e10ab24d4fcdc;hb=504b523d94543a7bb7301a3b1bfe929aabf7fb36;hp=38b0773393ea4329e84ac56f87f639f8fff2c20c;hpb=5c57162aad1d3505e45e800a229aa03dd1496050;p=libcmdline.git diff --git a/src/lib/cmdline_rdline.c b/src/lib/cmdline_rdline.c index 38b0773..5783d65 100644 --- a/src/lib/cmdline_rdline.c +++ b/src/lib/cmdline_rdline.c @@ -212,10 +212,10 @@ rdline_char_in(struct rdline *rdl, char c) return RDLINE_RES_NOT_RUNNING; cmd = vt100_parser(&rdl->vt100, c); - if (cmd == -2) + if (cmd == VT100_NOT_COMPLETE) return RDLINE_RES_SUCCESS; - if (cmd >= 0) { + if (cmd != VT100_STD_CHAR) { switch (cmd) { case CMDLINE_KEY_CTRL_B: case CMDLINE_KEY_LEFT_ARR: @@ -279,6 +279,7 @@ rdline_char_in(struct rdline *rdl, char c) break; case CMDLINE_KEY_META_BKSPACE: + case CMDLINE_KEY_CTRL_W: while (! CIRBUF_IS_EMPTY(&rdl->left) && isblank2(cirbuf_get_tail(&rdl->left))) { rdline_puts(rdl, vt100_bs); cirbuf_del_tail(&rdl->left); @@ -290,6 +291,14 @@ rdline_char_in(struct rdline *rdl, char c) display_right_buffer(rdl, 1); break; + case CMDLINE_KEY_META_D: + while (! CIRBUF_IS_EMPTY(&rdl->right) && isblank2(cirbuf_get_head(&rdl->right))) + cirbuf_del_head(&rdl->right); + while (! CIRBUF_IS_EMPTY(&rdl->right) && !isblank2(cirbuf_get_head(&rdl->right))) + cirbuf_del_head(&rdl->right); + display_right_buffer(rdl, 1); + break; + case CMDLINE_KEY_SUPPR: case CMDLINE_KEY_CTRL_D: if (cmd == CMDLINE_KEY_CTRL_D && @@ -430,6 +439,7 @@ rdline_char_in(struct rdline *rdl, char c) #ifndef NO_RDLINE_HISTORY case CMDLINE_KEY_UP_ARR: + case CMDLINE_KEY_CTRL_P: if (rdl->history_cur_line == 0) { rdline_remove_first_history_item(rdl); } @@ -451,6 +461,7 @@ rdline_char_in(struct rdline *rdl, char c) break; case CMDLINE_KEY_DOWN_ARR: + case CMDLINE_KEY_CTRL_N: if (rdl->history_cur_line - 1 < 0) break;