ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/package/utils/busybox/patches/601-fix_termios_configuration_missing.patch b/package/utils/busybox/patches/601-fix_termios_configuration_missing.patch
new file mode 100644
index 0000000..9f2d9b6
--- /dev/null
+++ b/package/utils/busybox/patches/601-fix_termios_configuration_missing.patch
@@ -0,0 +1,27 @@
+--- a/libbb/lineedit.c
++++ b/libbb/lineedit.c
+@@ -2467,6 +2467,7 @@ int FAST_FUNC read_line_input(line_input
+ #endif
+ 	struct termios initial_settings;
+ 	struct termios new_settings;
++	struct termios tmp_settings;
+ 	char read_key_buffer[KEYCODE_BUFFER_SIZE];
+ 
+ 	INIT_S();
+@@ -3006,7 +3007,15 @@ int FAST_FUNC read_line_input(line_input
+ #endif
+ 
+ 	/* restore initial_settings */
+-	tcsetattr_stdin_TCSANOW(&initial_settings);
++	if (tcgetattr(STDIN_FILENO, &tmp_settings) < 0){
++		tcsetattr_stdin_TCSANOW(&initial_settings);
++	}else{
++		tmp_settings.c_lflag |= (ICANON | ECHO | ECHONL | ISIG);
++		tmp_settings.c_cc[VMIN] = initial_settings.c_cc[VMIN];
++		tmp_settings.c_cc[VTIME] = initial_settings.c_cc[VTIME];
++		tcsetattr_stdin_TCSANOW(&tmp_settings);
++	}
++
+ #if ENABLE_FEATURE_EDITING_WINCH
+ 	/* restore SIGWINCH handler */
+ 	sigaction_set(SIGWINCH, &S.SIGWINCH_handler);