Commit 7f4de3818139fe0365483b726948a00eefc17705

antirez 2010-03-21T11:10:54

Ctrl+a and Ctrl+e support

diff --git a/linenoise.c b/linenoise.c
index 47ff562..aebe398 100644
--- a/linenoise.c
+++ b/linenoise.c
@@ -259,16 +259,24 @@ static int linenoisePrompt(int fd, char *buf, size_t buflen, char *prompt) {
                 }
             }
             break;
-        case 21: /* Ctrl+U, delete the whole line. */
+        case 21: /* Ctrl+u, delete the whole line. */
             buf[0] = '\0';
             pos = len = 0;
             refreshLine(fd,prompt,buf,len,pos,cols);
             break;
-        case 11: /* Ctrl+K, delete from current to end of line. */
+        case 11: /* Ctrl+k, delete from current to end of line. */
             buf[pos] = '\0';
             len = pos;
             refreshLine(fd,prompt,buf,len,pos,cols);
             break;
+        case 1: /* Ctrl+a, go to the start of the line */
+            pos = 0;
+            refreshLine(fd,prompt,buf,len,pos,cols);
+            break;
+        case 5: /* ctrl+e, go to the end of the line */
+            pos = len;
+            refreshLine(fd,prompt,buf,len,pos,cols);
+            break;
         }
     }
     return len;