From 66f04514cf23a6202ad2dae3cdb96cd0ae74010c Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sat, 21 Jan 2012 08:10:21 +0000 Subject: Add a -R flag to send-keys to reset the terminal. Written ages ago and Suggested by someone, I forget who. --- cmd-send-keys.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'cmd-send-keys.c') diff --git a/cmd-send-keys.c b/cmd-send-keys.c index 8181e563..2e4775aa 100644 --- a/cmd-send-keys.c +++ b/cmd-send-keys.c @@ -19,6 +19,7 @@ #include #include +#include #include "tmux.h" @@ -30,8 +31,8 @@ int cmd_send_keys_exec(struct cmd *, struct cmd_ctx *); const struct cmd_entry cmd_send_keys_entry = { "send-keys", "send", - "t:", 0, -1, - "[-t target-pane] key ...", + "Rt:", 0, -1, + "[-R] [-t target-pane] key ...", 0, NULL, NULL, @@ -44,12 +45,29 @@ cmd_send_keys_exec(struct cmd *self, struct cmd_ctx *ctx) struct args *args = self->args; struct window_pane *wp; struct session *s; + struct input_ctx *ictx; const char *str; int i, key; if (cmd_find_pane(ctx, args_get(args, 't'), &s, &wp) == NULL) return (-1); + if (args_has(args, 'R')) { + ictx = &wp->ictx; + + memcpy(&ictx->cell, &grid_default_cell, sizeof ictx->cell); + memcpy(&ictx->old_cell, &ictx->cell, sizeof ictx->old_cell); + ictx->old_cx = 0; + ictx->old_cy = 0; + + if (wp->mode == NULL) + screen_write_start(&ictx->ctx, wp, &wp->base); + else + screen_write_start(&ictx->ctx, NULL, &wp->base); + screen_write_reset(&ictx->ctx); + screen_write_stop(&ictx->ctx); + } + for (i = 0; i < args->argc; i++) { str = args->argv[i]; -- cgit v1.2.3