diff options
Diffstat (limited to 'Src')
-rw-r--r-- | Src/options.c | 1 | ||||
-rw-r--r-- | Src/utils.c | 19 | ||||
-rw-r--r-- | Src/zsh.h | 1 |
3 files changed, 20 insertions, 1 deletions
diff --git a/Src/options.c b/Src/options.c index c68d58986..9125a2380 100644 --- a/Src/options.c +++ b/Src/options.c @@ -210,6 +210,7 @@ static struct optname optns[] = { {NULL, "promptvars", OPT_ALIAS, /* bash */ PROMPTSUBST}, {NULL, "stdin", OPT_ALIAS, /* ksh */ SHINSTDIN}, {NULL, "trackall", OPT_ALIAS, /* ksh */ HASHCMDS}, +{NULL, "dvorak", 0, DVORAK}, {NULL, NULL, 0, 0} }; diff --git a/Src/utils.c b/Src/utils.c index 416d0aeaf..e109d8ba5 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -2127,7 +2127,7 @@ static int spdist(char *s, char *t, int thresh) { char *p, *q; - char *keymap = + const char qwertykeymap[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ \t1234567890-=\t\ \tqwertyuiop[]\t\ @@ -2139,6 +2139,23 @@ spdist(char *s, char *t, int thresh) \tASDFGHJKL:\"\n\t\ \tZXCVBNM<>?\n\n\t\ \n\n\n\n\n\n\n\n\n\n\n\n\n\n"; + const char dvorakkeymap[] = + "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ +\t1234567890[]\t\ +\t',.pyfgcrl/=\t\ +\taoeuidhtns-\n\t\ +\t;qjkxbmwvz\t\t\t\ +\n\n\n\n\n\n\n\n\n\n\n\n\n\n\ +\t!@#$%^&*(){}\t\ +\t\"<>PYFGCRL?+\t\ +\tAOEUIDHTNS_\n\t\ +\t:QJKXBMWVZ\n\n\t\ +\n\n\n\n\n\n\n\n\n\n\n\n\n\n"; + const char *keymap; + if ( isset( DVORAK ) ) + keymap = dvorakkeymap; + else + keymap = qwertykeymap; if (!strcmp(s, t)) return 0; diff --git a/Src/zsh.h b/Src/zsh.h index 585e94e59..dec00c9e7 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1431,6 +1431,7 @@ enum { VERBOSE, XTRACE, USEZLE, + DVORAK, OPT_SIZE }; |