Send CTRL+C to the terminal instead of of backspaces. Thanks to the FiNeX and g111 for the hint.

CCBUG: 161637

svn path=/trunk/KDE/kdebase/apps/; revision=1106403
This commit is contained in:
Peter Penz 2010-03-22 18:28:16 +00:00
parent 9444f01a5c
commit a57925a23d

View file

@ -121,12 +121,11 @@ void TerminalPanel::sendCdToTerminal(const QString& dir)
// The TerminalV2 interface does not provide a way to delete the
// current line before sending a new input. This is mandatory,
// otherwise sending a 'cd x' to a existing 'rm -rf *' might
// result in data loss. As workaround backspaces are send...
QString clearLine;
for (int i = 0; i < 256; ++i) {
clearLine.append(QChar(8));
}
m_terminal->sendInput(clearLine);
// result in data loss. As workaround Ctrl+C is send.
QString cancel;
cancel.append(QChar(3));
cancel.append(QChar('c'));
m_terminal->sendInput(cancel);
}
m_terminal->sendInput("cd " + KShell::quoteArg(dir) + '\n');