Implement the `XTPUSHSGR` and `XTPOPSGR` control sequences (see #1796). This change adds a new pair of methods to `ITermDispatch`: `PushGraphicsRendition` and `PopGraphicsRendition`, and then plumbs the change through `AdaptDispatch`, `TerminalDispatch`, `ITerminalApi` and `TerminalApi`. The stack logic is encapsulated in the `SgrStack` class, to allow it to be reused between the two APIs (`AdaptDispatch` and `TerminalDispatch`). Like xterm, only ten levels of nesting are supported. The stack is implemented as a "ring stack": if you push when the stack is full, the bottom of the stack will be dropped to make room. Partial pushes (see the description of `XTPUSHSGR` in Issue #1796) are implemented per xterm spec. ## Validation Steps Performed Tests added, plus manual verification of the feature. Closes #1796 |
||
---|---|---|
.. | ||
alphabet.txt | ||
expect.txt | ||
README.md | ||
web.txt |
The contents of each .txt
file in this directory are merged together.
- alphabet is a sample for alphabet related items
- web is a sample for web/html related items
- expect is the main list of expected items -- there is nothing particularly special about the file name (beyond the extension which is important).
These terms are things which temporarily exist in the project, but which aren't necessarily words.
If something is a word that could come and go, it probably belongs in a dictionary.