diff options
-rw-r--r-- | usr.bin/tmux/Makefile | 4 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.h | 6 | ||||
-rw-r--r-- | usr.bin/tmux/tty-write.c | 52 | ||||
-rw-r--r-- | usr.bin/tmux/tty.c | 33 |
4 files changed, 35 insertions, 60 deletions
diff --git a/usr.bin/tmux/Makefile b/usr.bin/tmux/Makefile index 9f371d71814..9f430f13a03 100644 --- a/usr.bin/tmux/Makefile +++ b/usr.bin/tmux/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.9 2009/07/19 13:21:40 nicm Exp $ +# $OpenBSD: Makefile,v 1.10 2009/07/22 20:56:58 nicm Exp $ PROG= tmux SRCS= attributes.c buffer-poll.c buffer.c cfg.c client-fn.c \ @@ -31,7 +31,7 @@ SRCS= attributes.c buffer-poll.c buffer.c cfg.c client-fn.c \ mode-key.c names.c options-cmd.c options.c paste.c procname.c \ resize.c screen-redraw.c screen-write.c screen.c server-fn.c \ server-msg.c server.c session.c status.c tmux.c tty-keys.c tty-term.c \ - tty-write.c tty.c utf8.c window-choose.c window-clock.c \ + tty.c utf8.c window-choose.c window-clock.c \ window-copy.c window-more.c window-scroll.c window.c xmalloc.c CDIAGFLAGS+= -Wno-long-long -Wall -W -Wnested-externs -Wformat=2 diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h index a0f9d2788ae..d4d67d70473 100644 --- a/usr.bin/tmux/tmux.h +++ b/usr.bin/tmux/tmux.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.49 2009/07/22 20:53:38 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.50 2009/07/22 20:56:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -791,7 +791,6 @@ struct tty_ctx { u_int orupper; u_int orlower; }; -typedef void tty_cmd_func(struct tty *, struct tty_ctx *); /* Client connection. */ struct client { @@ -1077,9 +1076,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/usr.bin/tmux/tty-write.c b/usr.bin/tmux/tty-write.c deleted file mode 100644 index 6e01b65d628..00000000000 --- a/usr.bin/tmux/tty-write.c +++ /dev/null @@ -1,52 +0,0 @@ -/* $OpenBSD: tty-write.c,v 1.7 2009/07/22 20:53:38 nicm 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); - } - } -} diff --git a/usr.bin/tmux/tty.c b/usr.bin/tmux/tty.c index 75a3aa0e20e..7a05fe6afc7 100644 --- a/usr.bin/tmux/tty.c +++ b/usr.bin/tmux/tty.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty.c,v 1.14 2009/07/22 20:53:38 nicm Exp $ */ +/* $OpenBSD: tty.c,v 1.15 2009/07/22 20:56:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -518,6 +518,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; |