Commit 417b9958 authored by Christian Persch's avatar Christian Persch

emulation: Add sequence and no-op handler for new xterm SGR functions

#23
parent 6211878c
......@@ -322,6 +322,9 @@ _VTE_NOP(XTERM_MUHP) /* xterm memory unlock hp bugfix */
_VTE_NOP(XTERM_RQTCAP) /* xterm request termcap/terminfo */
_VTE_NOP(XTERM_RRV) /* xterm reset resource value */
_VTE_NOP(XTERM_SGFX) /* xterm sixel graphics */
_VTE_NOP(XTERM_SGR_STACK_POP) /* xterm pop SGR stack */
_VTE_NOP(XTERM_SGR_STACK_PUSH) /* xterm push SGR stack */
_VTE_NOP(XTERM_SGR_REPORT) /* xterm SGR report */
_VTE_NOP(XTERM_SRV) /* xterm set resource value */
_VTE_NOP(XTERM_STCAP) /* xterm set termcap/terminfo */
_VTE_NOP(XTERM_STM) /* xterm set title mode */
......@@ -191,14 +191,17 @@ _VTE_NOQ(DECELR, CSI, 'z', NONE, 1, SQUOTE ) /* enable-lo
_VTE_NOQ(DECINVM, CSI, 'z', NONE, 1, MULT ) /* invoke-macro */
_VTE_NOQ(DECPKA, CSI, 'z', NONE, 1, PLUS ) /* program-key-action */
_VTE_NOQ(DECDLDA, CSI, 'z', NONE, 1, COMMA ) /* down line load allocation */
_VTE_NOQ(XTERM_SGR_STACK_PUSH, CSI, '{', NONE, 1, HASH ) /* push SGR stack */
_VTE_NOQ(DECSERA, CSI, '{', NONE, 1, CASH ) /* selective-erase-rectangular-area */
_VTE_NOQ(DECSLE, CSI, '{', NONE, 1, SQUOTE ) /* select-locator-events */
_VTE_NOQ(DECSTGLT, CSI, '{', NONE, 1, PCLOSE ) /* select color lookup table */
_VTE_NOQ(DECSZS, CSI, '{', NONE, 1, COMMA ) /* select zero symbol */
_VTE_NOQ(XTERM_SGR_REPORT, CSI, '|', NONE, 1, HASH ) /* SGR report */
_VTE_NOQ(DECSCPP, CSI, '|', NONE, 1, CASH ) /* select-columns-per-page */
_VTE_NOQ(DECRQLP, CSI, '|', NONE, 1, SQUOTE ) /* request-locator-position */
_VTE_NOQ(DECSNLS, CSI, '|', NONE, 1, MULT ) /* set-lines-per-screen */
_VTE_NOQ(DECAC, CSI, '|', NONE, 1, COMMA ) /* assign color */
_VTE_NOQ(XTERM_SGR_STACK_POP, CSI, '}', NONE, 1, HASH ) /* pop SGR stack */
_VTE_NOQ(DECKBD, CSI, '}', NONE, 1, SPACE ) /* keyboard-language-selection */
_VTE_NOQ(DECSASD, CSI, '}', NONE, 1, CASH ) /* select-active-status-display */
_VTE_NOQ(DECIC, CSI, '}', NONE, 1, SQUOTE ) /* insert-column */
......
......@@ -33,6 +33,7 @@ _VTE_REPLY(DECXCPR, CSI, 'R', WHAT, NONE, ) /
_VTE_REPLY(CPR, CSI, 'R', NONE, NONE, ) /* cursor position report */
_VTE_REPLY(DECDA1R, CSI, 'c', WHAT, NONE, ) /* DA1 report */
_VTE_REPLY(DECDA2R, CSI, 'c', GT, NONE, ) /* DA2 report */
_VTE_REPLY(SGR, CSI, 'm', NONE, NONE, ) /* SGR */
_VTE_REPLY(XTERM_MOUSE_EXT_SGR_REPORT_BUTTON_RELEASE, CSI, 'm', LT, NONE, ) /* XTERM SGR mouse mode button release report */
_VTE_REPLY(DSR, CSI, 'n', NONE, NONE, ) /* device status report */
_VTE_REPLY(DECDSR, CSI, 'n', WHAT, NONE, ) /* device status report */
......
......@@ -8187,6 +8187,79 @@ Terminal::XTERM_SGFX(vte::parser::Sequence const& seq)
*/
}
void
Terminal::XTERM_SGR_REPORT(vte::parser::Sequence const& seq)
{
/*
* XTERM_SGR_REPORT: report SGR attributes in rectangular area
* Report common character attributes in the specified rectangle.
*
* Arguments;
* args[0..3]: top, left, bottom, right of the rectangle (1-based)
*
* Defaults:
* args[0]: 1
* args[1]: 1
* args[2]: height of current page
* args[3]: width of current page
*
* Reply: SGR
*
* If the top > bottom or left > right, the command is ignored.
*
* These coordinates are interpreted according to origin mode (DECOM),
* but unaffected by the page margins (DECSLRM?).
*
* Note: DECSACE selects whether this function operates on the
* rectangular area or the data stream between the star and end
* positions.
*
* References: XTERM 334
*/
/* TODO: Implement this */
}
void
Terminal::XTERM_SGR_STACK_POP(vte::parser::Sequence const& seq)
{
/*
* XTERM_SGR_STACK_POP: pop SGR stack
* Restore SGR attributes previously pushed to the stack
* with XTERM_SGR_STACK_PUSH. If there is nothing on the
* stack, does nothing.
*
* Arguments: none
*
* References: XTERM 334
*/
/* TODO: Implement this: https://gitlab.gnome.org/GNOME/vte/issues/23 */
}
void
Terminal::XTERM_SGR_STACK_PUSH(vte::parser::Sequence const& seq)
{
/*
* XTERM_SGR_STACK_PUSH: push SGR stack
* Push current SGR attributes to the stack.
* If the stack is full, drops the bottommost item before
* pushing on the stack.
*
* If there are any arguments, they are interpreted as in SGR
* to denote which attributes to save; if there are no arguments,
* all attributes are saved.
*
* Arguments:
* args[0:]: the attributes
* 0 = save all attributes
*
* Defaults:
* args[0]: 0 (save all attributes)
*
* References: XTERM 334
*/
/* TODO: Implement this: https://gitlab.gnome.org/GNOME/vte/issues/23 */
}
void
Terminal::XTERM_SPM(vte::parser::Sequence const& seq)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment