TTY: Treat carriage return as newline

Before this change, more-prompts and input text -prompts could not
be accepted with carriage return. Now, just like in menus, carriage
return is treated the same as a newline.

To test, use 'stty -icrnl'
This commit is contained in:
Pasi Kallinen
2017-11-14 15:57:18 +02:00
parent b4b3dedd59
commit 59d4ac02f7
3 changed files with 5 additions and 6 deletions

View File

@@ -596,6 +596,7 @@ PANICTRACE: PANICTRACE_GDB used wrong value for ARGV0 when launching gdb if
win32gui: gather raw_print error messages into a single dialog window
win32tty: fix display errors when using a font with double wide or ambiguous
width characters
tty: treat carriage return as a newline for input text and more-prompts
General New Features

View File

@@ -129,11 +129,7 @@ getlin_hook_proc hook;
#endif /* NEWAUTOCOMP */
} else
tty_nhbell();
#if defined(apollo)
} else if (c == '\n' || c == '\r') {
#else
} else if (c == '\n') {
#endif
#ifndef NEWAUTOCOMP
*bufp = 0;
#endif /* not NEWAUTOCOMP */
@@ -213,7 +209,7 @@ register const char *s; /* chars allowed besides return */
!program_state.done_hup &&
#endif
(c = tty_nhgetch()) != EOF) {
if (c == '\n')
if (c == '\n' || c == '\r')
break;
if (iflags.cbreak) {
@@ -223,7 +219,7 @@ register const char *s; /* chars allowed besides return */
morc = '\033';
break;
}
if ((s && index(s, c)) || c == x) {
if ((s && index(s, c)) || c == x || (x == '\n' && c == '\r')) {
morc = (char) c;
break;
}

View File

@@ -1167,6 +1167,8 @@ tty_askname()
while ((c = tty_nhgetch()) != '\n') {
if (c == EOF)
c = '\033';
if (c == '\r')
break;
if (c == '\033') {
ct = 0;
break;