From 6ebde9244890b7f1e7d97b390af24f7559782632 Mon Sep 17 00:00:00 2001 From: Griatch Date: Wed, 6 Aug 2014 20:00:51 +0200 Subject: [PATCH] Added prompt keyword to msg() method. Inspired by code by titeuf87 in #543. --- src/server/portal/telnet.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/server/portal/telnet.py b/src/server/portal/telnet.py index e8c59db7c..1d5c237d3 100644 --- a/src/server/portal/telnet.py +++ b/src/server/portal/telnet.py @@ -8,7 +8,7 @@ sessions etc. """ import re -from twisted.conch.telnet import Telnet, StatefulTelnetProtocol, IAC, LINEMODE +from twisted.conch.telnet import Telnet, StatefulTelnetProtocol, IAC, LINEMODE, GA from src.server.session import Session from src.server.portal import ttype, mssp, msdp from src.server.portal.mccp import Mccp, mccp_compress, MCCP @@ -212,6 +212,14 @@ class TelnetProtocol(Telnet, StatefulTelnetProtocol, Session): useansi = kwargs.get("ansi", ttype and ttype.get('ANSI', False)) raw = kwargs.get("raw", False) nomarkup = kwargs.get("nomarkup", not (xterm256 or useansi) or not ttype.get("init_done")) + prompt = kwargs.get("prompt") + + if prompt: + # Send prompt separately + prompt = ansi.parse_ansi(_RE_N.sub("", text) + "{n", strip_ansi=nomarkup, xterm256=xterm256) + prompt = prompt.replace(IAC, IAC + IAC).replace('\n', '\r\n') + prompt += IAC + GA + self.transport.write(mccp_compress(self, prompt)) #print "telnet kwargs=%s, message=%s" % (kwargs, text) #print "xterm256=%s, useansi=%s, raw=%s, nomarkup=%s, init_done=%s" % (xterm256, useansi, raw, nomarkup, ttype.get("init_done"))