File kdebase3-esc-seq-CNL-CPL.patch of Package kdebase3

diff -Naru kdebase-3.5.10_orig/konsole/konsole/TEScreen.cpp kdebase-3.5.10/konsole/konsole/TEScreen.cpp
--- kdebase-3.5.10_orig/konsole/konsole/TEScreen.cpp	2006-10-01 17:32:08.000000000 +0000
+++ kdebase-3.5.10/konsole/konsole/TEScreen.cpp	2022-01-07 08:03:00.775957826 +0000
@@ -187,6 +187,42 @@
   cuX = QMIN(columns-1,cuX+n);
 }
 
+void TEScreen::cursorNextLine(int n)
+//=CNL
+{
+	if (n == 0)
+	{
+		n = 1; // Default
+	}
+	cuX = 0;
+	while (n > 0)
+	{
+		if (cuY < lines - 1)
+		{
+			cuY += 1;
+		}
+		n--;
+	}
+}
+
+void TEScreen::cursorPrevLine(int n)
+//=CPL
+{
+	if (n == 0)
+	{
+		n = 1; // Default
+	}
+	cuX = 0;
+	while (n > 0)
+	{
+		if (cuY  > 0)
+		{
+			cuY -= 1;
+		}
+		n--;
+	}
+}
+
 /*!
     Set top and bottom margin.
 */
diff -Naru kdebase-3.5.10_orig/konsole/konsole/TEScreen.h kdebase-3.5.10/konsole/konsole/TEScreen.h
--- kdebase-3.5.10_orig/konsole/konsole/TEScreen.h	2006-10-01 17:32:08.000000000 +0000
+++ kdebase-3.5.10/konsole/konsole/TEScreen.h	2022-01-07 08:03:55.303167814 +0000
@@ -56,6 +56,8 @@
     void cursorDown  (int n);
     void cursorLeft  (int n);
     void cursorRight (int n);
+    void cursorNextLine(int n);
+    void cursorPrevLine(int n);
     void setCursorY  (int y);
     void setCursorX  (int x);
     void setCursorYX (int y, int x);
diff -Naru kdebase-3.5.10_orig/konsole/konsole/TEmuVt102.cpp kdebase-3.5.10/konsole/konsole/TEmuVt102.cpp
--- kdebase-3.5.10_orig/konsole/konsole/TEmuVt102.cpp	2006-10-01 17:32:08.000000000 +0000
+++ kdebase-3.5.10/konsole/konsole/TEmuVt102.cpp	2022-01-07 08:07:33.740003292 +0000
@@ -267,7 +267,7 @@
   for(i =  0;                      i < 256; i++) tbl[ i]  = 0;
   for(i =  0;                      i <  32; i++) tbl[ i] |= CTL;
   for(i = 32;                      i < 256; i++) tbl[ i] |= CHR;
-  for(s = (UINT8*)"@ABCDGHILMPSTXZcdfry"; *s; s++) tbl[*s] |= CPN;
+  for(s = (UINT8*)"@ABCDEFGHILMPSTXZcdfry"; *s; s++) tbl[*s] |= CPN;
 // resize = \e[8;<row>;<col>t
   for(s = (UINT8*)"t"; *s; s++) tbl[*s] |= CPS;
   for(s = (UINT8*)"0123456789"        ; *s; s++) tbl[*s] |= DIG;
@@ -621,6 +621,8 @@
     case TY_CSI_PN('B'      ) : scr->cursorDown           (p         ); break; //VT100
     case TY_CSI_PN('C'      ) : scr->cursorRight          (p         ); break; //VT100
     case TY_CSI_PN('D'      ) : scr->cursorLeft           (p         ); break; //VT100
+    case TY_CSI_PN('E'      ) : scr->cursorNextLine       (p         ); break; //VT100
+    case TY_CSI_PN('F'      ) : scr->cursorPrevLine       (p         ); break; //VT100
     case TY_CSI_PN('G'      ) : scr->setCursorX           (p         ); break; //LINUX
     case TY_CSI_PN('H'      ) : scr->setCursorYX          (p,       q); break; //VT100
     case TY_CSI_PN('I'      ) : scr->Tabulate             (p         ); break;
openSUSE Build Service is sponsored by