]> git.lizzy.rs Git - linenoise.git/commitdiff
Add support for HOME and END keys
authorSteve Bennett <steveb@workware.net.au>
Tue, 13 Sep 2011 22:06:58 +0000 (08:06 +1000)
committerSteve Bennett <steveb@workware.net.au>
Tue, 13 Sep 2011 22:58:27 +0000 (08:58 +1000)
Signed-off-by: Steve Bennett <steveb@workware.net.au>
linenoise.c

index 21f7a1ebb3e912aff616a3c29973531ce4fc52a0..e47df34ec4bb6ca71edf23bab18092b1c1d719ad 100644 (file)
@@ -634,6 +634,8 @@ enum {
     SPECIAL_LEFT = -22,
     SPECIAL_RIGHT = -23,
     SPECIAL_DELETE = -24,
+    SPECIAL_HOME = -25,
+    SPECIAL_END = -26,
 };
 
 /**
@@ -669,6 +671,10 @@ static int check_special(int fd)
                 return SPECIAL_RIGHT;
             case 'D':
                 return SPECIAL_LEFT;
+            case 'F':
+                return SPECIAL_END;
+            case 'H':
+                return SPECIAL_HOME;
         }
     }
     if (c == '[' && c2 >= '1' && c2 <= '6') {
@@ -939,6 +945,14 @@ process_char:
                         refreshLine(current->prompt, current);
                     }
                     break;
+                case SPECIAL_HOME:
+                    current->pos = 0;
+                    refreshLine(current->prompt, current);
+                    break;
+                case SPECIAL_END:
+                    current->pos = current->chars;
+                    refreshLine(current->prompt, current);
+                    break;
             }
             }
             break;