summaryrefslogtreecommitdiff
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.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;