linenoise updated
This commit is contained in:
parent
4a67d194e9
commit
802fd01b7c
15
deps/linenoise/linenoise.c
vendored
15
deps/linenoise/linenoise.c
vendored
@ -320,10 +320,9 @@ static int linenoisePrompt(int fd, char *buf, size_t buflen, const char *prompt)
|
|||||||
|
|
||||||
switch(c) {
|
switch(c) {
|
||||||
case 13: /* enter */
|
case 13: /* enter */
|
||||||
case 4: /* ctrl-d */
|
|
||||||
history_len--;
|
history_len--;
|
||||||
free(history[history_len]);
|
free(history[history_len]);
|
||||||
return (len == 0 && c == 4) ? -1 : (int)len;
|
return (int)len;
|
||||||
case 3: /* ctrl-c */
|
case 3: /* ctrl-c */
|
||||||
errno = EAGAIN;
|
errno = EAGAIN;
|
||||||
return -1;
|
return -1;
|
||||||
@ -337,6 +336,18 @@ static int linenoisePrompt(int fd, char *buf, size_t buflen, const char *prompt)
|
|||||||
refreshLine(fd,prompt,buf,len,pos,cols);
|
refreshLine(fd,prompt,buf,len,pos,cols);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 4: /* ctrl-d, remove char at right of cursor */
|
||||||
|
if (len > 1 && pos < (len-1)) {
|
||||||
|
memmove(buf+pos,buf+pos+1,len-pos);
|
||||||
|
len--;
|
||||||
|
buf[len] = '\0';
|
||||||
|
refreshLine(fd,prompt,buf,len,pos,cols);
|
||||||
|
} else if (len == 0) {
|
||||||
|
history_len--;
|
||||||
|
free(history[history_len]);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 20: /* ctrl-t */
|
case 20: /* ctrl-t */
|
||||||
if (pos > 0 && pos < len) {
|
if (pos > 0 && pos < len) {
|
||||||
int aux = buf[pos-1];
|
int aux = buf[pos-1];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user