- Only recognize SGR 38/48 semicolon forms if there are no subparams for
that parameter.
- Add some tests for SGR 38 parsing.
- Add comment about ignoring 0x7F in Ground state.
- Fix off-by-one when collect()ing intermediates.
Plus another one triggered by code quality warnings:
- Don't test for impossible conditions.
- Add a new hasSubParams field to params.
- Ignore CSIs with subparams other than SGR.
- Only recognize SGR 38/48 semicolon forms if there are no subparams in
the SGR.
- Add comment on subparam 0 being empty.
Add support in the new parser for chars >= 0xa0 in OSC, DCS, APC, PM,
SOS. This allows OSC 8 to support non ASCII URLs:
printf '\e]8;;https://example.com/naïve\e\\Link to naïve\e]8;;\e\\\n'
Note that while «Williams, Paul Flo. “A parser for DEC’s ANSI-compatible
video terminals.” VT100.net. https://vt100.net/emu/dec_ansi_parser»
treats codes A0-FF identically to codes 20-7F, this does not seem to be
typical in terminal emulators: only xterm seems to follow this
peculiarity of DEC VTs, which allows:
printf '\e[4\xedtest\e[0m\n'
to be treated as if it had an "m" instead of "\xed", and shows an
underscored "test" in VT102, VT240, and xterm +u8 (use "\xc3\xad" for
xterm -u8).
This adds supports for sub-parameters in control sequences. For now, it
supports the colon-separated variants of SGR 38 and SGR 48 for RGB and
indexed colours:
CSI 38 : 2 : <id> : <red> : <green> : <blue> [ : ... ] m
CSI 38 : 2 : <red> : <green> : <blue> m
CSI 38 : 5 : <index8> m
and likewise for SGR 48. <id> is ignored (it's supposed to be a colour
space id, to support different kinds of RGB).
Substitute konsole's old vt102 parser with one based on the diagram at
vt100.net.
Williams, Paul Flo. “A parser for DEC’s ANSI-compatible video
terminals.” VT100.net. https://vt100.net/emu/dec_ansi_parser
The "return" in "#define QCOMPARE(actual, expected)" does not allow us
to delete the new-ed objects. This raises clangd "konsole/src/autotests/TerminalTest.cpp:28:5:
Potential leak of memory pointed to by 'display' [clang-analyzer-cplusplus.NewDeleteLeaks]"
and PVS-Studio V773.
The "return" in "#define QCOMPARE(actual, expected)" does not allow us
to delete the new-ed objects.
This raises clangd
"Potential leak of memory pointed to by 'X' [clang-analyzer-cplusplus.NewDeleteLeaks]"
and PVS-Studio V773.
The split-view actions define a shortcut using `Konsole::ACCEL`, which
since !609 expands to `Qt::CTRL | Qt::SHIFT` on systems that aren't
macOS. This breaks the shortcut for the split-view actions however as
`Qt::Key_ParenLeft` and `Qt::Key_ParenRight` do not work with the
`Qt::SHIFT` modifier.
Using `Qt::CTRL` (Cmd on macOS, Ctrl everywhere else) as the base
accelerator for these two actions makes splitting views work again as
expected.
ecm_set_disabled_deprecation_versions() in versions < 5.96 was brokwn
when it comes to SHOW_DEPRECATIONS, warnings for newer deprecations
were disabled if the flag was set or not.
Starting with ECM 5.96 the macro now enables warnings by default,
so the flag is no longer needed.
GIT_SILENT
This change removes some application attributes that are not necessary anymore (like disabling the global menu bar) or make Konsole behave slightly different when used from a KPart (e.g. inside Kate), and changes some keyboard shortcuts around (mainly using Command instead of Ctrl+Shift now.)
Unfortunately this does not resolve the requirement for the special keytab file for macOS; it looks like Qt does something funny with the QKeyEvents here: on Linux these have a `text` attribute set to e.g. `\u0003` for `^C`, that attribute is empty on macOS.
Note this could impact shortcut changes on non-macOS systems.
This flag is used for cells where the background is not drawn
unlike RE_CONCEAL, which draws background, but not foreground.
This flag is used for cells where an unmanaged image is placed.
And rename DefaultPropertyNames to DefaultProperties.
Default profile properties are now specified in the DefaultProperties
container directly, which simplifies creating the Built-in profile, and
keeps the properties info in one place.
- Name, Path: are empty by default, and set to the special values of the
built-in profile in useBuiltin()
- Some properties have to be set at runtime, rather than compile time e.g.
Command, Font, DefaultEncoding.
To prevent URIs inside parentheses from getting extended to the closing
parenthesis, only recognize URIs with balanced parentheses in regname,
path, query and/or fragment. We still allow unbalanced parenthesis in
userInfo, since the postfix @ should prevent most ambiguous situations,
and the parenthesis can be part of a password.
CCBUG: 455166
This way we don't run the same migration stuff at every start.
This also fixes an issue with the widget colorscheme config entry; if the
old WindowColorScheme key isn't found an empty string is used to write the
new UiSettings/ColorScheme key.
Inspired by similar code in KIO (SystemBookMarks related code) and Dolphin.