Jacob points out that TS_EOL is broken in BINARY mode.
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 6 Mar 2003 13:25:48 +0000 (13:25 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Thu, 6 Mar 2003 13:25:48 +0000 (13:25 +0000)
git-svn-id: svn://svn.tartarus.org/sgt/putty@2915 cda61777-01e9-0310-a592-d414129be87e

telnet.c

index c45f20f..c0efd71 100644 (file)
--- a/telnet.c
+++ b/telnet.c
@@ -928,9 +928,10 @@ static void telnet_special(void *handle, Telnet_Special code)
        telnet->bufsize = sk_write(telnet->s, (char *)b, 2);
        break;
       case TS_EOL:
-       /* In BINARY mode, CR-LF becomes just CR. */
+       /* In BINARY mode, CR-LF becomes just CR -
+        * and without the NUL suffix too. */
        if (telnet->opt_states[o_we_bin.index] == ACTIVE)
-           telnet->bufsize = sk_write(telnet->s, "\r", 2);
+           telnet->bufsize = sk_write(telnet->s, "\r", 1);
        else
            telnet->bufsize = sk_write(telnet->s, "\r\n", 2);
        break;