about summary refs log tree commit diff homepage
path: root/client.c
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2017-08-08 21:30:41 -0400
committerJune McEnroe <programble@gmail.com>2017-08-08 21:30:41 -0400
commit35e3f6730a182020bbedf55c96f8aa5adf37722a (patch)
tree6231362d3611ef65532659ced0c094c8f57ebd55 /client.c
parentRemove MADV_NOSYNC (diff)
downloadtorus-35e3f6730a182020bbedf55c96f8aa5adf37722a.tar.gz
torus-35e3f6730a182020bbedf55c96f8aa5adf37722a.zip
Add put mode
This is what replace mode used to do.
Diffstat (limited to '')
-rwxr-xr-xclient.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/client.c b/client.c
index 2c95468..8761f04 100755
--- a/client.c
+++ b/client.c
@@ -74,6 +74,7 @@ static enum {
     MODE_NORMAL,
     MODE_INSERT,
     MODE_REPLACE,
+    MODE_PUT,
     MODE_DRAW,
 } mode;
 static struct {
@@ -148,6 +149,12 @@ static void readInput(void) {
         return;
     }
 
+    if (mode == MODE_PUT) {
+        if (isprint(c)) clientPut(inputColor, c);
+        mode = MODE_NORMAL;
+        return;
+    }
+
     if (mode == MODE_DRAW && !drawChar) {
         if (c == ESC) mode = MODE_NORMAL;
         if (isprint(c)) {
@@ -166,6 +173,7 @@ static void readInput(void) {
         case 'i': insertMode(1, 0); break;
         case 'I': insertMode(0, 0); break;
         case 'r': mode = MODE_REPLACE; break;
+        case 'p': mode = MODE_PUT; break;
         case 'R': mode = MODE_DRAW; drawChar = 0; break;
         case 'x': clientPut(CH_COLOR(inch()), ' '); break;