diff options
-rw-r--r-- | tmux.h | 6 | ||||
-rw-r--r-- | tty-write.c | 52 | ||||
-rw-r--r-- | tty.c | 33 |
3 files changed, 33 insertions, 58 deletions
@@ -1,4 +1,4 @@ -/* $Id: tmux.h,v 1.384 2009-07-23 12:48:18 tcunha Exp $ */ +/* $Id: tmux.h,v 1.385 2009-07-23 12:57:45 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -790,7 +790,6 @@ struct tty_ctx { u_int orupper; u_int orlower; }; -typedef void tty_cmd_func(struct tty *, struct tty_ctx *); /* Client connection. */ struct client { @@ -1076,9 +1075,6 @@ void tty_keys_init(struct tty *); void tty_keys_free(struct tty *); int tty_keys_next(struct tty *, int *, u_char *); -/* tty-write.c */ -void tty_write(tty_cmd_func *, struct tty_ctx *); - /* options-cmd.c */ void set_option_string(struct cmd_ctx *, struct options *, const struct set_option_entry *, char *); diff --git a/tty-write.c b/tty-write.c deleted file mode 100644 index 7072c4ad..00000000 --- a/tty-write.c +++ /dev/null @@ -1,52 +0,0 @@ -/* $Id: tty-write.c,v 1.22 2009-07-23 12:48:18 tcunha Exp $ */ - -/* - * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING - * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <sys/types.h> - -#include "tmux.h" - -void -tty_write(tty_cmd_func *cmdfn, struct tty_ctx *ctx) -{ - struct window_pane *wp = ctx->wp; - struct client *c; - u_int i; - - if (wp == NULL) - return; - - if (wp->window->flags & WINDOW_REDRAW || wp->flags & PANE_REDRAW) - return; - if (wp->window->flags & WINDOW_HIDDEN || !window_pane_visible(wp)) - return; - - for (i = 0; i < ARRAY_LENGTH(&clients); i++) { - c = ARRAY_ITEM(&clients, i); - if (c == NULL || c->session == NULL) - continue; - if (c->flags & CLIENT_SUSPENDED) - continue; - - if (c->session->curw->window == wp->window) { - if (c->tty.flags & TTY_FREEZE || c->tty.term == NULL) - continue; - tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR); - cmdfn(&c->tty, ctx); - } - } -} @@ -1,4 +1,4 @@ -/* $Id: tty.c,v 1.117 2009-07-23 12:48:18 tcunha Exp $ */ +/* $Id: tty.c,v 1.118 2009-07-23 12:57:45 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -528,6 +528,37 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int py, u_int ox, u_int oy) } void +tty_write(void (*cmdfn)(struct tty *, struct tty_ctx *), struct tty_ctx *ctx) +{ + struct window_pane *wp = ctx->wp; + struct client *c; + u_int i; + + if (wp == NULL) + return; + + if (wp->window->flags & WINDOW_REDRAW || wp->flags & PANE_REDRAW) + return; + if (wp->window->flags & WINDOW_HIDDEN || !window_pane_visible(wp)) + return; + + for (i = 0; i < ARRAY_LENGTH(&clients); i++) { + c = ARRAY_ITEM(&clients, i); + if (c == NULL || c->session == NULL) + continue; + if (c->flags & CLIENT_SUSPENDED) + continue; + + if (c->session->curw->window == wp->window) { + if (c->tty.flags & TTY_FREEZE || c->tty.term == NULL) + continue; + tty_update_mode(&c->tty, c->tty.mode & ~MODE_CURSOR); + cmdfn(&c->tty, ctx); + } + } +} + +void tty_cmd_insertcharacter(struct tty *tty, struct tty_ctx *ctx) { struct window_pane *wp = ctx->wp; |