summaryrefslogtreecommitdiff
path: root/Source/Kernel/VTManager/VirtualTerminal.proto.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Kernel/VTManager/VirtualTerminal.proto.cpp')
-rw-r--r--Source/Kernel/VTManager/VirtualTerminal.proto.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/Source/Kernel/VTManager/VirtualTerminal.proto.cpp b/Source/Kernel/VTManager/VirtualTerminal.proto.cpp
index 34c10d0..39c21e3 100644
--- a/Source/Kernel/VTManager/VirtualTerminal.proto.cpp
+++ b/Source/Kernel/VTManager/VirtualTerminal.proto.cpp
@@ -3,8 +3,6 @@
#include <VTManager/VT.ns.h>
#include <TaskManager/Task.ns.h>
-#include <VirtualTerminal.iface.h>
-
VirtualTerminal::VirtualTerminal() :
Ressource(VTIF_OBJTYPE, m_callTable), m_kbdMutex(false), m_kbdbuff() {
m_kbdbuffStart = 0;
@@ -16,7 +14,16 @@ VirtualTerminal::~VirtualTerminal() {
void VirtualTerminal::write(const String& s, bool updatecsr) {
for (u32int i = 0; i < s.size(); i++) {
- put(s[i], false);
+ if (s[i] == WChar(MVT_ESC)) {
+ mvt_esc_cmd_t cmd;
+ cmd.cmd = s[i + 1];
+ cmd.a = s[i + 2];
+ cmd.b = s[i + 3];
+ i += 3;
+ handleEscape(cmd);
+ } else {
+ put(s[i], false);
+ }
}
if (updatecsr) updateCursor();
}