]> git.wh0rd.org Git - nano.git/commitdiff
fix breakage
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 24 May 2006 18:10:41 +0000 (18:10 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 24 May 2006 18:10:41 +0000 (18:10 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3556 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

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

index 628e1322f1fc278954f86cde13a74e3e42910ab0..4f4f8c7dbad5c45e0b235ba3dd2af75dc79fc6d5 100644 (file)
@@ -1298,12 +1298,15 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
        );
 
     /* If we got a non-high-bit control key or a meta key sequence, and
-     * it's not a shortcut or toggle, ignore it, and indicate this on
-     * the statusbar. */
+     * it's not a shortcut or toggle, ignore it.  If it's a meta key
+     * sequence, throw it out completely, so that we don't end up
+     * inserting its second character as though it were typed. */
     if (*s_or_t == FALSE) {
        if (is_ascii_cntrl_char(input) || *meta_key == TRUE) {
-           input = ERR;
-           *meta_key = FALSE;
+           if (*meta_key == TRUE) {
+               *meta_key = FALSE;
+               input = ERR;
+           }
            statusbar(_("Unknown Command"));
        }
     }
index 0b3ef52c28c8802f789949d74c49ecdaab6867d2..0fdac60227bb13d711faf4363c7752d6397b382e 100644 (file)
@@ -82,11 +82,11 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
 
     /* If we got a shortcut from the current list, or a "universal"
      * statusbar prompt shortcut, set have_shortcut to TRUE. */
-    have_shortcut = (s != NULL || input == NANO_REFRESH_KEY ||
-       input == NANO_HOME_KEY || input == NANO_END_KEY ||
-       input == NANO_BACK_KEY || input == NANO_FORWARD_KEY ||
-       input == NANO_BACKSPACE_KEY || input == NANO_DELETE_KEY ||
-       input == NANO_CUT_KEY ||
+    have_shortcut = (s != NULL || input == NANO_REFRESH_KEY || input ==
+       NANO_HOME_KEY || input == NANO_END_KEY || input ==
+       NANO_BACK_KEY || input == NANO_FORWARD_KEY || input ==
+       NANO_BACKSPACE_KEY || input == NANO_DELETE_KEY || input ==
+       NANO_CUT_KEY ||
 #ifndef NANO_TINY
        input == NANO_NEXTWORD_KEY ||
 #endif
@@ -100,11 +100,15 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
     *s_or_t = have_shortcut;
 
     /* If we got a non-high-bit control key or a meta key sequence, and
-     * it's not a shortcut or toggle, ignore it. */
+     * it's not a shortcut or toggle, ignore it.  If it's a meta key
+     * sequence, throw it out completely, so that we don't end up
+     * inserting its second character as though it were typed. */
     if (*s_or_t == FALSE) {
        if (is_ascii_cntrl_char(input) || *meta_key == TRUE) {
-           input = ERR;
-           *meta_key = FALSE;
+           if (*meta_key == TRUE) {
+               *meta_key = FALSE;
+               input = ERR;
+           }
        }
     }
 
index df869b559a1158e08e47e55d1861afc788953da5..6f3360efe166522103a4e2879b9cf0f999b8f2e5 100644 (file)
@@ -536,8 +536,8 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key)
                                &ignore_seq);
 
                        /* If the escape sequence is unrecognized and
-                        * not ignored, indicate this on the
-                        * statusbar. */
+                        * not ignored, throw it out completely and
+                        * indicate this on the statusbar. */
                        if (retval == ERR && !ignore_seq)
                            statusbar(_("Unknown Command"));