(ioq_gets): Support telnet line termination "\r\n". Previously,
string input other than through parse() or getele() failed to strip '\r', which could end up in ship names and such. (getele): Code dealing with '\r' is now redundant, remove. It ceased to work in rev. 1.6 because input filtering replaces '\r' by '?'.
This commit is contained in:
parent
34fe99ee23
commit
95234c8e9f
2 changed files with 5 additions and 5 deletions
|
@ -163,6 +163,9 @@ ioq_gets(struct ioqueue *ioq, s_char *buf, int cc)
|
|||
actual = nbytes;
|
||||
if (actual > cc - 1)
|
||||
actual = cc - 1;
|
||||
/* telnet terminates lines with "\r\n", get rid of \r */
|
||||
if (actual > 0 && buf[actual-1] == '\r')
|
||||
actual--;
|
||||
buf[actual] = '\0';
|
||||
/* remove the newline too */
|
||||
removecc(ioq, nbytes + 1);
|
||||
|
|
|
@ -75,9 +75,7 @@ getele(char *nation, char *buf /* buf is message text */)
|
|||
uprnf(buf);
|
||||
continue;
|
||||
}
|
||||
if (buffer[0] == '.' && ((buffer[1] == 0)
|
||||
|| (buffer[1] == '\n')
|
||||
|| (buffer[1] == '\r')))
|
||||
if (buffer[0] == '.' && buffer[1] == 0)
|
||||
break;
|
||||
len = strlen(buffer);
|
||||
buffer[len++] = '\n';
|
||||
|
@ -101,8 +99,7 @@ getele(char *nation, char *buf /* buf is message text */)
|
|||
static int
|
||||
tilde_escape(s_char *s, s_char c)
|
||||
{
|
||||
if (s[0] == '~' && s[1] == c &&
|
||||
((s[2] == 0) || (s[2] == '\n') || (s[2] == '\r')))
|
||||
if (s[0] == '~' && s[1] == c && s[2] == 0)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue