]> git.wh0rd.org Git - nano.git/commitdiff
handle NANO_CONTROL_8 even better by doing it in parse_kbinput()
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 28 Apr 2006 19:27:41 +0000 (19:27 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 28 Apr 2006 19:27:41 +0000 (19:27 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3452 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c
src/prompt.c
src/winio.c

index 2eaf100fea4418f5b27ca3ce3cc05e48b95d8e59..9e7f2a95a70dada17f498b4ab6a7f8b1ac20273d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -133,16 +133,10 @@ CVS code -
 - nano.c:
   renumber()
        - Remove invalid assert. (DLR, found by Filipe Moreira)
-  do_input()
-       - If we get NANO_CONTROL_8, handle it instead of ignoring it,
-         for consistency. (DLR)
 - nano.h:
        - Reorder the toggle #defines to match their corresponding order
          in toggle_init(). (DLR)
 - prompt.c:
-  do_statusbar_input()
-       - If we get NANO_CONTROL_8, handle it instead of ignoring it,
-         for consistency. (DLR)
   get_prompt_string()
        - Include the handling of the help key even when help is
          disabled, so that we aren't erroneously kicked out of the
@@ -174,6 +168,9 @@ CVS code -
        - Change all rcfile error messages to refer to commands instead
          of directives, for consistency with nanorc.5. (DLR)
 - winio.c:
+  parse_kbinput()
+       - If we get NANO_CONTROL_8, properly handle it in all cases.
+         (DLR)
   get_control_kbinput()
        - Add Ctrl-/ as an alias for Ctrl-_. (DLR, found by Benno
          Schulenberg)
index a8dc9a04ac66010c9b4e6691f5ce0b43dc401533..02c4c2bf365541e536a292e6bf16457e761465f0 100644 (file)
@@ -1281,20 +1281,15 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
     /* Read in a character. */
     input = get_kbinput(edit, meta_key, func_key);
 
-    if (allow_funcs) {
 #ifndef DISABLE_MOUSE
-       /* If we got a mouse click and it was on a shortcut, read in the
-        * shortcut character. */
-       if (*func_key == TRUE && input == KEY_MOUSE)
-           input = do_mouse() ? get_kbinput(edit, meta_key, func_key) :
+    if (allow_funcs) {
+    /* If we got a mouse click and it was on a shortcut, read in the
+     * shortcut character. */
+    if (allow_funcs && *func_key == TRUE && input == KEY_MOUSE)
+       input = do_mouse() ? get_kbinput(edit, meta_key, func_key) :
                ERR;
-       else
+}
 #endif
-       if (input == NANO_CONTROL_8 && *meta_key == FALSE &&
-               *func_key == FALSE)
-           input = ISSET(REBIND_DELETE) ? NANO_BACKSPACE_KEY :
-               NANO_DELETE_KEY;
-    }
 
     /* Check for a shortcut in the main list. */
     s = get_shortcut(main_list, &input, meta_key, func_key);
index c153d4b5eb7655fc7b8a4a9af4fef39bbd61e98b..15107134621fa50182efb6fecbbf92fba6b5a679 100644 (file)
@@ -68,20 +68,15 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
     /* Read in a character. */
     input = get_kbinput(bottomwin, meta_key, func_key);
 
-    if (allow_funcs) {
 #ifndef DISABLE_MOUSE
-       /* If we got a mouse click and it was on a shortcut, read in the
-        * shortcut character. */
-       if (*func_key == TRUE && input == KEY_MOUSE)
-           input = do_statusbar_mouse() ? get_kbinput(bottomwin,
-               meta_key, func_key) : ERR;
-       else
+    if (allow_funcs) {
+    /* If we got a mouse click and it was on a shortcut, read in the
+     * shortcut character. */
+    if (allow_funcs && *func_key == TRUE && input == KEY_MOUSE)
+       input = do_statusbar_mouse() ? get_kbinput(bottomwin, meta_key,
+               func_key) : ERR;
+}
 #endif
-       if (input == NANO_CONTROL_8 && *meta_key == FALSE &&
-               *func_key == FALSE)
-           input = ISSET(REBIND_DELETE) ? NANO_BACKSPACE_KEY :
-               NANO_DELETE_KEY;
-    }
 
     /* Check for a shortcut in the current list. */
     s = get_shortcut(currshortcut, &input, meta_key, func_key);
index fe1b63f53ad6b497b41f1880a995060bea3e03f8..a627d10443dbd3ec3262f887f2d9ee40a6f1c38a 100644 (file)
@@ -402,10 +402,6 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
            switch (escapes) {
                case 0:
                    switch (*kbinput) {
-                       case NANO_CONTROL_8:
-                           retval = ISSET(REBIND_DELETE) ?
-                               NANO_DELETE_KEY : NANO_BACKSPACE_KEY;
-                           break;
                        case KEY_DOWN:
                            retval = NANO_NEXTLINE_KEY;
                            break;
@@ -647,10 +643,18 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
            }
     }
 
-    /* If we have a result and it's an extended keypad value (i.e, a
-     * value outside of byte range), set func_key to TRUE. */
-    if (retval != ERR)
+    if (retval != ERR) {
+       /* If our result is NANO_CONTROL_8, translate it to either
+        * Backspace or Delete, depending on whether REBIND_DELETE is
+        * TRUE or FALSE. */
+       if (retval == NANO_CONTROL_8)
+           retval = ISSET(REBIND_DELETE) ? NANO_BACKSPACE_KEY :
+               NANO_DELETE_KEY;
+
+       /* If our result is an extended keypad value (i.e, a value
+        * outside of byte range), set func_key to TRUE. */
        *func_key = !is_byte(retval);
+    }
 
 #ifdef DEBUG
     fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %d, func_key = %d, escapes = %d, byte_digits = %d, retval = %d\n", *kbinput, (int)*meta_key, (int)*func_key, escapes, byte_digits, retval);