|
|
| version 1.21.2.5, 2025/12/24 00:16:40 | version 1.21.2.7, 2025/12/24 00:49:52 |
|---|---|
| Line 565 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 572 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 1497 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++; |