Diff for /libaitcli/src/aitcli.c between versions 1.21.2.5 and 1.21.2.10

version 1.21.2.5, 2025/12/24 00:16:40 version 1.21.2.10, 2025/12/25 20:33:41
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 241  bufCHAR(int idx, void * __restrict cli_buffer) Line 240  bufCHAR(int idx, void * __restrict cli_buffer)
 static int  static int
 bufEOLin(int idx, void * __restrict cli_buffer)  bufEOLin(int idx, void * __restrict cli_buffer)
 {  {
           linebuffer_t *buf = cli_buffer;
           int ign __attribute__((unused));
   
         if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY)          if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY)
                 return RETCODE_ERR;                  return RETCODE_ERR;
   
           ign = write(buf->line_out, K_ENTER, 1);
         return RETCODE_EOL;          return RETCODE_EOL;
 }  }
   
Line 565  bufRIGHT(int idx, void * __restrict cli_buffer) Line 568  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 600  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 762  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 1532  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++;

Removed from v.1.21.2.5  
changed lines
  Added in v.1.21.2.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>