|
|
| version 1.21.2.5, 2025/12/24 00:16:40 | version 1.21.2.9, 2025/12/25 20:24:32 |
|---|---|
| Line 197 bufCHARin(int idx, void * __restrict cli_buffer) | Line 197 bufCHARin(int idx, void * __restrict cli_buffer) |
| memcpy(buf->line_input + pos, buf->line_inkeys[idx].key_ch, buf->line_inkeys[idx].key_len); | memcpy(buf->line_input + pos, buf->line_inkeys[idx].key_ch, buf->line_inkeys[idx].key_len); |
| buf->line_input[buf->line_lenin] = 0; | buf->line_input[buf->line_lenin] = 0; |
| if (buf->line_mode == LINEMODE_INS) { | rewindin(buf, buf->line_posin - buf->line_inkeys[idx].key_len); |
| rewindin(buf, buf->line_posin - buf->line_inkeys[idx].key_len); | printfEOLin(buf); |
| printfEOLin(buf); | rewindin(buf, buf->line_lenin - buf->line_posin); |
| rewindin(buf, buf->line_lenin - buf->line_posin); | |
| } | |
| return RETCODE_OK; | return RETCODE_OK; |
| } | } |
| Line 565 bufRIGHT(int idx, void * __restrict cli_buffer) | Line 564 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 596 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 732 cli_Printf(linebuffer_t * __restrict cli_buffer, char | Line 758 cli_Printf(linebuffer_t * __restrict cli_buffer, char |
| { | { |
| va_list lst; | va_list lst; |
| FILE *f; | FILE *f; |
| int fd; | |
| if (fmt) { | if (fmt) { |
| f = fdopen(dup(cli_buffer->line_out), "a"); | if ((fd = dup(cli_buffer->line_out)) == -1) { |
| LOGERR; | |
| return; | |
| } | |
| f = fdopen(fd, "a"); | |
| if (!f) { | if (!f) { |
| LOGERR; | LOGERR; |
| return; | return; |
| Line 1497 cliInit(int fin, int fout, const char *prompt) | Line 1528 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++; |