aboutsummaryrefslogtreecommitdiff
path: root/tty-features.c
diff options
context:
space:
mode:
Diffstat (limited to 'tty-features.c')
-rw-r--r--tty-features.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/tty-features.c b/tty-features.c
index 1996c750..7505c96b 100644
--- a/tty-features.c
+++ b/tty-features.c
@@ -27,14 +27,14 @@
* Still hardcoded:
* - bracket paste (sent if application asks for it);
* - mouse (under kmous capability);
- * - focus events (under focus-events option);
+ * - focus events (under XT and focus-events option);
* - default colours (under AX or op capabilities);
* - AIX colours (under colors >= 16);
* - alternate escape (under XT).
*
* Also:
- * - XT is used to decide whether to send DA and DSR;
- * - DECSLRM and DECFRA use a flag instead of capabilities;
+ * - XT is used to decide whether to send DA and XDA;
+ * - DECFRA uses a flag instead of capabilities;
* - UTF-8 is a separate flag on the client; needed for unattached clients.
*/
@@ -84,7 +84,7 @@ static const char *tty_feature_rgb_capabilities[] = {
static struct tty_feature tty_feature_rgb = {
"RGB",
tty_feature_rgb_capabilities,
- (TERM_256COLOURS|TERM_RGBCOLOURS)
+ TERM_256COLOURS|TERM_RGBCOLOURS
};
/* Terminal supports 256 colours. */
@@ -159,9 +159,16 @@ static struct tty_feature tty_feature_sync = {
};
/* Terminal supports DECSLRM margins. */
+static const char *tty_feature_margins_capabilities[] = {
+ "Enmg=\\E[?69h",
+ "Dsmg=\\E[?69l",
+ "Clmg=\\E[s",
+ "Cmg=\\E[%i%p1%d;%p2%ds",
+ NULL
+};
static struct tty_feature tty_feature_margins = {
"margins",
- NULL,
+ tty_feature_margins_capabilities,
TERM_DECSLRM
};
@@ -194,6 +201,8 @@ tty_add_features(int *feat, const char *s, const char *separators)
char *next, *loop, *copy;
u_int i;
+ log_debug("%s: %s", __func__, s);
+
loop = copy = xstrdup(s);
while ((next = strsep(&loop, separators)) != NULL) {
for (i = 0; i < nitems(tty_features); i++) {