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;
}