Hello community, here is the log from the commit of package vte for openSUSE:Factory checked in at 2018-11-08 09:44:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vte (Old) and /work/SRC/openSUSE:Factory/.vte.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vte" Thu Nov 8 09:44:44 2018 rev:113 rq:644304 version:0.54.2 Changes: -------- --- /work/SRC/openSUSE:Factory/vte/vte.changes 2018-10-17 08:14:54.603034786 +0200 +++ /work/SRC/openSUSE:Factory/.vte.new/vte.changes 2018-11-08 09:44:50.189356979 +0100 @@ -1,0 +2,12 @@ +Wed Oct 24 10:01:18 UTC 2018 - [email protected] + +- Update to version 0.54.2: + + ring: Fix thawing combining accents over a double-wide + character. + + emulation: + - Implement SCOSC/SCORC. + - Make dispatch of SCORC symmetrical to SCOSC. + + modes: Use parentheses in macro. + + widget: Add missing exception specification. + +------------------------------------------------------------------- Old: ---- vte-0.54.1.tar.xz New: ---- vte-0.54.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vte.spec ++++++ --- /var/tmp/diff_new_pack.vHuiPs/_old 2018-11-08 09:44:50.781356288 +0100 +++ /var/tmp/diff_new_pack.vHuiPs/_new 2018-11-08 09:44:50.785356283 +0100 @@ -22,7 +22,7 @@ %define _gtkver 3.0 %define _name vte Name: vte -Version: 0.54.1 +Version: 0.54.2 Release: 0 Summary: Terminal Emulator Library License: LGPL-2.0-only AND LGPL-3.0-only AND GPL-3.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.vHuiPs/_old 2018-11-08 09:44:50.809356255 +0100 +++ /var/tmp/diff_new_pack.vHuiPs/_new 2018-11-08 09:44:50.809356255 +0100 @@ -4,7 +4,7 @@ <param name="scm">git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> - <param name="revision">refs/tags/0.54.1</param> + <param name="revision">refs/tags/0.54.2</param> <param name="exclude">doc/vttest.*</param> </service> <service name="recompress" mode="disabled"> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.vHuiPs/_old 2018-11-08 09:44:50.829356232 +0100 +++ /var/tmp/diff_new_pack.vHuiPs/_new 2018-11-08 09:44:50.829356232 +0100 @@ -3,4 +3,4 @@ <param name="url">git://git.gnome.org/vte</param> <param name="changesrevision">961927a8115c82f35deafe09c1d68689ff069905</param></service><service name="tar_scm"> <param name="url">https://gitlab.gnome.org/GNOME/vte.git</param> - <param name="changesrevision">e3ed022308860a6c90935d4c663e9e90be3883c0</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">6c37e5164aef8b2ac3dea02f6c1a3152dad93fda</param></service></servicedata> \ No newline at end of file ++++++ vte-0.54.1.tar.xz -> vte-0.54.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/configure.ac new/vte-0.54.2/configure.ac --- old/vte-0.54.1/configure.ac 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/configure.ac 2018-10-19 22:14:06.000000000 +0200 @@ -1,6 +1,6 @@ m4_define([version_major],0) m4_define([version_minor],54) -m4_define([version_micro],1) +m4_define([version_micro],2) m4_define([version_triplet],version_major.version_minor.version_micro) AC_PREREQ([2.63]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/modes-private.hh new/vte-0.54.2/src/modes-private.hh --- old/vte-0.54.1/src/modes-private.hh 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/modes-private.hh 2018-10-19 22:14:06.000000000 +0200 @@ -375,7 +375,8 @@ * * References: VT525 * - * Probably not worth implementing. + * Needs to be implemented if DECSLRM is implemented, to resolve a + * conflict between DECSLRM and SCOSC. */ MODE_FIXED(DECLRMM, 69, ALWAYS_RESET) /* aka DECVSSM */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/modes.hh new/vte-0.54.2/src/modes.hh --- old/vte-0.54.1/src/modes.hh 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/modes.hh 2018-10-19 22:14:06.000000000 +0200 @@ -36,6 +36,12 @@ return get(e##name); \ } +#define MODE_FIXED_ACCESSOR(name,value) \ + inline constexpr bool name() const noexcept \ + { \ + return (value); \ + } + template <typename T> static inline void vte_modes_set_bool(T* modes, unsigned int shift, @@ -159,7 +165,7 @@ } #define MODE(name,param) MODE_ACCESSOR(name) -#define MODE_FIXED(name,param,value) +#define MODE_FIXED(name,param,value) MODE_FIXED_ACCESSOR(name, e##value == eALWAYS_SET) #include "modes-ecma.hh" #undef MODE #undef MODE_FIXED @@ -213,7 +219,7 @@ } #define MODE(name,param) MODE_ACCESSOR(name) -#define MODE_FIXED(name,param,value) +#define MODE_FIXED(name,param,value) MODE_FIXED_ACCESSOR(name, e##value == eALWAYS_SET) #include "modes-private.hh" #undef MODE #undef MODE_FIXED @@ -244,6 +250,7 @@ }; // class Private #undef MODE_ACCESSOR +#undef MODE_FIXED_ACCESSOR } // namespace modes } // namespace terminal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/parser-cmd.hh new/vte-0.54.2/src/parser-cmd.hh --- old/vte-0.54.1/src/parser-cmd.hh 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/parser-cmd.hh 2018-10-19 22:14:06.000000000 +0200 @@ -62,7 +62,7 @@ _VTE_CMD(DECSED) /* selective erase in display */ _VTE_CMD(DECSEL) /* selective erase in line */ _VTE_CMD(DECSLPP) /* set lines per page */ -_VTE_CMD(DECSLRM) /* set left and right margins */ +_VTE_CMD(DECSLRM_OR_SCOSC) /* set left and right margins or SCO save cursor */ _VTE_CMD(DECSR) /* secure reset */ _VTE_CMD(DECST8C) /* set tab at every 8 columns */ _VTE_CMD(DECSTBM) /* set top and bottom margins */ @@ -101,6 +101,8 @@ _VTE_CMD(RIS) /* reset to initial state */ _VTE_CMD(RM_DEC) /* reset mode dec */ _VTE_CMD(RM_ECMA) /* reset mode ecma */ +_VTE_CMD(SCORC) /* SCO restore cursor */ +_VTE_CMD(SCOSC) /* SCO save cursor */ _VTE_CMD(SD) /* scroll down */ _VTE_CMD(SD_OR_XTERM_IHMT) /* scroll down or xterm initiate highlight mouse tracking */ _VTE_CMD(SGR) /* select graphics rendition */ @@ -199,6 +201,7 @@ _VTE_NOP(DECSKCV) /* set key click volume */ _VTE_NOP(DECSLCK) /* set lock key style */ _VTE_NOP(DECSLE) /* select locator events */ +_VTE_NOP(DECSLRM) /* set left and right margins */ _VTE_NOP(DECSMBV) /* set margin bell volume */ _VTE_NOP(DECSMKR) /* select modifier key reporting */ _VTE_NOP(DECSNLS) /* set lines per screen */ @@ -271,7 +274,6 @@ _VTE_NOP(RLOGIN_MML) /* RLogin music macro language */ _VTE_NOP(SACS) /* set additional character separation */ _VTE_NOP(SAPV) /* select alternative presentation variants */ -_VTE_NOP(SCORC) /* SCO restore cursor */ _VTE_NOP(SCO) /* select character orientation */ _VTE_NOP(SCP) /* select character path */ _VTE_NOP(SCS) /* set character spacing */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/parser-csi.hh new/vte-0.54.2/src/parser-csi.hh --- old/vte-0.54.1/src/parser-csi.hh 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/parser-csi.hh 2018-10-19 22:14:06.000000000 +0200 @@ -150,7 +150,7 @@ _VTE_NOQ(DECSMKR, CSI, 'r', NONE, 1, PLUS ) /* select-modifier-key-reporting */ _VTE_NOQ(DECSEST, CSI, 'r', NONE, 1, MINUS ) /* energy saver time */ _VTE_SEQ(DECPCTERM_OR_XTERM_RPM, CSI, 'r', WHAT, 0, NONE ) /* pcterm or xterm restore DEC private mode */ -_VTE_SEQ(DECSLRM, CSI, 's', NONE, 0, NONE ) /* set-left-and-right-margins */ +_VTE_SEQ(DECSLRM_OR_SCOSC, CSI, 's', NONE, 0, NONE ) /* set left and right margins or SCO save cursor */ _VTE_NOQ(DECSPRTT, CSI, 's', NONE, 1, CASH ) /* select-printer-type */ _VTE_NOQ(DECSFC, CSI, 's', NONE, 1, MULT ) /* select-flow-control */ _VTE_SEQ(XTERM_SPM, CSI, 's', WHAT, 0, NONE ) /* xterm save private mode */ @@ -159,7 +159,7 @@ _VTE_NOQ(DECSRFR, CSI, 't', NONE, 1, DQUOTE ) /* select-refresh-rate */ _VTE_NOQ(DECRARA, CSI, 't', NONE, 1, CASH ) /* reverse-attributes-in-rectangular-area */ _VTE_NOQ(XTERM_STM, CSI, 't', GT, 0, NONE ) /* xterm-set-title-mode */ -_VTE_NOQ(SCORC, CSI, 'u', NONE, 0, NONE ) /* SCO restore-cursor */ +_VTE_SEQ(SCORC, CSI, 'u', NONE, 0, NONE ) /* SCO restore cursor */ _VTE_NOQ(DECSMBV, CSI, 'u', NONE, 1, SPACE ) /* set-margin-bell-volume */ _VTE_NOQ(DECSTRL, CSI, 'u', NONE, 1, DQUOTE ) /* set-transmit-rate-limit */ _VTE_SEQ(DECRQTSR, CSI, 'u', NONE, 1, CASH ) /* request-terminal-state-report */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/ring.cc new/vte-0.54.2/src/ring.cc --- old/vte-0.54.1/src/ring.cc 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/ring.cc 2018-10-19 22:14:06.000000000 +0200 @@ -489,6 +489,10 @@ if (G_LIKELY (row->len)) { /* Combine it */ row->cells[row->len - 1].c = _vte_unistr_append_unichar (row->cells[row->len - 1].c, cell.c); + /* Spread it to all the previous cells of a potentially multicell character */ + for (int i = row->len - 1; i >= 1 && row->cells[i].attr.fragment(); i--) { + row->cells[i - 1].c = row->cells[i].c; + } } else { cell.attr.set_columns(1); if (row->len == hyperlink_column && hyperlink != nullptr) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/vteseq.cc new/vte-0.54.2/src/vteseq.cc --- old/vte-0.54.1/src/vteseq.cc 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/vteseq.cc 2018-10-19 22:14:06.000000000 +0200 @@ -4343,22 +4343,39 @@ * * References: VT525 * - * Note: There is a conflict between SCOSC and DECSLRM that both - * have final character 's' (7/3). SCOSC has 0 parameters, and - * DECSLRM has 2 parameters which both have default values, and - * my reading of ECMA-48 § 5.4.2h says that this allows for an - * empty parameter string to represent them. - * - * We could either fudge it by dispatching zero params to SCOSC - * and anything else to DECSLRM, or, since we already implement - * DECSC/DECRC, we can just drop support for the extra SCOSC/SCORC. - * Do the latter. - * * FIXMEchpe: Consider implementing this. */ } void +Terminal::DECSLRM_OR_SCOSC(vte::parser::Sequence const& seq) +{ + /* + * set left and right margins or SCO restore cursor - DECSLRM or SCOSC + * There is a conflict between SCOSC and DECSLRM that both are + * CSI s (CSI 7/3). SCOSC has 0 parameters, and DECSLRM has 2 + * parameters which both have default values, and my reading + * of ECMA-48 § 5.4.2h says that this allows for an empty + * parameter string to represent them. + * + * While the DEC manuals say that SCOSC/SCORC only operates in + * "SCO Console Mode" (which is entered by DECTME 13), and not in + * "VT mode" (i.e. native mode), we instead distinguish the cases + * by private mode DECLRMM: If DECLRMM is set, dispatch DECSLRM; + * if it's reset, dispatch SCOSC. + * + * See issue #48. + */ + +#ifdef PARSER_INCLUDE_NOP + if (m_modes_private.DECLRMM()) + DECSLRM(seq); + else +#endif + SCOSC(seq); +} + +void Terminal::DECSMBV(vte::parser::Sequence const& seq) { /* @@ -6723,12 +6740,35 @@ Terminal::SCORC(vte::parser::Sequence const& seq) { /* - * SCORC - SCO restore-cursor + * SCORC - SCO restore cursor + * Works like DECRC, except in that it does not restore the page. + * While this is an obsolete sequence from an obsolete terminal, + * and not used in terminfo, there still are some programmes + * that use it and break when it's not implemented; see issue#48. * * References: VT525 + */ + + if (m_modes_private.DECLRMM()) + return; + + restore_cursor(); +} + +void +Terminal::SCOSC(vte::parser::Sequence const& seq) +{ + /* + * SCORC - SCO save cursor + * Works like DECSC, except in that it does not save the page. + * While this is an obsolete sequence from an obsolete terminal, + * and not used in terminfo, there still are some programmes + * that use it and break when it's not implemented; see issue#48. * - * Not worth implementing, given that we already support DECSC/DECRC. + * References: VT525 */ + + save_cursor(); } void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.54.1/src/widget.cc new/vte-0.54.2/src/widget.cc --- old/vte-0.54.1/src/widget.cc 2018-09-23 12:57:42.000000000 +0200 +++ new/vte-0.54.2/src/widget.cc 2018-10-19 22:14:06.000000000 +0200 @@ -327,7 +327,7 @@ } void -Widget::unmap() +Widget::unmap() noexcept { if (m_event_window) gdk_window_hide(m_event_window);
