From 8b0085791954dc96a909d49d3611c049a96b5c21 Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Wed, 22 Apr 2020 19:54:54 +0000 Subject: [PATCH] Record the reported rows from NAWS negotiation In preparation for future pagination support, get the rows included in NAWS responses and record that as an integer in the User.rows attribute, similar to the existing User.columns value used for line wrapping. --- mudpy/misc.py | 1 + mudpy/telnet.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/mudpy/misc.py b/mudpy/misc.py index 0543aa1..074f538 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -501,6 +501,7 @@ class User: self.output_queue = [] self.partial_input = b"" self.password_tries = 0 + self.rows = 23 self.state = "telopt_negotiation" self.telopts = {} self.ttype = None diff --git a/mudpy/telnet.py b/mudpy/telnet.py index 35fb1c6..73331b9 100644 --- a/mudpy/telnet.py +++ b/mudpy/telnet.py @@ -269,6 +269,8 @@ def negotiate_telnet_options(user): if telopt is TELOPT_NAWS: user.columns = ( text[position + 3] * 256 + text[position + 4]) + user.rows = ( + text[position + 5] * 256 + text[position + 6]) elif telopt is TELOPT_TTYPE and text[position + 3] is IS: user.ttype = ( text[position + 4:end_subnegotiation]).decode("ascii") -- 2.11.0