last_patch_124 from Vodz, fix an ash bug when alt-1 was pressed, debian
bug #228915
diff --git a/shell/cmdedit.c b/shell/cmdedit.c
index ec861df..f54d5d5 100644
--- a/shell/cmdedit.c
+++ b/shell/cmdedit.c
@@ -45,6 +45,7 @@
 
 #include "../shell/cmdedit.h"
 
+
 #ifdef CONFIG_LOCALE_SUPPORT
 #define Isprint(c) isprint((c))
 #else
@@ -80,11 +81,7 @@
 #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 @@
 				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 @@
 				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;
 		}