]> git.wh0rd.org Git - nano.git/commitdiff
2014-03-04 Chris Allegretta <chrisa@asty.org>
authorChris Allegretta <chrisa@asty.org>
Wed, 5 Mar 2014 04:30:07 +0000 (04:30 +0000)
committerChris Allegretta <chrisa@asty.org>
Wed, 5 Mar 2014 04:30:07 +0000 (04:30 +0000)
        * global.c (first_sc_for) - Return raw keystrokes last, so
          they will not be displayed if there are F-key or Meta keys
          mapped for an item in the shortcut list.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4642 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/global.c

index 73b9b61f23f1e26ff44634428434635a3ac4c552..4bb9ec1e0ee0a8de9381791ad1bae93fd4522cea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-04 Chris Allegretta <chrisa@asty.org>
+       * global.c (first_sc_for) - Return raw keystrokes last, so
+         they will not be displayed if there are F-key or Meta keys
+         mapped for an item in the shortcut list.
+
 2014-03-04  Benno Schulenberg  <bensberg@justemail.net>
        * doc/syntax/nanorc.nanorc - Add keyword 'quiet', sort 'locking',
        and concatenate the two separate strings into one.
index ca0e503d4df3ddf11db1089beedab9c4e525b397..543b2c826c21589dee03ef1b2711ae6fa04f0e51 100644 (file)
@@ -313,6 +313,7 @@ const sc *first_sc_for(int menu, void (*func)(void))
     const sc *s;
     const sc *fkeysc = NULL;
     const sc *metasc = NULL;
+    const sc *rawsc = NULL;
 
     for (s = sclist; s != NULL; s = s->next) {
        if ((s->menu & menu) && s->scfunc == func) {
@@ -329,6 +330,10 @@ const sc *first_sc_for(int menu, void (*func)(void))
                if (!metasc)
                    metasc = s;
                continue;
+           } else if (s->type == RAWINPUT) {
+               if (!rawsc)
+                   rawsc = s;
+               continue;
            }
 
            /* Otherwise, it was something else, so use it. */
@@ -339,11 +344,14 @@ const sc *first_sc_for(int menu, void (*func)(void))
     /* If we're here, we may have found only function keys or meta
      * sequences.  If so, use one, with the same priority as in the
      * help browser: function keys come first, unless meta sequences are
-     * available, in which case meta sequences come first. */
+     * available, in which case meta sequences come first. Last choice
+     * is the raw key. */
     if (fkeysc && !metasc)
        return fkeysc;
     else if (metasc)
        return metasc;
+    else if (rawsc)
+       return rawsc;
 
 #ifdef DEBUG
     fprintf(stderr, "Whoops, returning null given func %ld in menu %d\n", (long) func, menu);