aboutsummaryrefslogtreecommitdiff
path: root/tty-features.c
diff options
context:
space:
mode:
Diffstat (limited to 'tty-features.c')
-rw-r--r--tty-features.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/tty-features.c b/tty-features.c
index 7505c96b..d19160ff 100644
--- a/tty-features.c
+++ b/tty-features.c
@@ -201,7 +201,7 @@ tty_add_features(int *feat, const char *s, const char *separators)
char *next, *loop, *copy;
u_int i;
- log_debug("%s: %s", __func__, s);
+ log_debug("adding terminal features %s", s);
loop = copy = xstrdup(s);
while ((next = strsep(&loop, separators)) != NULL) {
@@ -275,3 +275,39 @@ tty_apply_features(struct tty_term *term, int feat)
term->features |= feat;
return (1);
}
+
+void
+tty_default_features(int *feat, const char *name, u_int version)
+{
+ static struct {
+ const char *name;
+ u_int version;
+ const char *features;
+ } table[] = {
+ { .name = "mintty",
+ .features = "256,RGB,ccolour,clipboard,cstyle,margins,overline,title"
+ },
+ { .name = "tmux",
+ .features = "256,RGB,ccolour,clipboard,cstyle,overline,title,usstyle"
+ },
+ { .name = "rxvt-unicode",
+ .features = "256,title"
+ },
+ { .name = "iTerm2",
+ .features = "256,RGB,clipboard,cstyle,margins,sync,title"
+ },
+ { .name = "XTerm",
+ .features = "256,RGB,ccolour,clipboard,cstyle,margins,rectfill,title"
+ }
+ };
+ u_int i;
+
+ for (i = 0; i < nitems(table); i++) {
+ if (strcmp(table[i].name, name) != 0)
+ continue;
+ if (version != 0 && version < table[i].version)
+ continue;
+ tty_add_features(feat, table[i].features, ",");
+ }
+
+}