|
|
| version 1.21.2.4, 2025/12/24 00:00:53 | version 1.21.2.7, 2025/12/24 00:49:52 |
|---|---|
| Line 505 bufEND(int idx, void * __restrict cli_buffer) | Line 505 bufEND(int idx, void * __restrict cli_buffer) |
| } | } |
| static int | static int |
| bufLEFTin(int idx, void * __restrict cli_buffer) | |
| { | |
| linebuffer_t *buf = cli_buffer; | |
| if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY) | |
| return RETCODE_ERR; | |
| if (buf->line_posin > 0) { | |
| rewindin(buf, 1); | |
| buf->line_posin--; | |
| } | |
| return RETCODE_OK; | |
| } | |
| static int | |
| bufLEFT(int idx, void * __restrict cli_buffer) | bufLEFT(int idx, void * __restrict cli_buffer) |
| { | { |
| linebuffer_t *buf = cli_buffer; | linebuffer_t *buf = cli_buffer; |
| Line 519 bufLEFT(int idx, void * __restrict cli_buffer) | Line 535 bufLEFT(int idx, void * __restrict cli_buffer) |
| } | } |
| static int | static int |
| bufRIGHTin(int idx, void * __restrict cli_buffer) | |
| { | |
| linebuffer_t *buf = cli_buffer; | |
| if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY) | |
| return RETCODE_ERR; | |
| if (buf->line_posin < buf->line_lenin) { | |
| write(buf->line_out, buf->line_input + buf->line_posin, 1); | |
| buf->line_posin++; | |
| } | |
| return RETCODE_OK; | |
| } | |
| static int | |
| bufRIGHT(int idx, void * __restrict cli_buffer) | bufRIGHT(int idx, void * __restrict cli_buffer) |
| { | { |
| linebuffer_t *buf = cli_buffer; | linebuffer_t *buf = cli_buffer; |
| Line 533 bufRIGHT(int idx, void * __restrict cli_buffer) | Line 565 bufRIGHT(int idx, void * __restrict cli_buffer) |
| } | } |
| static int | static int |
| bufDELin(int idx, void * __restrict cli_buffer) | |
| { | |
| linebuffer_t *buf = cli_buffer; | |
| if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY) | |
| return RETCODE_ERR; | |
| if (buf->line_lenin > 0 && buf->line_posin < buf->line_lenin) { | |
| clrscrEOLin(buf); | |
| rewindin(buf, buf->line_lenin); | |
| buf->line_lenin--; | |
| memmove(buf->line_input + buf->line_posin, | |
| buf->line_input + buf->line_posin + 1, | |
| buf->line_lenin - buf->line_posin); | |
| buf->line_input[buf->line_lenin] = 0; | |
| printfEOLin(buf); | |
| rewindin(buf, buf->line_lenin - buf->line_posin); | |
| } | |
| return RETCODE_OK; | |
| } | |
| static int | |
| bufDEL(int idx, void * __restrict cli_buffer) | bufDEL(int idx, void * __restrict cli_buffer) |
| { | { |
| linebuffer_t *buf = cli_buffer; | linebuffer_t *buf = cli_buffer; |
| Line 540 bufDEL(int idx, void * __restrict cli_buffer) | Line 597 bufDEL(int idx, void * __restrict cli_buffer) |
| if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY) | if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY) |
| return RETCODE_ERR; | return RETCODE_ERR; |
| clrscrEOL(buf); | if (buf->line_bol < buf->line_eol && buf->line_eol < buf->line_len) { |
| clrscrEOL(buf); | |
| buf->line_len--; | buf->line_len--; |
| memmove(buf->line_buf + buf->line_eol - buf->line_bol, | memmove(buf->line_buf + buf->line_eol - buf->line_bol, |
| buf->line_buf + buf->line_eol - buf->line_bol + 1, | buf->line_buf + buf->line_eol - buf->line_bol + 1, |
| buf->line_len - buf->line_eol); | buf->line_len - buf->line_eol); |
| buf->line_buf[buf->line_len - 1] = 0; | buf->line_buf[buf->line_len - 1] = 0; |
| printfEOL(buf, buf->line_len - 1, 1); | printfEOL(buf, buf->line_len - 1, 1); |
| printfEOL(buf, -1, 1); | printfEOL(buf, -1, 1); |
| } | |
| return RETCODE_OK; | return RETCODE_OK; |
| } | } |
| Line 1444 cliInit(int fin, int fout, const char *prompt) | Line 1503 cliInit(int fin, int fout, const char *prompt) |
| keys[i].key_len = inkeys[i].key_len = sizeof K_RIGHT - 1; | keys[i].key_len = inkeys[i].key_len = sizeof K_RIGHT - 1; |
| if (cli_buffer->line_prompt) | if (cli_buffer->line_prompt) |
| keys[i].key_func = bufRIGHT; | keys[i].key_func = bufRIGHT; |
| inkeys[i].key_func = bufRIGHTin; | |
| memcpy(keys[i].key_ch, K_RIGHT, keys[i].key_len); | memcpy(keys[i].key_ch, K_RIGHT, keys[i].key_len); |
| memcpy(inkeys[i].key_ch, K_RIGHT, inkeys[i].key_len); | memcpy(inkeys[i].key_ch, K_RIGHT, inkeys[i].key_len); |
| i++; | i++; |
| keys[i].key_len = inkeys[i].key_len = sizeof K_LEFT - 1; | keys[i].key_len = inkeys[i].key_len = sizeof K_LEFT - 1; |
| if (cli_buffer->line_prompt) | if (cli_buffer->line_prompt) |
| keys[i].key_func = bufLEFT; | keys[i].key_func = bufLEFT; |
| inkeys[i].key_func = bufLEFTin; | |
| memcpy(keys[i].key_ch, K_LEFT, keys[i].key_len); | memcpy(keys[i].key_ch, K_LEFT, keys[i].key_len); |
| memcpy(inkeys[i].key_ch, K_LEFT, inkeys[i].key_len); | memcpy(inkeys[i].key_ch, K_LEFT, inkeys[i].key_len); |
| i++; | i++; |
| Line 1463 cliInit(int fin, int fout, const char *prompt) | Line 1524 cliInit(int fin, int fout, const char *prompt) |
| keys[i].key_len = inkeys[i].key_len = sizeof K_INS - 1; | keys[i].key_len = inkeys[i].key_len = sizeof K_INS - 1; |
| if (cli_buffer->line_prompt) | if (cli_buffer->line_prompt) |
| keys[i].key_func = bufMODE; | keys[i].key_func = bufMODE; |
| inkeys[i].key_func = bufMODE; | |
| memcpy(keys[i].key_ch, K_INS, keys[i].key_len); | memcpy(keys[i].key_ch, K_INS, keys[i].key_len); |
| memcpy(inkeys[i].key_ch, K_INS, inkeys[i].key_len); | memcpy(inkeys[i].key_ch, K_INS, inkeys[i].key_len); |
| i++; | i++; |
| keys[i].key_len = inkeys[i].key_len = sizeof K_DEL - 1; | keys[i].key_len = inkeys[i].key_len = sizeof K_DEL - 1; |
| if (cli_buffer->line_prompt) | if (cli_buffer->line_prompt) |
| keys[i].key_func = bufDEL; | keys[i].key_func = bufDEL; |
| inkeys[i].key_func = bufDELin; | |
| memcpy(keys[i].key_ch, K_DEL, keys[i].key_len); | memcpy(keys[i].key_ch, K_DEL, keys[i].key_len); |
| memcpy(inkeys[i].key_ch, K_DEL, inkeys[i].key_len); | memcpy(inkeys[i].key_ch, K_DEL, inkeys[i].key_len); |
| i++; | i++; |