From 3f6008436d40129dcde5b36e962740d2c8078ca4 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 16 Jun 2008 23:15:26 +0000 Subject: [PATCH] Support for \ESC[%dS (scroll screen up). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25982 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/terminal/BasicTerminalBuffer.h | 2 +- src/apps/terminal/TermParse.cpp | 7 +++++++ src/apps/terminal/VTPrsTbl.c | 2 +- src/apps/terminal/VTparse.h | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/apps/terminal/BasicTerminalBuffer.h b/src/apps/terminal/BasicTerminalBuffer.h index d8a671b55d..2bbcfc2814 100644 --- a/src/apps/terminal/BasicTerminalBuffer.h +++ b/src/apps/terminal/BasicTerminalBuffer.h @@ -125,7 +125,7 @@ public: // scroll region inline void ScrollBy(int32 numLines); - void SetScrollRegion(int32 top, int32 bot); + void SetScrollRegion(int32 top, int32 bottom); protected: virtual void NotifyListener(); diff --git a/src/apps/terminal/TermParse.cpp b/src/apps/terminal/TermParse.cpp index 77be7e1e8b..e4b53610c7 100644 --- a/src/apps/terminal/TermParse.cpp +++ b/src/apps/terminal/TermParse.cpp @@ -944,6 +944,13 @@ TermParse::EscParse() parsestate = groundtable; break; + case CASE_SU: // scroll screen up + if ((row = param[0]) < 1) + row = 1; + fBuffer->ScrollBy(row); + parsestate = groundtable; + break; + default: break; } diff --git a/src/apps/terminal/VTPrsTbl.c b/src/apps/terminal/VTPrsTbl.c index 8c3060f74e..a22999666b 100644 --- a/src/apps/terminal/VTPrsTbl.c +++ b/src/apps/terminal/VTPrsTbl.c @@ -1115,7 +1115,7 @@ CASE_GROUND_STATE, CASE_DCH, CASE_GROUND_STATE, CASE_GROUND_STATE, -CASE_GROUND_STATE, +CASE_SU, /* T U V W */ CASE_GROUND_STATE, CASE_GROUND_STATE, diff --git a/src/apps/terminal/VTparse.h b/src/apps/terminal/VTparse.h index bb546949af..2621892bf2 100644 --- a/src/apps/terminal/VTparse.h +++ b/src/apps/terminal/VTparse.h @@ -119,3 +119,5 @@ // additions, maybe reorder/reuse older ones ? #define CASE_VPA 87 #define CASE_HPA 88 + +#define CASE_SU 89 /* scroll screen up */