diff --git a/Makefile b/Makefile index 924ac4ec..b565c44b 100644 --- a/Makefile +++ b/Makefile @@ -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/tmux.h b/tmux.h index d8d1c659..70c5a4b8 100644 --- a/tmux.h +++ b/tmux.h @@ -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/tty-write.c b/tty-write.c deleted file mode 100644 index 2d44d7f8..00000000 --- a/tty-write.c +++ /dev/null @@ -1,52 +0,0 @@ -/* $OpenBSD$ */ - -/* - * Copyright (c) 2007 Nicholas Marriott - * - * 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 - -#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/tty.c b/tty.c index cae894b8..05342b82 100644 --- a/tty.c +++ b/tty.c @@ -517,6 +517,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) {