last_patch_124 from Vodz, fix an ash bug when alt-1 was pressed, debian
authorGlenn L McGrath <bug1@ihug.co.nz>
Thu, 22 Jan 2004 12:42:23 +0000 (12:42 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Thu, 22 Jan 2004 12:42:23 +0000 (12:42 -0000)
bug #228915

shell/cmdedit.c

index ec861df54684bb0fa93913fa0954c32700aaf629..f54d5d587b37e23974b3bc8cb9662f4a485dc3c1 100644 (file)
@@ -45,6 +45,7 @@
 
 #include "../shell/cmdedit.h"
 
+
 #ifdef CONFIG_LOCALE_SUPPORT
 #define Isprint(c) isprint((c))
 #else
 #endif
 
 #ifdef CONFIG_FEATURE_GETUSERNAME_AND_HOMEDIR
-#       ifndef TEST
-#               include "pwd_.h"
-#       else
-#               include <pwd.h>
-#       endif  /* TEST */
+#include "pwd_.h"
 #endif                                                  /* advanced FEATURES */
 
 
@@ -1377,6 +1374,14 @@ prepare_to_die:
                                if (safe_read(0, &c, 1) < 1)
                                        goto prepare_to_die;
                        }
+                       if (c >= '1' && c <= '9') {
+                               unsigned char dummy;
+
+                               if (safe_read(0, &dummy, 1) < 1)
+                                       goto prepare_to_die;
+                               if(dummy != '~')
+                                       c = 0;
+                       }
                        switch (c) {
 #ifdef CONFIG_FEATURE_COMMAND_TAB_COMPLETION
                        case '\t':                      /* Alt-Tab */
@@ -1429,15 +1434,9 @@ rewrite_line:
                                input_end();
                                break;
                        default:
-                               if (!(c >= '1' && c <= '9'))
-                                       c = 0;
+                               c = 0;
                                beep();
                        }
-                       if (c >= '1' && c <= '9')
-                               do
-                                       if (safe_read(0, &c, 1) < 1)
-                                               goto prepare_to_die;
-                               while (c != '~');
                        break;
                }