Commit 802fd01b authored by antirez's avatar antirez
Browse files

linenoise updated

parent 4a67d194
...@@ -320,10 +320,9 @@ static int linenoisePrompt(int fd, char *buf, size_t buflen, const char *prompt) ...@@ -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) ...@@ -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];
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment