about summary refs log tree commit diff
path: root/Src/Zle
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2003-05-14 15:09:14 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2003-05-14 15:09:14 +0000
commit62719196b27496c3cc4ff97a92fc03627b1bab38 (patch)
treee3d8dbd8126d1717a09272c0fcbf1125ecc4b975 /Src/Zle
parent2b744cb21d87de89495d2e66843946008c98f556 (diff)
downloadzsh-62719196b27496c3cc4ff97a92fc03627b1bab38.tar.gz
zsh-62719196b27496c3cc4ff97a92fc03627b1bab38.tar.xz
zsh-62719196b27496c3cc4ff97a92fc03627b1bab38.zip
18536: EMACS and VI compatibility options
Diffstat (limited to 'Src/Zle')
-rw-r--r--Src/Zle/zle_keymap.c10
-rw-r--r--Src/Zle/zle_main.c2
2 files changed, 12 insertions, 0 deletions
diff --git a/Src/Zle/zle_keymap.c b/Src/Zle/zle_keymap.c
index c36657697..3a06bb632 100644
--- a/Src/Zle/zle_keymap.c
+++ b/Src/Zle/zle_keymap.c
@@ -1370,3 +1370,13 @@ getkeycmd(void)
 	func = lastnamed;
     return func;
 }
+
+/**/
+mod_export void
+zlesetkeymap(int mode)
+{
+    Keymap km = openkeymap((mode == VIMODE) ? "viins" : "emacs");
+    if (!km)
+	return;
+    linkkeymap(km, "main", 0);
+}
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c
index a8c97ba1b..1f2f07a09 100644
--- a/Src/Zle/zle_main.c
+++ b/Src/Zle/zle_main.c
@@ -1363,6 +1363,7 @@ setup_(Module m)
     refreshptr = zrefresh;
     spaceinlineptr = spaceinline;
     zlereadptr = zleread;
+    zlesetkeymapptr = zlesetkeymap;
 
     getkeyptr = getkey;
 
@@ -1446,6 +1447,7 @@ finish_(Module m)
     refreshptr = noop_function;
     spaceinlineptr = noop_function_int;
     zlereadptr = fallback_zleread;
+    zlesetkeymapptr= noop_function_int;
 
     getkeyptr = NULL;