From fe80d5aa9da07db081fd15574e0002e7134ad403 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Fri, 11 Oct 2019 20:59:22 +0530 Subject: [PATCH] Update key collision detection --- README.md | 1 + misc/auto-completion/bash/nnn-completion.bash | 1 + misc/auto-completion/fish/nnn.fish | 1 + misc/auto-completion/zsh/_nnn | 1 + src/nnn.c | 20 +++++++++---------- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0de6ab81..cf762f09 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,7 @@ optional args: -f run filter as cmd on prompt key -H show hidden files -i nav-as-you-type mode + -K detect key collision -n version sort -o open files on Enter -p file selection file [stdout if '-'] diff --git a/misc/auto-completion/bash/nnn-completion.bash b/misc/auto-completion/bash/nnn-completion.bash index e8bdbd0a..d97b1449 100644 --- a/misc/auto-completion/bash/nnn-completion.bash +++ b/misc/auto-completion/bash/nnn-completion.bash @@ -18,6 +18,7 @@ _nnn () { -f -H -i + -K -n -o -p diff --git a/misc/auto-completion/fish/nnn.fish b/misc/auto-completion/fish/nnn.fish index 336b7b75..ee3768a4 100644 --- a/misc/auto-completion/fish/nnn.fish +++ b/misc/auto-completion/fish/nnn.fish @@ -12,6 +12,7 @@ complete -c nnn -s d -d 'start in detail mode' complete -c nnn -s f -d 'run filter as cmd on prompt key' complete -c nnn -s H -d 'show hidden files' complete -c nnn -s i -d 'start in navigate-as-you-type mode' +complete -c nnn -s K -d 'detect key collision' complete -c nnn -s n -d 'use version compare to sort files' complete -c nnn -s o -d 'open files only on Enter' complete -c nnn -s p -r -d 'copy selection to file' diff --git a/misc/auto-completion/zsh/_nnn b/misc/auto-completion/zsh/_nnn index 4e180c37..b5ec1d11 100644 --- a/misc/auto-completion/zsh/_nnn +++ b/misc/auto-completion/zsh/_nnn @@ -16,6 +16,7 @@ args=( '(-f)-d[run filter as cmd on prompt key]' '(-H)-H[show hidden files]' '(-i)-i[start in navigate-as-you-type mode]' + '(-K)-K[detect key collision]' '(-n)-n[use version compare to sort files]' '(-o)-o[open files only on Enter]' '(-p)-p[copy selection to file]:file name' diff --git a/src/nnn.c b/src/nnn.c index 9509661a..dc5544f1 100644 --- a/src/nnn.c +++ b/src/nnn.c @@ -4671,19 +4671,19 @@ nochange: } } -static void check_keybinding_collision(void) +static void check_key_collision(void) { - unsigned long i; + int key; + uint i = 0; bool bitmap[KEY_MAX] = {FALSE}; - for (i = 0; i < sizeof(bindings) / sizeof(struct key); ++i) { - int curr_sym = bindings[i].sym; + for (; i < sizeof(bindings) / sizeof(struct key); ++i) { + key = bindings[i].sym; - if (bitmap[curr_sym]) - fprintf(stdout, - "Collision of key %s detected\n", keyname(curr_sym)); + if (bitmap[key]) + fprintf(stdout, "collision detected: key [%s]\n", keyname(key)); else - bitmap[curr_sym] = TRUE; + bitmap[key] = TRUE; } } @@ -4701,8 +4701,8 @@ static void usage(void) " -d detail mode\n" " -f run filter as cmd on prompt key\n" " -H show hidden files\n" - " -K test for keybinding collision\n" " -i nav-as-you-type mode\n" + " -K detect key collision\n" " -n version sort\n" " -o open files on Enter\n" " -p file selection file [stdout if '-']\n" @@ -4909,7 +4909,7 @@ int main(int argc, char *argv[]) cfg.autoselect = 0; break; case 'K': - check_keybinding_collision(); + check_key_collision(); return _SUCCESS; case 'v': fprintf(stdout, "%s\n", VERSION);