in src/agent/ConsoleInput.cc [237:280]
void ConsoleInput::writeInput(const std::string &input)
{
if (input.size() == 0) {
return;
}
if (isTracingEnabled()) {
static bool debugInput = hasDebugFlag("input");
if (debugInput) {
std::string dumpString;
for (size_t i = 0; i < input.size(); ++i) {
const char ch = input[i];
const char ctrl = decodeUnixCtrlChar(ch);
if (ctrl != '\0') {
dumpString += '^';
dumpString += ctrl;
} else {
dumpString += ch;
}
}
dumpString += " (";
for (size_t i = 0; i < input.size(); ++i) {
if (i > 0) {
dumpString += ' ';
}
const unsigned char uch = input[i];
char buf[32];
winpty_snprintf(buf, "%02X", uch);
dumpString += buf;
}
dumpString += ')';
trace("input chars: %s", dumpString.c_str());
}
}
m_byteQueue.append(input);
doWrite(false);
if (!m_byteQueue.empty() && !m_dsrSent) {
trace("send DSR");
m_dsrSender.sendDsr();
m_dsrSent = true;
}
m_lastWriteTick = GetTickCount();
}