]> Sergey Matveev's repositories - nnn.git/commitdiff
Update key collision detection
authorArun Prakash Jana <engineerarun@gmail.com>
Fri, 11 Oct 2019 15:29:22 +0000 (20:59 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Fri, 11 Oct 2019 15:29:22 +0000 (20:59 +0530)
README.md
misc/auto-completion/bash/nnn-completion.bash
misc/auto-completion/fish/nnn.fish
misc/auto-completion/zsh/_nnn
src/nnn.c

index 0de6ab8165eedf91586d156e3340416cc1c113bb..cf762f096ad1c3909aa167138fed45f001e5f1f4 100644 (file)
--- 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 '-']
index e8bdbd0a0e1ca6e032d98f5a8f270ce651bd3a4d..d97b14497132339062380de2c55af5cd5edd6949 100644 (file)
@@ -18,6 +18,7 @@ _nnn () {
         -f
         -H
         -i
+        -K
         -n
         -o
         -p
index 336b7b75a8a7b8156a16304ef194d86217219d99..ee3768a4268b5d51091237cf7ef6f46ecba74002 100644 (file)
@@ -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'
index 4e180c3784d8135eaa227775e6c687afb91eb8ff..b5ec1d1173034cfe026a3cce8731eb19600b080e 100644 (file)
@@ -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'
index 9509661a67975410ecea5eb64593fb0d582dbb59..dc5544f128ac188443275e1f111ac14bd52ceaf3 100644 (file)
--- 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);