summaryrefslogtreecommitdiffstats
path: root/screen-write.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2011-03-07 23:46:27 +0000
committerNicholas Marriott <nicm@openbsd.org>2011-03-07 23:46:27 +0000
commit79e30daeae1d49a1cf1dc4618edf1ec82804a80c (patch)
tree60ba3ed616a1c1d247a4af715dc27ef8a2d22e76 /screen-write.c
parentd5ed5fb08ff83a2cc38292b3eb0addab21ce6282 (diff)
Support passing through escape sequences to the underlying terminal by
using DCS with a "tmux;" prefix. Escape characters in the sequences must be doubled. For example: $ printf '\033Ptmux;\033\033]12;red\007\033\\' Will pass \033]12;red\007 to the terminal (and change the cursor colour in xterm). From Kevin Goodsell.
Diffstat (limited to 'screen-write.c')
-rw-r--r--screen-write.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/screen-write.c b/screen-write.c
index 4c8382de..09f84bfd 100644
--- a/screen-write.c
+++ b/screen-write.c
@@ -1191,3 +1191,15 @@ screen_write_overwrite(struct screen_write_ctx *ctx, u_int width)
grid_view_set_cell(gd, xx, s->cy, &grid_default_cell);
}
}
+
+void
+screen_write_rawstring(struct screen_write_ctx *ctx, u_char *str, u_int len)
+{
+ struct tty_ctx ttyctx;
+
+ screen_write_initctx(ctx, &ttyctx, 0);
+ ttyctx.ptr = str;
+ ttyctx.num = len;
+
+ tty_write(tty_cmd_rawstring, &ttyctx);
+}