Hello community,

here is the log from the commit of package konsole for openSUSE:Factory checked 
in at 2018-02-02 22:20:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/konsole (Old)
 and      /work/SRC/openSUSE:Factory/.konsole.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "konsole"

Fri Feb  2 22:20:14 2018 rev:90 rq:571654 version:17.12.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/konsole/konsole.changes  2018-01-17 
21:51:24.946574243 +0100
+++ /work/SRC/openSUSE:Factory/.konsole.new/konsole.changes     2018-02-02 
22:20:15.599540016 +0100
@@ -1,0 +2,7 @@
+Thu Feb  1 08:57:19 UTC 2018 - wer...@suse.de
+
+- Temporary add patch konsole-D10064.id25855.diff which is based on
+  the Diff 25855 from https://phabricator.kde.org/D10064 for Support
+  of ECMA-48 REP (boo#1054448, bsc#1078565, and kde#384620)
+
+-------------------------------------------------------------------

New:
----
  konsole-D10064.id25855.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ konsole.spec ++++++
--- /var/tmp/diff_new_pack.6SLSHn/_old  2018-02-02 22:20:16.351504911 +0100
+++ /var/tmp/diff_new_pack.6SLSHn/_new  2018-02-02 22:20:16.355504724 +0100
@@ -37,6 +37,8 @@
 Source24:       utilities-terminal-su-48.png
 Source25:       utilities-terminal-su-64.png
 Source26:       utilities-terminal-su-128.png
+# PATCH-FIX-UPSTREAM https://phabricator.kde.org/D10064
+Patch0:         konsole-D10064.id25855.diff
 BuildRequires:  fdupes
 BuildRequires:  kbookmarks-devel
 BuildRequires:  kcompletion-devel
@@ -106,6 +108,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
   %cmake_kf5 -d build

++++++ konsole-D10064.id25855.diff ++++++
Subject: Support ECMA-48 REP
From: Chih-Hsuan Yen
References: boo#1054448
References: bsc#1078565
References: kde#384620

Based on https://phabricator.kde.org/D10064

diff --git konsole-17.12.1/src/Screen.cpp konsole-17.12.1/src/Screen.cpp
--- konsole-17.12.1/src/Screen.cpp
+++ konsole-17.12.1/src/Screen.cpp
@@ -73,7 +73,8 @@ Screen::Screen(int lines, int columns):
     _effectiveForeground(CharacterColor()),
     _effectiveBackground(CharacterColor()),
     _effectiveRendition(DEFAULT_RENDITION),
-    _lastPos(-1)
+    _lastPos(-1),
+    _lastDrawnChar(0)
 {
     _lineProperties.resize(_lines + 1);
     for (int i = 0; i < _lines + 1; i++)
@@ -223,6 +224,24 @@ void Screen::insertChars(int n)
         _screenLines[_cuY].resize(_columns);
 }
 
+void Screen::repeatChars(int n)
+{
+    if (n == 0) {
+        n = 1; // Default
+    }
+
+    // From ECMA-48 version 5, section 8.3.103:
+    // "If the character preceding REP is a control function or part of a
+    // control function, the effect of REP is not defined by this Standard."
+    //
+    // So, a "normal" program should always use REP immediately after a visible
+    // character (those other than escape sequences). So, _lastDrawnChar can be
+    // safely used.
+    for (int i = 0; i < n; i++) {
+        displayCharacter(_lastDrawnChar);
+    }
+}
+
 void Screen::deleteLines(int n)
 {
     if (n == 0) n = 1; // Default
@@ -695,6 +714,8 @@ void Screen::displayCharacter(unsigned s
     currentChar.rendition = _effectiveRendition;
     currentChar.isRealCharacter = true;
 
+    _lastDrawnChar = c;
+
     int i = 0;
     const int newCursorX = _cuX + w--;
     while (w != 0) {
diff --git konsole-17.12.1/src/Screen.h konsole-17.12.1/src/Screen.h
--- konsole-17.12.1/src/Screen.h
+++ konsole-17.12.1/src/Screen.h
@@ -203,6 +203,11 @@ public:
      */
     void insertChars(int n);
     /**
+     * Repeat the preceeding graphic character @n times, including SPACE.
+     * If @n is 0 then the character is repeated once.
+     */
+    void repeatChars(int n);
+    /**
      * Removes @p n lines beginning from the current cursor position.
      * The position of the cursor is not altered.
      * If @p n is 0 then one line is removed.
@@ -714,6 +719,9 @@ private:
 
     // last position where we added a character
     int _lastPos;
+
+    // used in REP (repeating char)
+    unsigned short _lastDrawnChar;
 };
 }
 
diff --git konsole-17.12.1/src/Vt102Emulation.cpp 
konsole-17.12.1/src/Vt102Emulation.cpp
--- konsole-17.12.1/src/Vt102Emulation.cpp
+++ konsole-17.12.1/src/Vt102Emulation.cpp
@@ -240,7 +240,7 @@ void Vt102Emulation::initTokenizer()
     for (i = 32; i < 256; ++i) {
         charClass[i] |= CHR;
     }
-    for (s = (quint8 *)"@ABCDGHILMPSTXZcdfry"; *s != 0u; ++s) {
+    for (s = (quint8 *)"@ABCDGHILMPSTXZbcdfry"; *s != 0u; ++s) {
         charClass[*s] |= CPN;
     }
     // resize = \e[8;<row>;<col>t
@@ -680,6 +680,7 @@ void Vt102Emulation::processToken(int to
     case TY_CSI_PN('T'      ) : _currentScreen->scrollDown           (p        
 ); break;
     case TY_CSI_PN('X'      ) : _currentScreen->eraseChars           (p        
 ); break;
     case TY_CSI_PN('Z'      ) : _currentScreen->backtab              (p        
 ); break;
+    case TY_CSI_PN('b'      ) : _currentScreen->repeatChars          (p        
 ); break;
     case TY_CSI_PN('c'      ) :      reportTerminalType   (          ); break; 
//VT100
     case TY_CSI_PN('d'      ) : _currentScreen->setCursorY           (p        
 ); break; //LINUX
     case TY_CSI_PN('f'      ) : _currentScreen->setCursorYX          (p,      
q); break; //VT100







Reply via email to