From cdf472f2dee886da6ce820a539238b0d567e84ae Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 30 Apr 2009 06:01:24 +0000 Subject: [PATCH] Merge resize-pane-{up,down} into resize-pane. --- CHANGES | 7 ++- GNUmakefile | 4 +- Makefile | 4 +- cmd-resize-pane-down.c | 122 ----------------------------------------- cmd-resize-pane-up.c | 117 --------------------------------------- cmd.c | 5 +- key-bindings.c | 10 ++-- tmux.1 | 24 ++++---- tmux.h | 5 +- 9 files changed, 29 insertions(+), 269 deletions(-) delete mode 100644 cmd-resize-pane-down.c delete mode 100644 cmd-resize-pane-up.c diff --git a/CHANGES b/CHANGES index e5da4b80..2f4115a5 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,8 @@ +30 April 2009 + +* Merge resize-pane-up and resize-pane-down into resize-pane with -U and -D + flags. + 29 April 2009 * Get rid of compat/vis.* - only one function was used which is easily @@ -1229,7 +1234,7 @@ (including mutt, emacs). No status bar yet and no key remapping or other customisation. -$Id: CHANGES,v 1.278 2009-04-29 22:25:20 nicm Exp $ +$Id: CHANGES,v 1.279 2009-04-30 06:01:23 nicm Exp $ LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB ms diff --git a/GNUmakefile b/GNUmakefile index 3a8a818d..ceb09989 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.89 2009-04-29 23:07:35 nicm Exp $ +# $Id: GNUmakefile,v 1.90 2009-04-30 06:01:23 nicm Exp $ .PHONY: clean @@ -34,7 +34,7 @@ SRCS= tmux.c server.c server-msg.c server-fn.c buffer.c buffer-poll.c status.c \ cmd-respawn-window.c cmd-source-file.c cmd-server-info.c \ cmd-clock-mode.c cmd-lock-server.c cmd-set-password.c \ cmd-save-buffer.c cmd-select-pane.c cmd-split-window.c \ - cmd-resize-pane-up.c cmd-resize-pane-down.c cmd-kill-pane.c \ + cmd-resize-pane.c cmd-kill-pane.c \ cmd-up-pane.c cmd-down-pane.c cmd-choose-window.c cmd-choose-session.c \ cmd-suspend-client.c cmd-find-window.c cmd-load-buffer.c \ cmd-copy-buffer.c cmd-break-pane.c cmd-swap-pane.c cmd-next-layout.c \ diff --git a/Makefile b/Makefile index 6449652e..ec2b385d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.127 2009-04-29 23:07:35 nicm Exp $ +# $Id: Makefile,v 1.128 2009-04-30 06:01:23 nicm Exp $ .SUFFIXES: .c .o .y .h .PHONY: clean update-index.html upload-index.html @@ -37,7 +37,7 @@ SRCS= tmux.c server.c server-msg.c server-fn.c buffer.c buffer-poll.c status.c \ cmd-respawn-window.c cmd-source-file.c cmd-server-info.c \ cmd-clock-mode.c cmd-lock-server.c cmd-set-password.c \ cmd-save-buffer.c cmd-select-pane.c cmd-split-window.c \ - cmd-resize-pane-up.c cmd-resize-pane-down.c cmd-kill-pane.c \ + cmd-resize-pane.c cmd-kill-pane.c \ cmd-up-pane.c cmd-down-pane.c cmd-choose-window.c cmd-choose-session.c \ cmd-suspend-client.c cmd-find-window.c cmd-load-buffer.c \ cmd-copy-buffer.c cmd-break-pane.c cmd-swap-pane.c cmd-next-layout.c \ diff --git a/cmd-resize-pane-down.c b/cmd-resize-pane-down.c deleted file mode 100644 index 7f85614c..00000000 --- a/cmd-resize-pane-down.c +++ /dev/null @@ -1,122 +0,0 @@ -/* $Id: cmd-resize-pane-down.c,v 1.8 2009-04-02 21:11:52 nicm Exp $ */ - -/* - * Copyright (c) 2009 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 - -#include "tmux.h" - -/* - * Decrease pane size. - */ - -void cmd_resize_pane_down_init(struct cmd *, int); -int cmd_resize_pane_down_exec(struct cmd *, struct cmd_ctx *); - -const struct cmd_entry cmd_resize_pane_down_entry = { - "resize-pane-down", "resizep-down", - CMD_PANE_WINDOW_USAGE " [adjustment]", - CMD_ARG01, - cmd_resize_pane_down_init, - cmd_pane_parse, - cmd_resize_pane_down_exec, - cmd_pane_send, - cmd_pane_recv, - cmd_pane_free, - cmd_pane_print -}; - -void -cmd_resize_pane_down_init(struct cmd *self, int key) -{ - struct cmd_pane_data *data; - - cmd_pane_init(self, key); - data = self->data; - - if (key == KEYC_ADDESC(KEYC_DOWN)) - data->arg = xstrdup("5"); -} - -int -cmd_resize_pane_down_exec(struct cmd *self, struct cmd_ctx *ctx) -{ - struct cmd_pane_data *data = self->data; - struct winlink *wl; - const char *errstr; - struct window_pane *wp, *wq; - u_int adjust; - - if ((wl = cmd_find_window(ctx, data->target, NULL)) == NULL) - return (-1); - if (wl->window->layout != 0) { - ctx->error(ctx, "window not in manual layout"); - return (-1); - } - if (data->pane == -1) - wp = wl->window->active; - else { - wp = window_pane_at_index(wl->window, data->pane); - if (wp == NULL) { - ctx->error(ctx, "no pane: %d", data->pane); - return (-1); - } - } - - if (data->arg == NULL) - adjust = 1; - else { - adjust = strtonum(data->arg, 1, INT_MAX, &errstr); - if (errstr != NULL) { - ctx->error(ctx, "adjustment %s: %s", errstr, data->arg); - return (-1); - } - } - - /* - * If this is not the last window, keep trying to increase size and - * remove it from the next windows. If it is the last, do so on the - * previous window. - */ - if (TAILQ_NEXT(wp, entry) == NULL) { - if (wp == TAILQ_FIRST(&wl->window->panes)) { - /* Only one pane. */ - return (0); - } - wp = TAILQ_PREV(wp, window_panes, entry); - } - while (adjust-- > 0) { - wq = wp; - while ((wq = TAILQ_NEXT(wq, entry)) != NULL) { - if (wq->sy > PANE_MINIMUM) { - window_pane_resize(wq, wq->sx, wq->sy - 1); - break; - } - } - if (wq == NULL) - break; - window_pane_resize(wp, wp->sx, wp->sy + 1); - - } - window_update_panes(wl->window); - - server_redraw_window(wl->window); - - return (0); -} diff --git a/cmd-resize-pane-up.c b/cmd-resize-pane-up.c deleted file mode 100644 index 11d102b9..00000000 --- a/cmd-resize-pane-up.c +++ /dev/null @@ -1,117 +0,0 @@ -/* $Id: cmd-resize-pane-up.c,v 1.8 2009-04-02 21:11:52 nicm Exp $ */ - -/* - * Copyright (c) 2009 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 - -#include "tmux.h" - -/* - * Increase pane size. - */ - -void cmd_resize_pane_up_init(struct cmd *, int); -int cmd_resize_pane_up_exec(struct cmd *, struct cmd_ctx *); - -const struct cmd_entry cmd_resize_pane_up_entry = { - "resize-pane-up", "resizep-up", - CMD_PANE_WINDOW_USAGE " [adjustment]", - CMD_ARG01, - cmd_resize_pane_up_init, - cmd_pane_parse, - cmd_resize_pane_up_exec, - cmd_pane_send, - cmd_pane_recv, - cmd_pane_free, - cmd_pane_print -}; - -void -cmd_resize_pane_up_init(struct cmd *self, int key) -{ - struct cmd_pane_data *data; - - cmd_pane_init(self, key); - data = self->data; - - if (key == KEYC_ADDESC(KEYC_UP)) - data->arg = xstrdup("5"); -} - -int -cmd_resize_pane_up_exec(struct cmd *self, struct cmd_ctx *ctx) -{ - struct cmd_pane_data *data = self->data; - struct winlink *wl; - const char *errstr; - struct window_pane *wp, *wq; - u_int adjust; - - if ((wl = cmd_find_window(ctx, data->target, NULL)) == NULL) - return (-1); - if (wl->window->layout != 0) { - ctx->error(ctx, "window not in manual layout"); - return (-1); - } - if (data->pane == -1) - wp = wl->window->active; - else { - wp = window_pane_at_index(wl->window, data->pane); - if (wp == NULL) { - ctx->error(ctx, "no pane: %d", data->pane); - return (-1); - } - } - - if (data->arg == NULL) - adjust = 1; - else { - adjust = strtonum(data->arg, 1, INT_MAX, &errstr); - if (errstr != NULL) { - ctx->error(ctx, "adjustment %s: %s", errstr, data->arg); - return (-1); - } - } - - /* - * If this is not the last window, keep trying to reduce size and add - * to the following window. If it is the last, do so on the previous - * window. - */ - wq = TAILQ_NEXT(wp, entry); - if (wq == NULL) { - if (wp == TAILQ_FIRST(&wl->window->panes)) { - /* Only one pane. */ - return (0); - } - wq = wp; - wp = TAILQ_PREV(wq, window_panes, entry); - } - while (adjust-- > 0) { - if (wp->sy <= PANE_MINIMUM) - break; - window_pane_resize(wq, wq->sx, wq->sy + 1); - window_pane_resize(wp, wp->sx, wp->sy - 1); - } - window_update_panes(wl->window); - - server_redraw_window(wl->window); - - return (0); -} diff --git a/cmd.c b/cmd.c index b8f3f2ec..34d499ba 100644 --- a/cmd.c +++ b/cmd.c @@ -1,4 +1,4 @@ -/* $Id: cmd.c,v 1.90 2009-04-27 13:21:15 tcunha Exp $ */ +/* $Id: cmd.c,v 1.91 2009-04-30 06:01:24 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -65,8 +65,7 @@ const struct cmd_entry *cmd_table[] = { &cmd_refresh_client_entry, &cmd_rename_session_entry, &cmd_rename_window_entry, - &cmd_resize_pane_down_entry, - &cmd_resize_pane_up_entry, + &cmd_resize_pane_entry, &cmd_respawn_window_entry, &cmd_rotate_window_entry, &cmd_save_buffer_entry, diff --git a/key-bindings.c b/key-bindings.c index 163551b6..e0110359 100644 --- a/key-bindings.c +++ b/key-bindings.c @@ -1,4 +1,4 @@ -/* $Id: key-bindings.c,v 1.67 2009-04-27 13:21:15 tcunha Exp $ */ +/* $Id: key-bindings.c,v 1.68 2009-04-30 06:01:24 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -124,10 +124,10 @@ key_bindings_init(void) { KEYC_ADDESC('p'), 0, &cmd_previous_window_entry }, { KEYC_UP, 1, &cmd_up_pane_entry }, { KEYC_DOWN, 1, &cmd_down_pane_entry }, - { KEYC_ADDESC(KEYC_UP), 1, &cmd_resize_pane_up_entry }, - { KEYC_ADDESC(KEYC_DOWN), 1, &cmd_resize_pane_down_entry }, - { KEYC_ADDCTL(KEYC_UP), 1, &cmd_resize_pane_up_entry }, - { KEYC_ADDCTL(KEYC_DOWN), 1, &cmd_resize_pane_down_entry }, + { KEYC_ADDESC(KEYC_UP), 1, &cmd_resize_pane_entry }, + { KEYC_ADDESC(KEYC_DOWN), 1, &cmd_resize_pane_entry }, + { KEYC_ADDCTL(KEYC_UP), 1, &cmd_resize_pane_entry }, + { KEYC_ADDCTL(KEYC_DOWN), 1, &cmd_resize_pane_entry }, { KEYC_ADDESC('o'), 0, &cmd_rotate_window_entry }, { '\017', 0, &cmd_rotate_window_entry }, }; diff --git a/tmux.1 b/tmux.1 index e1a6f6e6..0fe22cd4 100644 --- a/tmux.1 +++ b/tmux.1 @@ -1,4 +1,4 @@ -.\" $Id: tmux.1,v 1.93 2009-04-28 18:29:44 tcunha Exp $ +.\" $Id: tmux.1,v 1.94 2009-04-30 06:01:24 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott .\" @@ -322,10 +322,8 @@ The following layouts are supported: .It Ic manual Manual layout splits windows vertically (running across); only with this layout may panes be resized using the -.Ic resize-pane-up -and -.Ic resize-pane-down -commands. +.Ic resize-pane +command. .It Ic active-only Only the active pane is shown - all other panes are hidden. .It Ic even-horizontal @@ -755,19 +753,17 @@ Rename the current window, or the window at .Ar target-window if specified, to .Ar new-name . -.It Xo Ic resize-pane-down +.It Xo Ic resize-pane +.Op Fl DU .Op Fl p Ar pane-index .Op Fl t Ar target-window .Op Ar adjustment .Xc -.D1 (alias: Ic resizep-down ) -.It Xo Ic resize-pane-up -.Op Fl p Ar pane-index -.Op Fl t Ar target-window -.Op Ar adjustment -.Xc -.D1 (alias: Ic resizep-up) -Resize a pane. +.D1 (alias: Ic resizep ) +Resize a pane, upward with +.Fl U +(the default) or downward with +.Fl D . The .Ar adjustment is given in lines (the default is 1). diff --git a/tmux.h b/tmux.h index 7bb57597..689089c2 100644 --- a/tmux.h +++ b/tmux.h @@ -1,4 +1,4 @@ -/* $Id: tmux.h,v 1.305 2009-04-29 22:25:20 nicm Exp $ */ +/* $Id: tmux.h,v 1.306 2009-04-30 06:01:24 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -1220,8 +1220,7 @@ extern const struct cmd_entry cmd_previous_window_entry; extern const struct cmd_entry cmd_refresh_client_entry; extern const struct cmd_entry cmd_rename_session_entry; extern const struct cmd_entry cmd_rename_window_entry; -extern const struct cmd_entry cmd_resize_pane_down_entry; -extern const struct cmd_entry cmd_resize_pane_up_entry; +extern const struct cmd_entry cmd_resize_pane_entry; extern const struct cmd_entry cmd_respawn_window_entry; extern const struct cmd_entry cmd_rotate_window_entry; extern const struct cmd_entry cmd_save_buffer_entry;