commit konsole for openSUSE:Factory
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 - werner@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
participants (1)
-
root@hilbert.suse.de