The branch, master has been updated
via 696b5a628f0f31f4c3566b5c0ab51fbd9f9f9880 (commit)
via 562af864bd8ab06c416075b5742ce3bbcf6d0610 (commit)
via 0a1a88d63caf3a0e8b4440686e73e1f0f690e03c (commit)
via 4c42381410891c43b1326e95f150dfcf637b1e69 (commit)
via 900f6fc17e6764377a8e293ce742fb41f1add9bd (commit)
via 30bacf6f3038a867b53143150944f0997558114b (commit)
via 8a5ceac3a9a21ec70c480d284dc1fc6907af2ce0 (commit)
via f5bc85591a1f7c26bf030f5781d63985b2ee4d23 (commit)
via 7afe417a60a3b80ba16cd758b62e3f500350fb3e (commit)
via 45dfc5a074e2ceae11a6d4aeae597bee1e028503 (commit)
via f0b69c771173583eee8f1457c080746ea6144c5f (commit)
from e44bdcce4c661b52d07f30962aafa800d9ca5e28 (commit)
- Log -----------------------------------------------------------------
commit 696b5a628f0f31f4c3566b5c0ab51fbd9f9f9880
Merge: 562af86 e44bdcc
Author: Thomas Adam <[email protected]>
Commit: Thomas Adam <[email protected]>
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
commit 562af864bd8ab06c416075b5742ce3bbcf6d0610
Merge: b6aef24 0a1a88d
Author: Thomas Adam <[email protected]>
Commit: Thomas Adam <[email protected]>
Merge branch 'obsd-master'
Conflicts:
Makefile
cmd-list-commands.c
cmd-suspend-client.c
job.c
tmux.h
xmalloc.c
Makefile.am | 3 -
arguments.c | 1 +
array.h | 4 +-
client.c | 13 ++--
cmd-attach-session.c | 1 -
cmd-bind-key.c | 1 -
cmd-break-pane.c | 3 +-
cmd-capture-pane.c | 3 +-
cmd-choose-buffer.c | 4 +-
cmd-choose-client.c | 7 ++-
cmd-choose-tree.c | 12 +++-
cmd-clear-history.c | 1 -
cmd-clock-mode.c | 1 -
cmd-command-prompt.c | 30 --------
cmd-confirm-before.c | 22 +-----
cmd-copy-mode.c | 10 ---
cmd-delete-buffer.c | 1 -
cmd-detach-client.c | 18 +++++-
cmd-display-message.c | 6 ++-
cmd-display-panes.c | 1 -
cmd-find-window.c | 6 ++-
cmd-has-session.c | 1 -
cmd-if-shell.c | 1 -
cmd-join-pane.c | 17 -----
cmd-kill-pane.c | 1 -
cmd-kill-server.c | 2 -
cmd-kill-session.c | 1 -
cmd-kill-window.c | 1 -
cmd-link-window.c | 1 -
cmd-list-buffers.c | 4 +-
cmd-list-clients.c | 6 ++-
cmd-list-commands.c | 54 --------------
cmd-list-keys.c | 33 +++++++++-
cmd-list-panes.c | 1 -
cmd-list-sessions.c | 9 ++-
cmd-list-windows.c | 17 ++++-
cmd-load-buffer.c | 1 -
cmd-lock-server.c | 3 -
cmd-move-window.c | 1 -
cmd-new-session.c | 17 ++++-
cmd-new-window.c | 3 +-
cmd-paste-buffer.c | 1 -
cmd-pipe-pane.c | 1 -
cmd-queue.c | 4 +-
cmd-refresh-client.c | 1 -
cmd-rename-session.c | 1 -
cmd-rename-window.c | 1 -
cmd-resize-pane.c | 48 -------------
cmd-respawn-pane.c | 1 -
cmd-respawn-window.c | 1 -
cmd-rotate-window.c | 10 ---
cmd-run-shell.c | 1 -
cmd-save-buffer.c | 4 +-
cmd-select-layout.c | 29 --------
cmd-select-pane.c | 19 -----
cmd-select-window.c | 19 -----
cmd-send-keys.c | 2 -
cmd-set-buffer.c | 3 +-
cmd-set-environment.c | 1 -
cmd-set-option.c | 2 -
cmd-show-environment.c | 1 -
cmd-show-messages.c | 2 -
cmd-show-options.c | 2 -
cmd-source-file.c | 1 -
cmd-split-window.c | 12 +---
cmd-string.c | 19 +++---
cmd-suspend-client.c | 55 ---------------
cmd-swap-pane.c | 12 ---
cmd-swap-window.c | 1 -
cmd-switch-client.c | 19 -----
cmd-unbind-key.c | 1 -
cmd-unlink-window.c | 1 -
cmd-wait-for.c | 1 -
cmd.c | 99 +++++++++++++++------------
control.c | 2 +-
format.c | 9 ++-
grid.c | 15 +++--
input.c | 4 +-
job.c | 1 +
key-bindings.c | 180 +++++++++++++++++++++++-------------------------
log.c | 6 +-
options.c | 2 +-
osdep-cygwin.c | 2 +-
osdep-linux.c | 3 +-
paste.c | 2 +-
screen-write.c | 28 ++++----
screen.c | 10 ++--
server-client.c | 1 +
server-fn.c | 2 +-
signal.c | 2 +
status.c | 15 +++--
style.c | 2 +
tmux.1 | 17 ++---
tmux.c | 7 +-
tmux.h | 126 +++++++---------------------------
tty-acs.c | 2 +-
utf8.c | 8 +-
window-choose.c | 2 +-
window-copy.c | 18 ++++--
xmalloc.c | 26 +++++--
100 files changed, 432 insertions(+), 757 deletions(-)
diff --cc Makefile.am
index 04107ab,0000000..81ef1b2
mode 100644,000000..100644
--- a/Makefile.am
+++ b/Makefile.am
@@@ -1,270 -1,0 +1,267 @@@
+# $Id$
+
+# Obvious program stuff.
+bin_PROGRAMS = tmux
+CLEANFILES = tmux.1.mdoc tmux.1.man
+
+# Distribution tarball options.
+EXTRA_DIST = \
+ CHANGES FAQ README TODO COPYING examples compat \
+ array.h compat.h tmux.h osdep-*.c mdoc2man.awk tmux.1
+dist-hook:
+ make clean
+ grep "^#found_debug=" configure
+ find $(distdir) -name .svn -type d|xargs rm -Rf
+
+# Preprocessor flags.
+CPPFLAGS += @XOPEN_DEFINES@ -DTMUX_CONF="\"$(sysconfdir)/tmux.conf\""
+
+# glibc as usual does things ass-backwards and hides useful things by default,
+# so everyone has to add this.
+if IS_GLIBC
+CFLAGS += -D_GNU_SOURCE
+endif
+
+# Set flags for gcc. gcc4 whines abouts silly stuff so it needs slightly
+# different flags.
+if IS_GCC
+CFLAGS += -std=gnu99 -O2
+if IS_DEBUG
+CFLAGS += -g
+CFLAGS += -Wno-long-long -Wall -W -Wnested-externs -Wformat=2
+CFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
+CFLAGS += -Wwrite-strings -Wshadow -Wpointer-arith -Wsign-compare
+CFLAGS += -Wundef -Wbad-function-cast -Winline -Wcast-align
+CFLAGS += -Wdeclaration-after-statement
+CPPFLAGS += -DDEBUG
+endif
+if IS_GCC4
+CPPFLAGS += -iquote. -I/usr/local/include
+if IS_DEBUG
+CFLAGS += -Wno-pointer-sign
+endif
+else
+CPPFLAGS += -I. -I- -I/usr/local/include
+endif
+endif
+
+# Set flags for Solaris.
+if IS_SUNOS
+if IS_GCC
+CPPFLAGS += -D_XPG6 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
+else
+CPPFLAGS += -D_XPG4_2 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
+endif
+endif
+
+# Set flags for Sun CC.
+if IS_SUNCC
+CFLAGS += -erroff=E_EMPTY_DECLARATION
+endif
+
+# List of sources.
+dist_tmux_SOURCES = \
+ arguments.c \
+ attributes.c \
+ cfg.c \
+ client.c \
+ cmd-attach-session.c \
+ cmd-bind-key.c \
+ cmd-break-pane.c \
+ cmd-capture-pane.c \
+ cmd-choose-buffer.c \
+ cmd-choose-client.c \
+ cmd-choose-tree.c \
+ cmd-clear-history.c \
+ cmd-clock-mode.c \
+ cmd-command-prompt.c \
+ cmd-confirm-before.c \
+ cmd-copy-mode.c \
+ cmd-delete-buffer.c \
+ cmd-detach-client.c \
+ cmd-display-message.c \
+ cmd-display-panes.c \
+ cmd-find-window.c \
- cmd-has-session.c \
+ cmd-if-shell.c \
+ cmd-join-pane.c \
+ cmd-kill-pane.c \
+ cmd-kill-server.c \
+ cmd-kill-session.c \
+ cmd-kill-window.c \
+ cmd-link-window.c \
+ cmd-list-buffers.c \
+ cmd-list-clients.c \
- cmd-list-commands.c \
+ cmd-list-keys.c \
+ cmd-list-panes.c \
+ cmd-list-sessions.c \
+ cmd-list-windows.c \
+ cmd-list.c \
+ cmd-load-buffer.c \
+ cmd-lock-server.c \
+ cmd-move-window.c \
+ cmd-new-session.c \
+ cmd-new-window.c \
+ cmd-paste-buffer.c \
+ cmd-pipe-pane.c \
+ cmd-queue.c \
+ cmd-refresh-client.c \
+ cmd-rename-session.c \
+ cmd-rename-window.c \
+ cmd-resize-pane.c \
+ cmd-respawn-pane.c \
+ cmd-respawn-window.c \
+ cmd-rotate-window.c \
+ cmd-run-shell.c \
+ cmd-save-buffer.c \
+ cmd-select-layout.c \
+ cmd-select-pane.c \
+ cmd-select-window.c \
+ cmd-send-keys.c \
+ cmd-set-buffer.c \
+ cmd-set-environment.c \
+ cmd-set-option.c \
+ cmd-show-environment.c \
+ cmd-show-messages.c \
+ cmd-show-options.c \
+ cmd-source-file.c \
+ cmd-split-window.c \
+ cmd-string.c \
- cmd-suspend-client.c \
+ cmd-swap-pane.c \
+ cmd-swap-window.c \
+ cmd-switch-client.c \
+ cmd-unbind-key.c \
+ cmd-unlink-window.c \
+ cmd-wait-for.c \
+ cmd.c \
+ colour.c \
+ control.c \
+ control-notify.c \
+ environ.c \
+ format.c \
+ grid-cell.c \
+ grid-view.c \
+ grid.c \
+ input-keys.c \
+ input.c \
+ job.c \
+ key-bindings.c \
+ key-string.c \
+ layout-custom.c \
+ layout-set.c \
+ layout.c \
+ log.c \
+ mode-key.c \
+ names.c \
+ notify.c \
+ options-table.c \
+ options.c \
+ paste.c \
+ resize.c \
+ screen-redraw.c \
+ screen-write.c \
+ screen.c \
+ server-client.c \
+ server-fn.c \
+ server-window.c \
+ server.c \
+ session.c \
+ signal.c \
+ status.c \
+ style.c \
+ tmux.c \
+ tty-acs.c \
+ tty-keys.c \
+ tty-term.c \
+ tty.c \
+ utf8.c \
+ window-choose.c \
+ window-clock.c \
+ window-copy.c \
+ window.c \
+ xmalloc.c \
+ xterm-keys.c
+nodist_tmux_SOURCES = osdep-@[email protected]
+
+# Pile in all the compat/ stuff that is needed.
+if NO_FORKPTY
+nodist_tmux_SOURCES += compat/forkpty-@[email protected]
+endif
+if NO_IMSG
+nodist_tmux_SOURCES += compat/imsg.c compat/imsg-buffer.c
+endif
+if NO_CLOSEFROM
+nodist_tmux_SOURCES += compat/closefrom.c
+endif
+if NO_DAEMON
+nodist_tmux_SOURCES += compat/daemon.c
+endif
+if NO_SETENV
+nodist_tmux_SOURCES += compat/setenv.c
+endif
+if NO_STRLCAT
+nodist_tmux_SOURCES += compat/strlcat.c
+endif
+if NO_STRLCPY
+nodist_tmux_SOURCES += compat/strlcpy.c
+endif
+if NO_ASPRINTF
+nodist_tmux_SOURCES += compat/asprintf.c
+endif
+if NO_FGETLN
+nodist_tmux_SOURCES += compat/fgetln.c
+endif
+if NO_FPARSELN
+nodist_tmux_SOURCES += compat/fparseln.c
+endif
+if NO_GETOPT
+nodist_tmux_SOURCES += compat/getopt.c
+endif
+if NO_STRCASESTR
+nodist_tmux_SOURCES += compat/strcasestr.c
+endif
+if NO_STRSEP
+nodist_tmux_SOURCES += compat/strsep.c
+endif
+if NO_VIS
+nodist_tmux_SOURCES += compat/vis.c compat/unvis.c
+endif
+if NO_STRTONUM
+nodist_tmux_SOURCES += compat/strtonum.c
+endif
+if NO_B64_NTOP
+nodist_tmux_SOURCES += compat/b64_ntop.c
+endif
+if NO_CFMAKERAW
+nodist_tmux_SOURCES += compat/cfmakeraw.c
+endif
+if NO_OPENAT
+nodist_tmux_SOURCES += compat/openat.c
+endif
+
+# Install tmux.1 in the right format.
+install-exec-hook:
+ if test x@MANFORMAT@ = xmdoc; then \
+ sed -e "s|@SYSCONFDIR@|$(sysconfdir)|g" $(srcdir)/tmux.1 \
+ >$(srcdir)/tmux.1.mdoc; \
+ else \
+ sed -e "s|@SYSCONFDIR@|$(sysconfdir)|g" $(srcdir)/tmux.1| \
+ $(AWK) -f$(srcdir)/mdoc2man.awk >$(srcdir)/tmux.1.man; \
+ fi
+ $(mkdir_p) $(DESTDIR)$(mandir)/man1
+ $(INSTALL_DATA) $(srcdir)/tmux.1.@MANFORMAT@ \
+ $(DESTDIR)$(mandir)/man1/tmux.1
+
+# Update SF web site.
+upload-index.html: update-index.html
+ scp www/index.html www/main.css www/images/*.png \
+ ${USER},[email protected]:/home/groups/t/tm/tmux/htdocs
+ rm -f www/index.html www/images/small-*
+
+update-index.html:
+ (cd www/images && \
+ rm -f small-* && \
+ for i in *.png; do \
+ convert "$$i" -resize 200x150 "small-$$i"; \
+ done \
+ )
+ sed "s/%%RELEASE%%/${RELEASE}/g" www/index.html.in >www/index.html
diff --cc format.c
index baf23ec,b5e5149..105212a
--- a/format.c
+++ b/format.c
@@@ -17,6 -17,6 +17,7 @@@
*/
#include <sys/types.h>
++#include <sys/param.h>
#include <ctype.h>
#include <errno.h>
diff --cc job.c
index 47f25d0,c04a70b..d01472b
--- a/job.c
+++ b/job.c
@@@ -23,6 -23,8 +23,7 @@@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
++#include <signal.h>
#include "tmux.h"
diff --cc osdep-cygwin.c
index 01d2d0c,0000000..f28df37
mode 100644,000000..100644
--- a/osdep-cygwin.c
+++ b/osdep-cygwin.c
@@@ -1,88 -1,0 +1,88 @@@
+/* $Id$ */
+
+/*
+ * Copyright (c) 2009 Nicholas Marriott <[email protected]>
+ *
+ * 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 <sys/stat.h>
+
+#include <event.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "tmux.h"
+
+char *
+osdep_get_name(int fd, unused char *tty)
+{
+ FILE *f;
+ char *path, *buf;
+ size_t len;
+ int ch;
+ pid_t pgrp;
+
+ if ((pgrp = tcgetpgrp(fd)) == -1)
+ return (NULL);
+
+ xasprintf(&path, "/proc/%lld/cmdline", (long long) pgrp);
+ if ((f = fopen(path, "r")) == NULL) {
+ free(path);
+ return (NULL);
+ }
+ free(path);
+
+ len = 0;
+ buf = NULL;
+ while ((ch = fgetc(f)) != EOF) {
+ if (ch == '\0')
+ break;
- buf = xrealloc(buf, 1, len + 2);
++ buf = xrealloc(buf, len + 2);
+ buf[len++] = ch;
+ }
+ if (buf != NULL)
+ buf[len] = '\0';
+
+ fclose(f);
+ return (buf);
+}
+
+char *
+osdep_get_cwd(int fd)
+{
+ static char target[MAXPATHLEN + 1];
+ char *path;
+ pid_t pgrp;
+ ssize_t n;
+
+ if ((pgrp = tcgetpgrp(fd)) == -1)
+ return (NULL);
+
+ xasprintf(&path, "/proc/%lld/cwd", (long long) pgrp);
+ n = readlink(path, target, MAXPATHLEN);
+ free(path);
+ if (n > 0) {
+ target[n] = '\0';
+ return (target);
+ }
+ return (NULL);
+}
+
+struct event_base *
+osdep_event_init(void)
+{
+ return (event_init());
+}
diff --cc osdep-linux.c
index 46aea68,0000000..1850d51
mode 100644,000000..100644
--- a/osdep-linux.c
+++ b/osdep-linux.c
@@@ -1,97 -1,0 +1,98 @@@
+/* $Id$ */
+
+/*
+ * Copyright (c) 2009 Nicholas Marriott <[email protected]>
+ *
+ * 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 <sys/stat.h>
++#include <sys/param.h>
+
+#include <event.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "tmux.h"
+
+char *
+osdep_get_name(int fd, unused char *tty)
+{
+ FILE *f;
+ char *path, *buf;
+ size_t len;
+ int ch;
+ pid_t pgrp;
+
+ if ((pgrp = tcgetpgrp(fd)) == -1)
+ return (NULL);
+
+ xasprintf(&path, "/proc/%lld/cmdline", (long long) pgrp);
+ if ((f = fopen(path, "r")) == NULL) {
+ free(path);
+ return (NULL);
+ }
+ free(path);
+
+ len = 0;
+ buf = NULL;
+ while ((ch = fgetc(f)) != EOF) {
+ if (ch == '\0')
+ break;
- buf = xrealloc(buf, 1, len + 2);
++ buf = xrealloc(buf, len + 2);
+ buf[len++] = ch;
+ }
+ if (buf != NULL)
+ buf[len] = '\0';
+
+ fclose(f);
+ return (buf);
+}
+
+char *
+osdep_get_cwd(int fd)
+{
+ static char target[MAXPATHLEN + 1];
+ char *path;
+ pid_t pgrp, sid;
+ ssize_t n;
+
+ if ((pgrp = tcgetpgrp(fd)) == -1)
+ return (NULL);
+
+ xasprintf(&path, "/proc/%lld/cwd", (long long) pgrp);
+ n = readlink(path, target, MAXPATHLEN);
+ free(path);
+
+ if (n == -1 && ioctl(fd, TIOCGSID, &sid) != -1) {
+ xasprintf(&path, "/proc/%lld/cwd", (long long) sid);
+ n = readlink(path, target, MAXPATHLEN);
+ free(path);
+ }
+
+ if (n > 0) {
+ target[n] = '\0';
+ return (target);
+ }
+ return (NULL);
+}
+
+struct event_base *
+osdep_event_init(void)
+{
+ /* On Linux, epoll doesn't work on /dev/null (yes, really). */
+ setenv("EVENT_NOEPOLL", "1", 1);
+ return (event_init());
+}
diff --cc tmux.c
index 631e850,fabcee5..7669d12
--- a/tmux.c
+++ b/tmux.c
@@@ -22,7 -22,9 +22,8 @@@
#include <errno.h>
#include <event.h>
#include <fcntl.h>
+ #include <getopt.h>
#include <locale.h>
-#include <paths.h>
#include <pwd.h>
#include <stdlib.h>
#include <string.h>
diff --cc tmux.h
index 5ffc07c,1180398..f35c4e5
--- a/tmux.h
+++ b/tmux.h
@@@ -21,14 -21,17 +21,12 @@@
#define PROTOCOL_VERSION 8
- #include <sys/param.h>
#include <sys/time.h>
-#include <sys/queue.h>
-#include <sys/tree.h>
#include <sys/uio.h>
-#include <bitstring.h>
#include <event.h>
-#include <imsg.h>
#include <limits.h>
- #include <signal.h>
#include <stdarg.h>
-#include <stdint.h>
#include <stdio.h>
#include <termios.h>
commit 0a1a88d63caf3a0e8b4440686e73e1f0f690e03c
Author: nicm <nicm>
Commit: nicm <nicm>
Better format for printf format attributes.
---
cmd-queue.c | 4 ++--
control.c | 2 +-
log.c | 6 +++---
options.c | 2 +-
screen-write.c | 26 +++++++++++++-------------
status.c | 2 +-
tmux.h | 46 +++++++++++++++++++++-------------------------
xmalloc.c | 4 ++--
8 files changed, 44 insertions(+), 48 deletions(-)
diff --git a/cmd-queue.c b/cmd-queue.c
index 77460b2..6495d3f 100644
--- a/cmd-queue.c
+++ b/cmd-queue.c
@@ -57,7 +57,7 @@ cmdq_free(struct cmd_q *cmdq)
}
/* Show message from command. */
-void printflike2
+void
cmdq_print(struct cmd_q *cmdq, const char *fmt, ...)
{
struct client *c = cmdq->client;
@@ -87,7 +87,7 @@ cmdq_print(struct cmd_q *cmdq, const char *fmt, ...)
}
/* Show error from command. */
-void printflike2
+void
cmdq_error(struct cmd_q *cmdq, const char *fmt, ...)
{
struct client *c = cmdq->client;
diff --git a/control.c b/control.c
index 8e24fd0..0ace6c1 100644
--- a/control.c
+++ b/control.c
@@ -27,7 +27,7 @@
#include "tmux.h"
/* Write a line. */
-void printflike2
+void
control_write(struct client *c, const char *fmt, ...)
{
va_list ap;
diff --git a/log.c b/log.c
index f329107..b266d5a 100644
--- a/log.c
+++ b/log.c
@@ -80,7 +80,7 @@ log_vwrite(const char *msg, va_list ap)
}
/* Log a debug message. */
-void printflike1
+void
log_debug(const char *msg, ...)
{
va_list ap;
@@ -91,7 +91,7 @@ log_debug(const char *msg, ...)
}
/* Log a critical error with error string and die. */
-__dead void printflike1
+__dead void
log_fatal(const char *msg, ...)
{
char *fmt;
@@ -105,7 +105,7 @@ log_fatal(const char *msg, ...)
}
/* Log a critical error and die. */
-__dead void printflike1
+__dead void
log_fatalx(const char *msg, ...)
{
char *fmt;
diff --git a/options.c b/options.c
index 699dd9b..67f8abd 100644
--- a/options.c
+++ b/options.c
@@ -99,7 +99,7 @@ options_remove(struct options *oo, const char *name)
free(o);
}
-struct options_entry *printflike3
+struct options_entry *
options_set_string(struct options *oo, const char *name, const char *fmt, ...)
{
struct options_entry *o;
diff --git a/screen-write.c b/screen-write.c
index 094ea81..37e2b54 100644
--- a/screen-write.c
+++ b/screen-write.c
@@ -25,13 +25,13 @@
void screen_write_initctx(struct screen_write_ctx *, struct tty_ctx *, int);
void screen_write_overwrite(struct screen_write_ctx *, u_int);
-int screen_write_combine(
- struct screen_write_ctx *, const struct utf8_data *);
+int screen_write_combine(struct screen_write_ctx *,
+ const struct utf8_data *);
/* Initialise writing with a window. */
void
-screen_write_start(
- struct screen_write_ctx *ctx, struct window_pane *wp, struct screen *s)
+screen_write_start(struct screen_write_ctx *ctx, struct window_pane *wp,
+ struct screen *s)
{
ctx->wp = wp;
if (wp != NULL && s == NULL)
@@ -73,7 +73,7 @@ screen_write_putc(struct screen_write_ctx *ctx, struct
grid_cell *gc,
}
/* Calculate string length, with embedded formatting. */
-size_t printflike2
+size_t
screen_write_cstrlen(int utf8flag, const char *fmt, ...)
{
va_list ap;
@@ -108,7 +108,7 @@ screen_write_cstrlen(int utf8flag, const char *fmt, ...)
}
/* Calculate string length. */
-size_t printflike2
+size_t
screen_write_strlen(int utf8flag, const char *fmt, ...)
{
va_list ap;
@@ -145,9 +145,9 @@ screen_write_strlen(int utf8flag, const char *fmt, ...)
}
/* Write simple string (no UTF-8 or maximum length). */
-void printflike3
-screen_write_puts(
- struct screen_write_ctx *ctx, struct grid_cell *gc, const char *fmt, ...)
+void
+screen_write_puts(struct screen_write_ctx *ctx, struct grid_cell *gc,
+ const char *fmt, ...)
{
va_list ap;
@@ -157,9 +157,9 @@ screen_write_puts(
}
/* Write string with length limit (-1 for unlimited). */
-void printflike5
-screen_write_nputs(struct screen_write_ctx *ctx,
- ssize_t maxlen, struct grid_cell *gc, int utf8flag, const char *fmt, ...)
+void
+screen_write_nputs(struct screen_write_ctx *ctx, ssize_t maxlen,
+ struct grid_cell *gc, int utf8flag, const char *fmt, ...)
{
va_list ap;
@@ -221,7 +221,7 @@ screen_write_vnputs(struct screen_write_ctx *ctx, ssize_t
maxlen,
}
/* Write string, similar to nputs, but with embedded formatting (#[]). */
-void printflike5
+void
screen_write_cnputs(struct screen_write_ctx *ctx,
ssize_t maxlen, struct grid_cell *gc, int utf8flag, const char *fmt, ...)
{
diff --git a/status.c b/status.c
index 70e0551..287039e 100644
--- a/status.c
+++ b/status.c
@@ -651,7 +651,7 @@ status_print(
}
/* Set a status line message. */
-void printflike2
+void
status_message_set(struct client *c, const char *fmt, ...)
{
struct timeval tv;
diff --git a/tmux.h b/tmux.h
index 7ad6e62..1180398 100644
--- a/tmux.h
+++ b/tmux.h
@@ -69,11 +69,7 @@ extern char **environ;
#define unused __attribute__ ((unused))
/* Attribute to make gcc check printf-like arguments. */
-#define printflike1 __attribute__ ((format (printf, 1, 2)))
-#define printflike2 __attribute__ ((format (printf, 2, 3)))
-#define printflike3 __attribute__ ((format (printf, 3, 4)))
-#define printflike4 __attribute__ ((format (printf, 4, 5)))
-#define printflike5 __attribute__ ((format (printf, 5, 6)))
+#define printflike(a, b) __attribute__ ((format (printf, a, b)))
/* Number of items in array. */
#ifndef nitems
@@ -1515,8 +1511,8 @@ int format_cmp(struct format_entry *,
struct format_entry *);
RB_PROTOTYPE(format_tree, format_entry, entry, format_cmp);
struct format_tree *format_create(void);
void format_free(struct format_tree *);
-void printflike3 format_add(struct format_tree *, const char *, const char *,
- ...);
+void printflike(3, 4) format_add(struct format_tree *, const char *,
+ const char *, ...);
const char *format_find(struct format_tree *, const char *);
char *format_expand(struct format_tree *, const char *);
void format_session(struct format_tree *, struct session *);
@@ -1569,7 +1565,7 @@ void options_free(struct options *);
struct options_entry *options_find1(struct options *, const char *);
struct options_entry *options_find(struct options *, const char *);
void options_remove(struct options *, const char *);
-struct options_entry *printflike3 options_set_string(struct options *,
+struct options_entry *printflike(3, 4) options_set_string(struct options *,
const char *, const char *, ...);
char *options_get_string(struct options *, const char *);
struct options_entry *options_set_number(struct options *, const char *,
@@ -1836,8 +1832,8 @@ size_t cmd_list_print(struct cmd_list *, char
*, size_t);
/* cmd-queue.c */
struct cmd_q *cmdq_new(struct client *);
int cmdq_free(struct cmd_q *);
-void printflike2 cmdq_print(struct cmd_q *, const char *, ...);
-void printflike2 cmdq_error(struct cmd_q *, const char *, ...);
+void printflike(2, 3) cmdq_print(struct cmd_q *, const char *, ...);
+void printflike(2, 3) cmdq_error(struct cmd_q *, const char *, ...);
int cmdq_guard(struct cmd_q *, const char *, int);
void cmdq_run(struct cmd_q *, struct cmd_list *);
void cmdq_append(struct cmd_q *, struct cmd_list *);
@@ -1932,9 +1928,9 @@ void status_free_jobs(struct status_out_tree *);
void status_update_jobs(struct client *);
void status_set_window_at(struct client *, u_int);
int status_redraw(struct client *);
-char *status_replace(struct client *, struct session *,
- struct winlink *, struct window_pane *, const char *, time_t, int);
-void printflike2 status_message_set(struct client *, const char *, ...);
+char *status_replace(struct client *, struct session *, struct winlink *,
+ struct window_pane *, const char *, time_t, int);
+void printflike(2, 3) status_message_set(struct client *, const char *, ...);
void status_message_clear(struct client *);
int status_message_redraw(struct client *);
void status_prompt_set(struct client *, const char *, const char *,
@@ -2024,13 +2020,13 @@ void screen_write_start(
struct screen_write_ctx *, struct window_pane *, struct screen *);
void screen_write_stop(struct screen_write_ctx *);
void screen_write_reset(struct screen_write_ctx *);
-size_t printflike2 screen_write_cstrlen(int, const char *, ...);
-void printflike5 screen_write_cnputs(struct screen_write_ctx *,
+size_t printflike(2, 3) screen_write_cstrlen(int, const char *, ...);
+void printflike(5, 6) screen_write_cnputs(struct screen_write_ctx *,
ssize_t, struct grid_cell *, int, const char *, ...);
-size_t printflike2 screen_write_strlen(int, const char *, ...);
-void printflike3 screen_write_puts(struct screen_write_ctx *,
+size_t printflike(2, 3) screen_write_strlen(int, const char *, ...);
+void printflike(3, 4) screen_write_puts(struct screen_write_ctx *,
struct grid_cell *, const char *, ...);
-void printflike5 screen_write_nputs(struct screen_write_ctx *,
+void printflike(5, 6) screen_write_nputs(struct screen_write_ctx *,
ssize_t, struct grid_cell *, int, const char *, ...);
void screen_write_vnputs(struct screen_write_ctx *,
ssize_t, struct grid_cell *, int, const char *, va_list);
@@ -2214,7 +2210,7 @@ extern const char window_clock_table[14][5][5];
extern const struct window_mode window_copy_mode;
void window_copy_init_from_pane(struct window_pane *);
void window_copy_init_for_output(struct window_pane *);
-void printflike2 window_copy_add(struct window_pane *, const char *, ...);
+void printflike(2, 3) window_copy_add(struct window_pane *, const char *, ...);
void window_copy_vadd(struct window_pane *, const char *, va_list);
void window_copy_pageup(struct window_pane *);
@@ -2253,7 +2249,7 @@ void clear_signals(int);
/* control.c */
void control_callback(struct client *, int, void *);
-void printflike2 control_write(struct client *, const char *, ...);
+void printflike(2, 3) control_write(struct client *, const char *, ...);
void control_write_buffer(struct client *, struct evbuffer *);
/* control-notify.c */
@@ -2324,9 +2320,9 @@ char *get_proc_name(int, char *);
/* log.c */
void log_open(const char *);
void log_close(void);
-void printflike1 log_debug(const char *, ...);
-__dead void printflike1 log_fatal(const char *, ...);
-__dead void printflike1 log_fatalx(const char *, ...);
+void printflike(1, 2) log_debug(const char *, ...);
+__dead void printflike(1, 2) log_fatal(const char *, ...);
+__dead void printflike(1, 2) log_fatalx(const char *, ...);
/* xmalloc.c */
char *xstrdup(const char *);
@@ -2334,9 +2330,9 @@ void *xcalloc(size_t, size_t);
void *xmalloc(size_t);
void *xrealloc(void *, size_t);
void *xreallocarray(void *, size_t, size_t);
-int printflike2 xasprintf(char **, const char *, ...);
+int printflike(2, 3) xasprintf(char **, const char *, ...);
int xvasprintf(char **, const char *, va_list);
-int printflike3 xsnprintf(char *, size_t, const char *, ...);
+int printflike(3, 4) xsnprintf(char *, size_t, const char *, ...);
int xvsnprintf(char *, size_t, const char *, va_list);
/* style.c */
diff --git a/xmalloc.c b/xmalloc.c
index b7331ea..b1570a3 100644
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -94,7 +94,7 @@ xreallocarray(void *oldptr, size_t nmemb, size_t size)
return (newptr);
}
-int printflike2
+int
xasprintf(char **ret, const char *fmt, ...)
{
va_list ap;
@@ -119,7 +119,7 @@ xvasprintf(char **ret, const char *fmt, va_list ap)
return (i);
}
-int printflike3
+int
xsnprintf(char *buf, size_t len, const char *fmt, ...)
{
va_list ap;
commit 4c42381410891c43b1326e95f150dfcf637b1e69
Author: nicm <nicm>
Commit: nicm <nicm>
Move template defines back into .c files.
---
cmd-break-pane.c | 2 +
cmd-choose-buffer.c | 3 ++
cmd-choose-client.c | 6 ++++
cmd-choose-tree.c | 9 ++++++
cmd-display-message.c | 5 +++
cmd-find-window.c | 5 +++
cmd-list-buffers.c | 3 ++
cmd-list-clients.c | 5 +++
cmd-list-sessions.c | 8 +++++
cmd-list-windows.c | 16 +++++++++-
cmd-new-session.c | 16 +++++++++++
cmd-new-window.c | 2 +
cmd-split-window.c | 2 +
tmux.h | 72 -------------------------------------------------
14 files changed, 80 insertions(+), 74 deletions(-)
diff --git a/cmd-break-pane.c b/cmd-break-pane.c
index 5e7ecd0..0025167 100644
--- a/cmd-break-pane.c
+++ b/cmd-break-pane.c
@@ -26,6 +26,8 @@
* Break pane off into a window.
*/
+#define BREAK_PANE_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"
+
enum cmd_retval cmd_break_pane_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_break_pane_entry = {
diff --git a/cmd-choose-buffer.c b/cmd-choose-buffer.c
index de4855a..19f5fba 100644
--- a/cmd-choose-buffer.c
+++ b/cmd-choose-buffer.c
@@ -27,6 +27,9 @@
* Enter choice mode to choose a buffer.
*/
+#define CHOOSE_BUFFER_TEMPLATE \
+ "#{buffer_name}: #{buffer_size} bytes: #{buffer_sample}"
+
enum cmd_retval cmd_choose_buffer_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_choose_buffer_entry = {
diff --git a/cmd-choose-client.c b/cmd-choose-client.c
index be3d405..5a1892f 100644
--- a/cmd-choose-client.c
+++ b/cmd-choose-client.c
@@ -27,6 +27,12 @@
* Enter choice mode to choose a client.
*/
+#define CHOOSE_CLIENT_TEMPLATE \
+ "#{client_tty}: #{session_name} " \
+ "[#{client_width}x#{client_height} #{client_termname}]" \
+ "#{?client_utf8, (utf8),}#{?client_readonly, (ro),} " \
+ "(last used #{client_activity_string})"
+
enum cmd_retval cmd_choose_client_exec(struct cmd *, struct cmd_q *);
void cmd_choose_client_callback(struct window_choose_data *);
diff --git a/cmd-choose-tree.c b/cmd-choose-tree.c
index eee49cc..823d042 100644
--- a/cmd-choose-tree.c
+++ b/cmd-choose-tree.c
@@ -32,6 +32,15 @@
* Enter choice mode to choose a session and/or window.
*/
+#define CHOOSE_TREE_SESSION_TEMPLATE \
+ "#{session_name}: #{session_windows} windows" \
+ "#{?session_grouped, (group ,}" \
+ "#{session_group}#{?session_grouped,),}" \
+ "#{?session_attached, (attached),}"
+#define CHOOSE_TREE_WINDOW_TEMPLATE \
+ "#{window_index}: #{window_name}#{window_flags} " \
+ "\"#{pane_title}\""
+
enum cmd_retval cmd_choose_tree_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_choose_tree_entry = {
diff --git a/cmd-display-message.c b/cmd-display-message.c
index dc4290e..f3547b0 100644
--- a/cmd-display-message.c
+++ b/cmd-display-message.c
@@ -27,6 +27,11 @@
* Displays a message in the status line.
*/
+#define DISPLAY_MESSAGE_TEMPLATE \
+ "[#{session_name}] #{window_index}:" \
+ "#{window_name}, current pane #{pane_index} " \
+ "- (%H:%M %d-%b-%y)"
+
enum cmd_retval cmd_display_message_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_display_message_entry = {
diff --git a/cmd-find-window.c b/cmd-find-window.c
index f1fc5f5..deacf99 100644
--- a/cmd-find-window.c
+++ b/cmd-find-window.c
@@ -28,6 +28,11 @@
* Find window containing text.
*/
+#define FIND_WINDOW_TEMPLATE \
+ "#{window_index}: #{window_name} " \
+ "[#{window_width}x#{window_height}] " \
+ "(#{window_panes} panes) #{window_find_matches}"
+
enum cmd_retval cmd_find_window_exec(struct cmd *, struct cmd_q *);
void cmd_find_window_callback(struct window_choose_data *);
diff --git a/cmd-list-buffers.c b/cmd-list-buffers.c
index 25f7e8b..8eb1610 100644
--- a/cmd-list-buffers.c
+++ b/cmd-list-buffers.c
@@ -27,6 +27,9 @@
* List paste buffers.
*/
+#define LIST_BUFFERS_TEMPLATE \
+ "#{buffer_name}: #{buffer_size} bytes: \"#{buffer_sample}\""
+
enum cmd_retval cmd_list_buffers_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_list_buffers_entry = {
diff --git a/cmd-list-clients.c b/cmd-list-clients.c
index 0cfbdfa..292be72 100644
--- a/cmd-list-clients.c
+++ b/cmd-list-clients.c
@@ -28,6 +28,11 @@
* List all clients.
*/
+#define LIST_CLIENTS_TEMPLATE \
+ "#{client_tty}: #{session_name} " \
+ "[#{client_width}x#{client_height} #{client_termname}]" \
+ "#{?client_utf8, (utf8),} #{?client_readonly, (ro),}"
+
enum cmd_retval cmd_list_clients_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_list_clients_entry = {
diff --git a/cmd-list-sessions.c b/cmd-list-sessions.c
index f0a7c53..ea8f3e3 100644
--- a/cmd-list-sessions.c
+++ b/cmd-list-sessions.c
@@ -28,6 +28,14 @@
* List all sessions.
*/
+#define LIST_SESSIONS_TEMPLATE \
+ "#{session_name}: #{session_windows} windows " \
+ "(created #{session_created_string}) " \
+ "[#{session_width}x#{session_height}]" \
+ "#{?session_grouped, (group ,}" \
+ "#{session_group}#{?session_grouped,),}" \
+ "#{?session_attached, (attached),}"
+
enum cmd_retval cmd_list_sessions_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_list_sessions_entry = {
diff --git a/cmd-list-windows.c b/cmd-list-windows.c
index 1317ecb..5f73e8d 100644
--- a/cmd-list-windows.c
+++ b/cmd-list-windows.c
@@ -27,11 +27,23 @@
* List windows on given session.
*/
+#define LIST_WINDOWS_TEMPLATE \
+ "#{window_index}: #{window_name}#{window_flags} " \
+ "(#{window_panes} panes) " \
+ "[#{window_width}x#{window_height}] " \
+ "[layout #{window_layout}] #{window_id}" \
+ "#{?window_active, (active),}";
+#define LIST_WINDOWS_WITH_SESSION_TEMPLATE \
+ "#{session_name}:" \
+ "#{window_index}: #{window_name}#{window_flags} " \
+ "(#{window_panes} panes) " \
+ "[#{window_width}x#{window_height}] "
+
enum cmd_retval cmd_list_windows_exec(struct cmd *, struct cmd_q *);
void cmd_list_windows_server(struct cmd *, struct cmd_q *);
-void cmd_list_windows_session(
- struct cmd *, struct session *, struct cmd_q *, int);
+void cmd_list_windows_session(struct cmd *, struct session *,
+ struct cmd_q *, int);
const struct cmd_entry cmd_list_windows_entry = {
"list-windows", "lsw",
diff --git a/cmd-new-session.c b/cmd-new-session.c
index e42947e..e244f88 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -31,6 +31,8 @@
* Create a new session and attach to the current terminal unless -d is given.
*/
+#define NEW_SESSION_TEMPLATE "#{session_name}:"
+
enum cmd_retval cmd_new_session_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_new_session_entry = {
@@ -43,6 +45,14 @@ const struct cmd_entry cmd_new_session_entry = {
cmd_new_session_exec
};
+const struct cmd_entry cmd_has_session_entry = {
+ "has-session", "has",
+ "t:", 0, 0,
+ CMD_TARGET_SESSION_USAGE,
+ 0,
+ cmd_new_session_exec
+};
+
enum cmd_retval
cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq)
{
@@ -61,6 +71,12 @@ cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq)
struct format_tree *ft;
struct environ_entry *envent;
+ if (self->entry == &cmd_has_session_entry) {
+ if (cmd_find_session(cmdq, args_get(args, 't'), 0) == NULL)
+ return (CMD_RETURN_ERROR);
+ return (CMD_RETURN_NORMAL);
+ }
+
if (args_has(args, 't') && (args->argc != 0 || args_has(args, 'n'))) {
cmdq_error(cmdq, "command or window name given with target");
return (CMD_RETURN_ERROR);
diff --git a/cmd-new-window.c b/cmd-new-window.c
index 09693c8..7f14b21 100644
--- a/cmd-new-window.c
+++ b/cmd-new-window.c
@@ -30,6 +30,8 @@
* Create a new window.
*/
+#define NEW_WINDOW_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"
+
enum cmd_retval cmd_new_window_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_new_window_entry = {
diff --git a/cmd-split-window.c b/cmd-split-window.c
index 797332c..b05a2fa 100644
--- a/cmd-split-window.c
+++ b/cmd-split-window.c
@@ -31,6 +31,8 @@
* Split a window (add a new pane).
*/
+#define SPLIT_WINDOW_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"
+
enum cmd_retval cmd_split_window_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_split_window_entry = {
diff --git a/tmux.h b/tmux.h
index 2b2cd4a..7ad6e62 100644
--- a/tmux.h
+++ b/tmux.h
@@ -80,78 +80,6 @@ extern char **environ;
#define nitems(_a) (sizeof((_a)) / sizeof((_a)[0]))
#endif
-/* Default template for choose-buffer. */
-#define CHOOSE_BUFFER_TEMPLATE \
- "#{buffer_name}: #{buffer_size} bytes: #{buffer_sample}"
-
-/* Default template for choose-client. */
-#define CHOOSE_CLIENT_TEMPLATE \
- "#{client_tty}: #{session_name} " \
- "[#{client_width}x#{client_height} #{client_termname}]" \
- "#{?client_utf8, (utf8),}#{?client_readonly, (ro),} " \
- "(last used #{client_activity_string})"
-
-/* Default templates for choose-tree. */
-#define CHOOSE_TREE_SESSION_TEMPLATE \
- "#{session_name}: #{session_windows} windows" \
- "#{?session_grouped, (group ,}" \
- "#{session_group}#{?session_grouped,),}" \
- "#{?session_attached, (attached),}"
-#define CHOOSE_TREE_WINDOW_TEMPLATE \
- "#{window_index}: #{window_name}#{window_flags} " \
- "\"#{pane_title}\""
-
-/* Default template for display-message. */
-#define DISPLAY_MESSAGE_TEMPLATE \
- "[#{session_name}] #{window_index}:" \
- "#{window_name}, current pane #{pane_index} " \
- "- (%H:%M %d-%b-%y)"
-
-/* Default template for find-window. */
-#define FIND_WINDOW_TEMPLATE \
- "#{window_index}: #{window_name} " \
- "[#{window_width}x#{window_height}] " \
- "(#{window_panes} panes) #{window_find_matches}"
-
-/* Default template for list-buffers. */
-#define LIST_BUFFERS_TEMPLATE \
- "#{buffer_name}: #{buffer_size} bytes: " \
- "\"#{buffer_sample}\""
-
-/* Default template for list-clients. */
-#define LIST_CLIENTS_TEMPLATE \
- "#{client_tty}: #{session_name} " \
- "[#{client_width}x#{client_height} #{client_termname}]" \
- "#{?client_utf8, (utf8),} #{?client_readonly, (ro),}"
-
-/* Default template for list-sessions. */
-#define LIST_SESSIONS_TEMPLATE \
- "#{session_name}: #{session_windows} windows " \
- "(created #{session_created_string}) " \
- "[#{session_width}x#{session_height}]" \
- "#{?session_grouped, (group ,}" \
- "#{session_group}#{?session_grouped,),}" \
- "#{?session_attached, (attached),}"
-
-/* Default templates for list-windows. */
-#define LIST_WINDOWS_TEMPLATE \
- "#{window_index}: #{window_name}#{window_flags} " \
- "(#{window_panes} panes) " \
- "[#{window_width}x#{window_height}] " \
- "[layout #{window_layout}] #{window_id}" \
- "#{?window_active, (active),}";
-#define LIST_WINDOWS_WITH_SESSION_TEMPLATE \
- "#{session_name}:" \
- "#{window_index}: #{window_name}#{window_flags} " \
- "(#{window_panes} panes) " \
- "[#{window_width}x#{window_height}] "
-
-/* Default templates for break-pane, new-window and split-window. */
-#define BREAK_PANE_TEMPLATE "#{session_name}:#{window_index}.#{pane_index}"
-#define NEW_SESSION_TEMPLATE "#{session_name}:"
-#define NEW_WINDOW_TEMPLATE BREAK_PANE_TEMPLATE
-#define SPLIT_WINDOW_TEMPLATE BREAK_PANE_TEMPLATE
-
/* Bell option values. */
#define BELL_NONE 0
#define BELL_ANY 1
commit 900f6fc17e6764377a8e293ce742fb41f1add9bd
Author: nicm <nicm>
Commit: nicm <nicm>
Tidy up some includes.
---
arguments.c | 1 +
client.c | 1 +
cmd-confirm-before.c | 2 ++
cmd-list-keys.c | 2 +-
job.c | 1 +
screen.c | 6 +++---
server-fn.c | 2 +-
signal.c | 2 ++
style.c | 2 ++
tmux.c | 7 ++++---
tmux.h | 5 +----
xmalloc.c | 4 +---
12 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/arguments.c b/arguments.c
index ca6cc76..05ff97e 100644
--- a/arguments.c
+++ b/arguments.c
@@ -18,6 +18,7 @@
#include <sys/types.h>
+#include <getopt.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
diff --git a/client.c b/client.c
index a790f32..5458dfc 100644
--- a/client.c
+++ b/client.c
@@ -26,6 +26,7 @@
#include <errno.h>
#include <event.h>
#include <fcntl.h>
+#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
diff --git a/cmd-confirm-before.c b/cmd-confirm-before.c
index 7f76467..0bf5844 100644
--- a/cmd-confirm-before.c
+++ b/cmd-confirm-before.c
@@ -16,6 +16,8 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <sys/types.h>
+
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
diff --git a/cmd-list-keys.c b/cmd-list-keys.c
index 6fbaf14..0733ee2 100644
--- a/cmd-list-keys.c
+++ b/cmd-list-keys.c
@@ -165,7 +165,7 @@ enum cmd_retval
cmd_list_keys_commands(unused struct cmd *self, struct cmd_q *cmdq)
{
const struct cmd_entry **entryp;
- struct cmd_entry *entry;
+ const struct cmd_entry *entry;
for (entryp = cmd_table; *entryp != NULL; entryp++) {
entry = *entryp;
diff --git a/job.c b/job.c
index a8e6d33..c04a70b 100644
--- a/job.c
+++ b/job.c
@@ -21,6 +21,7 @@
#include <fcntl.h>
#include <paths.h>
+#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
diff --git a/screen.c b/screen.c
index e555022..5ef18a2 100644
--- a/screen.c
+++ b/screen.c
@@ -31,12 +31,12 @@ void screen_resize_y(struct screen *, u_int);
void
screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
{
- char hn[MAXHOSTNAMELEN];
+ char host[HOST_NAME_MAX];
s->grid = grid_create(sx, sy, hlimit);
- if (gethostname(hn, MAXHOSTNAMELEN) == 0)
- s->title = xstrdup(hn);
+ if (gethostname(host, HOST_NAME_MAX) == 0)
+ s->title = xstrdup(host);
else
s->title = xstrdup("");
diff --git a/server-fn.c b/server-fn.c
index 5b25c92..310f16e 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -31,7 +31,7 @@ void server_callback_identify(int, short, void *);
void
server_fill_environ(struct session *s, struct environ *env)
{
- char var[MAXPATHLEN], *term;
+ char var[PATH_MAX], *term;
u_int idx;
long pid;
diff --git a/signal.c b/signal.c
index f9546dc..7e6268a 100644
--- a/signal.c
+++ b/signal.c
@@ -17,6 +17,8 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <sys/types.h>
+
#include <string.h>
#include <signal.h>
diff --git a/style.c b/style.c
index 2a049fb..6df2ed0 100644
--- a/style.c
+++ b/style.c
@@ -17,6 +17,8 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <sys/types.h>
+
#include <string.h>
#include "tmux.h"
diff --git a/tmux.c b/tmux.c
index fd2d517..fabcee5 100644
--- a/tmux.c
+++ b/tmux.c
@@ -22,6 +22,7 @@
#include <errno.h>
#include <event.h>
#include <fcntl.h>
+#include <getopt.h>
#include <locale.h>
#include <paths.h>
#include <pwd.h>
@@ -46,7 +47,7 @@ char *cfg_file;
char *shell_cmd;
int debug_level;
time_t start_time;
-char socket_path[MAXPATHLEN];
+char socket_path[PATH_MAX];
int login_shell;
char *environ_path;
@@ -124,7 +125,7 @@ areshell(const char *shell)
char *
makesocketpath(const char *label)
{
- char base[MAXPATHLEN], realbase[MAXPATHLEN], *path, *s;
+ char base[PATH_MAX], realbase[PATH_MAX], *path, *s;
struct stat sb;
u_int uid;
@@ -202,7 +203,7 @@ int
main(int argc, char **argv)
{
struct passwd *pw;
- char *s, *path, *label, **var, tmp[MAXPATHLEN];
+ char *s, *path, *label, **var, tmp[PATH_MAX];
char in[256];
const char *home;
long long pid;
diff --git a/tmux.h b/tmux.h
index 0a677a3..2b2cd4a 100644
--- a/tmux.h
+++ b/tmux.h
@@ -21,7 +21,6 @@
#define PROTOCOL_VERSION 8
-#include <sys/param.h>
#include <sys/time.h>
#include <sys/queue.h>
#include <sys/tree.h>
@@ -29,10 +28,8 @@
#include <bitstring.h>
#include <event.h>
-#include <getopt.h>
#include <imsg.h>
#include <limits.h>
-#include <signal.h>
#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
@@ -1565,7 +1562,7 @@ extern char *cfg_file;
extern char *shell_cmd;
extern int debug_level;
extern time_t start_time;
-extern char socket_path[MAXPATHLEN];
+extern char socket_path[PATH_MAX];
extern int login_shell;
extern char *environ_path;
void logfile(const char *);
diff --git a/xmalloc.c b/xmalloc.c
index 49a0eff..b7331ea 100644
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -16,10 +16,8 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-#include <sys/param.h>
+#include <sys/types.h>
-#include <errno.h>
-#include <libgen.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
commit 30bacf6f3038a867b53143150944f0997558114b
Author: nicm <nicm>
Commit: nicm <nicm>
Move suspend-client code into detach-client.
---
Makefile | 2 -
cmd-detach-client.c | 17 +++++++++++++++
cmd-suspend-client.c | 54 --------------------------------------------------
3 files changed, 17 insertions(+), 56 deletions(-)
diff --git a/Makefile b/Makefile
index 5f57e38..692ec55 100644
--- a/Makefile
+++ b/Makefile
@@ -22,7 +22,6 @@ SRCS= arguments.c \
cmd-display-message.c \
cmd-display-panes.c \
cmd-find-window.c \
- cmd-has-session.c \
cmd-if-shell.c \
cmd-join-pane.c \
cmd-kill-pane.c \
@@ -66,7 +65,6 @@ SRCS= arguments.c \
cmd-source-file.c \
cmd-split-window.c \
cmd-string.c \
- cmd-suspend-client.c \
cmd-swap-pane.c \
cmd-swap-window.c \
cmd-switch-client.c \
diff --git a/cmd-detach-client.c b/cmd-detach-client.c
index d60cf47..600554a 100644
--- a/cmd-detach-client.c
+++ b/cmd-detach-client.c
@@ -36,6 +36,14 @@ const struct cmd_entry cmd_detach_client_entry = {
cmd_detach_client_exec
};
+const struct cmd_entry cmd_suspend_client_entry = {
+ "suspend-client", "suspendc",
+ "t:", 0, 0,
+ CMD_TARGET_CLIENT_USAGE,
+ 0,
+ cmd_detach_client_exec
+};
+
enum cmd_retval
cmd_detach_client_exec(struct cmd *self, struct cmd_q *cmdq)
{
@@ -45,6 +53,15 @@ cmd_detach_client_exec(struct cmd *self, struct cmd_q *cmdq)
enum msgtype msgtype;
u_int i;
+ if (self->entry == &cmd_suspend_client_entry) {
+ if ((c = cmd_find_client(cmdq, args_get(args, 't'), 0)) == NULL)
+ return (CMD_RETURN_ERROR);
+ tty_stop_tty(&c->tty);
+ c->flags |= CLIENT_SUSPENDED;
+ server_write_client(c, MSG_SUSPEND, NULL, 0);
+ return (CMD_RETURN_NORMAL);
+ }
+
if (args_has(args, 'P'))
msgtype = MSG_DETACHKILL;
else
diff --git a/cmd-suspend-client.c b/cmd-suspend-client.c
deleted file mode 100644
index 63ed874..0000000
--- a/cmd-suspend-client.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* $OpenBSD$ */
-
-/*
- * Copyright (c) 2009 Nicholas Marriott <[email protected]>
- *
- * 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 <stdlib.h>
-#include <string.h>
-
-#include "tmux.h"
-
-/*
- * Suspend client with SIGTSTP.
- */
-
-enum cmd_retval cmd_suspend_client_exec(struct cmd *, struct cmd_q *);
-
-const struct cmd_entry cmd_suspend_client_entry = {
- "suspend-client", "suspendc",
- "t:", 0, 0,
- CMD_TARGET_CLIENT_USAGE,
- 0,
- cmd_suspend_client_exec
-};
-
-enum cmd_retval
-cmd_suspend_client_exec(struct cmd *self, struct cmd_q *cmdq)
-{
- struct args *args = self->args;
- struct client *c;
-
- if ((c = cmd_find_client(cmdq, args_get(args, 't'), 0)) == NULL)
- return (CMD_RETURN_ERROR);
-
- tty_stop_tty(&c->tty);
- c->flags |= CLIENT_SUSPENDED;
- server_write_client(c, MSG_SUSPEND, NULL, 0);
-
- return (CMD_RETURN_NORMAL);
-}
commit 8a5ceac3a9a21ec70c480d284dc1fc6907af2ce0
Author: nicm <nicm>
Commit: nicm <nicm>
Argh, meant to remove this file...
---
cmd-list-commands.c | 45 ---------------------------------------------
1 files changed, 0 insertions(+), 45 deletions(-)
diff --git a/cmd-list-commands.c b/cmd-list-commands.c
deleted file mode 100644
index 3caaebb..0000000
--- a/cmd-list-commands.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $OpenBSD$ */
-
-/*
- * Copyright (c) 2007 Nicholas Marriott <[email protected]>
- *
- * 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"
-
-/*
- * List all commands with usages.
- */
-
-enum cmd_retval cmd_list_commands_exec(struct cmd *, struct cmd_q *);
-
-enum cmd_retval
-cmd_list_commands_exec(unused struct cmd *self, struct cmd_q *cmdq)
-{
- const struct cmd_entry **entryp;
-
- for (entryp = cmd_table; *entryp != NULL; entryp++) {
- if ((*entryp)->alias != NULL) {
- cmdq_print(cmdq, "%s (%s) %s", (*entryp)->name,
- (*entryp)->alias, (*entryp)->usage);
- } else {
- cmdq_print(cmdq, "%s %s", (*entryp)->name,
- (*entryp)->usage);
- }
- }
-
- return (CMD_RETURN_NORMAL);
-}
commit f5bc85591a1f7c26bf030f5781d63985b2ee4d23
Author: nicm <nicm>
Commit: nicm <nicm>
Move list-commands into list-keys.
---
Makefile | 1 -
cmd-list-commands.c | 8 --------
cmd-list-keys.c | 32 ++++++++++++++++++++++++++++++++
3 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/Makefile b/Makefile
index d8d7505..5f57e38 100644
--- a/Makefile
+++ b/Makefile
@@ -32,7 +32,6 @@ SRCS= arguments.c \
cmd-link-window.c \
cmd-list-buffers.c \
cmd-list-clients.c \
- cmd-list-commands.c \
cmd-list-keys.c \
cmd-list-panes.c \
cmd-list-sessions.c \
diff --git a/cmd-list-commands.c b/cmd-list-commands.c
index 520fecc..3caaebb 100644
--- a/cmd-list-commands.c
+++ b/cmd-list-commands.c
@@ -26,14 +26,6 @@
enum cmd_retval cmd_list_commands_exec(struct cmd *, struct cmd_q *);
-const struct cmd_entry cmd_list_commands_entry = {
- "list-commands", "lscm",
- "", 0, 0,
- "",
- 0,
- cmd_list_commands_exec
-};
-
enum cmd_retval
cmd_list_commands_exec(unused struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-list-keys.c b/cmd-list-keys.c
index 0d64f1b..6fbaf14 100644
--- a/cmd-list-keys.c
+++ b/cmd-list-keys.c
@@ -27,7 +27,9 @@
*/
enum cmd_retval cmd_list_keys_exec(struct cmd *, struct cmd_q *);
+
enum cmd_retval cmd_list_keys_table(struct cmd *, struct cmd_q *);
+enum cmd_retval cmd_list_keys_commands(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_list_keys_entry = {
"list-keys", "lsk",
@@ -37,6 +39,14 @@ const struct cmd_entry cmd_list_keys_entry = {
cmd_list_keys_exec
};
+const struct cmd_entry cmd_list_commands_entry = {
+ "list-commands", "lscm",
+ "", 0, 0,
+ "",
+ 0,
+ cmd_list_keys_exec
+};
+
enum cmd_retval
cmd_list_keys_exec(struct cmd *self, struct cmd_q *cmdq)
{
@@ -47,6 +57,9 @@ cmd_list_keys_exec(struct cmd *self, struct cmd_q *cmdq)
size_t used;
int width, keywidth;
+ if (self->entry == &cmd_list_commands_entry)
+ return (cmd_list_keys_commands(self, cmdq));
+
if (args_has(args, 't'))
return (cmd_list_keys_table(self, cmdq));
@@ -147,3 +160,22 @@ cmd_list_keys_table(struct cmd *self, struct cmd_q *cmdq)
return (CMD_RETURN_NORMAL);
}
+
+enum cmd_retval
+cmd_list_keys_commands(unused struct cmd *self, struct cmd_q *cmdq)
+{
+ const struct cmd_entry **entryp;
+ struct cmd_entry *entry;
+
+ for (entryp = cmd_table; *entryp != NULL; entryp++) {
+ entry = *entryp;
+ if (entry->alias == NULL) {
+ cmdq_print(cmdq, "%s %s", entry->name, entry->usage);
+ continue;
+ }
+ cmdq_print(cmdq, "%s (%s) %s", entry->name, entry->alias,
+ entry->usage);
+ }
+
+ return (CMD_RETURN_NORMAL);
+}
commit 7afe417a60a3b80ba16cd758b62e3f500350fb3e
Author: nicm <nicm>
Commit: nicm <nicm>
Missed a couple of cmd_entry struct members from previous.
---
cmd-respawn-pane.c | 1 -
cmd-select-layout.c | 1 +
2 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/cmd-respawn-pane.c b/cmd-respawn-pane.c
index c2dcf9e..4703153 100644
--- a/cmd-respawn-pane.c
+++ b/cmd-respawn-pane.c
@@ -35,7 +35,6 @@ const struct cmd_entry cmd_respawn_pane_entry = {
"kt:", 0, -1,
"[-k] " CMD_TARGET_PANE_USAGE " [command]",
0,
- NULL,
cmd_respawn_pane_exec
};
diff --git a/cmd-select-layout.c b/cmd-select-layout.c
index 5f00774..77137b7 100644
--- a/cmd-select-layout.c
+++ b/cmd-select-layout.c
@@ -30,6 +30,7 @@ const struct cmd_entry cmd_select_layout_entry = {
"select-layout", "selectl",
"npt:", 0, 1,
"[-np] " CMD_TARGET_WINDOW_USAGE " [layout-name]",
+ 0,
cmd_select_layout_exec
};
commit 45dfc5a074e2ceae11a6d4aeae597bee1e028503
Author: nicm <nicm>
Commit: nicm <nicm>
Instead of setting up the default keys by building the key struct
directly with a helper function in the cmd_entry, include a table of
bind-key commands and pass them through the command parser and a
temporary cmd_q.
As well as being smaller, this will allow default bindings to be command
sequences which will probably be needed soon.
---
cmd-attach-session.c | 1 -
cmd-bind-key.c | 1 -
cmd-break-pane.c | 1 -
cmd-capture-pane.c | 1 -
cmd-choose-buffer.c | 1 -
cmd-choose-client.c | 1 -
cmd-choose-tree.c | 3 -
cmd-clear-history.c | 1 -
cmd-clock-mode.c | 1 -
cmd-command-prompt.c | 30 --------
cmd-confirm-before.c | 20 -----
cmd-copy-mode.c | 10 ---
cmd-delete-buffer.c | 1 -
cmd-detach-client.c | 1 -
cmd-display-message.c | 1 -
cmd-display-panes.c | 1 -
cmd-find-window.c | 1 -
cmd-has-session.c | 1 -
cmd-if-shell.c | 1 -
cmd-join-pane.c | 17 -----
cmd-kill-pane.c | 1 -
cmd-kill-server.c | 2 -
cmd-kill-session.c | 1 -
cmd-kill-window.c | 1 -
cmd-link-window.c | 1 -
cmd-list-buffers.c | 1 -
cmd-list-clients.c | 1 -
cmd-list-commands.c | 1 -
cmd-list-keys.c | 1 -
cmd-list-panes.c | 1 -
cmd-list-sessions.c | 1 -
cmd-list-windows.c | 1 -
cmd-load-buffer.c | 1 -
cmd-lock-server.c | 3 -
cmd-move-window.c | 1 -
cmd-new-session.c | 1 -
cmd-new-window.c | 1 -
cmd-paste-buffer.c | 1 -
cmd-pipe-pane.c | 1 -
cmd-refresh-client.c | 1 -
cmd-rename-session.c | 1 -
cmd-rename-window.c | 1 -
cmd-resize-pane.c | 48 -------------
cmd-respawn-window.c | 1 -
cmd-rotate-window.c | 10 ---
cmd-run-shell.c | 1 -
cmd-save-buffer.c | 2 -
cmd-select-layout.c | 30 --------
cmd-select-pane.c | 19 -----
cmd-select-window.c | 19 -----
cmd-send-keys.c | 2 -
cmd-set-buffer.c | 1 -
cmd-set-environment.c | 1 -
cmd-set-option.c | 2 -
cmd-show-environment.c | 1 -
cmd-show-messages.c | 2 -
cmd-show-options.c | 2 -
cmd-source-file.c | 1 -
cmd-split-window.c | 10 ---
cmd-suspend-client.c | 1 -
cmd-swap-pane.c | 12 ---
cmd-swap-window.c | 1 -
cmd-switch-client.c | 19 -----
cmd-unbind-key.c | 1 -
cmd-unlink-window.c | 1 -
cmd-wait-for.c | 1 -
key-bindings.c | 180 +++++++++++++++++++++++-------------------------
tmux.h | 1 -
68 files changed, 86 insertions(+), 403 deletions(-)
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index 94f01e4..160f2a8 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -37,7 +37,6 @@ const struct cmd_entry cmd_attach_session_entry = {
"c:drt:", 0, 0,
"[-dr] [-c working-directory] " CMD_TARGET_SESSION_USAGE,
CMD_CANTNEST|CMD_STARTSERVER,
- NULL,
cmd_attach_session_exec
};
diff --git a/cmd-bind-key.c b/cmd-bind-key.c
index dce0bbf..5d68d48 100644
--- a/cmd-bind-key.c
+++ b/cmd-bind-key.c
@@ -36,7 +36,6 @@ const struct cmd_entry cmd_bind_key_entry = {
"cnrt:", 1, -1,
"[-cnr] [-t mode-table] key command [arguments]",
0,
- NULL,
cmd_bind_key_exec
};
diff --git a/cmd-break-pane.c b/cmd-break-pane.c
index 85c5d4d..5e7ecd0 100644
--- a/cmd-break-pane.c
+++ b/cmd-break-pane.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_break_pane_entry = {
"dPF:t:", 0, 0,
"[-dP] [-F format] " CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_break_pane_exec
};
diff --git a/cmd-capture-pane.c b/cmd-capture-pane.c
index 50bddc7..ce60b4c 100644
--- a/cmd-capture-pane.c
+++ b/cmd-capture-pane.c
@@ -41,7 +41,6 @@ const struct cmd_entry cmd_capture_pane_entry = {
"[-aCeJpPq] " CMD_BUFFER_USAGE " [-E end-line] [-S start-line]"
CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_capture_pane_exec
};
diff --git a/cmd-choose-buffer.c b/cmd-choose-buffer.c
index 42caa7c..de4855a 100644
--- a/cmd-choose-buffer.c
+++ b/cmd-choose-buffer.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_choose_buffer_entry = {
"F:t:", 0, 1,
CMD_TARGET_WINDOW_USAGE " [-F format] [template]",
0,
- NULL,
cmd_choose_buffer_exec
};
diff --git a/cmd-choose-client.c b/cmd-choose-client.c
index 47ff197..be3d405 100644
--- a/cmd-choose-client.c
+++ b/cmd-choose-client.c
@@ -36,7 +36,6 @@ const struct cmd_entry cmd_choose_client_entry = {
"F:t:", 0, 1,
CMD_TARGET_WINDOW_USAGE " [-F format] [template]",
0,
- NULL,
cmd_choose_client_exec
};
diff --git a/cmd-choose-tree.c b/cmd-choose-tree.c
index 257908e..eee49cc 100644
--- a/cmd-choose-tree.c
+++ b/cmd-choose-tree.c
@@ -40,7 +40,6 @@ const struct cmd_entry cmd_choose_tree_entry = {
"[-suw] [-b session-template] [-c window template] [-S format] " \
"[-W format] " CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_choose_tree_exec
};
@@ -49,7 +48,6 @@ const struct cmd_entry cmd_choose_session_entry = {
"F:t:", 0, 1,
CMD_TARGET_WINDOW_USAGE " [-F format] [template]",
0,
- NULL,
cmd_choose_tree_exec
};
@@ -58,7 +56,6 @@ const struct cmd_entry cmd_choose_window_entry = {
"F:t:", 0, 1,
CMD_TARGET_WINDOW_USAGE "[-F format] [template]",
0,
- NULL,
cmd_choose_tree_exec
};
diff --git a/cmd-clear-history.c b/cmd-clear-history.c
index 69885f0..e134288 100644
--- a/cmd-clear-history.c
+++ b/cmd-clear-history.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_clear_history_entry = {
"t:", 0, 0,
CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_clear_history_exec
};
diff --git a/cmd-clock-mode.c b/cmd-clock-mode.c
index 09f16e1..8083581 100644
--- a/cmd-clock-mode.c
+++ b/cmd-clock-mode.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_clock_mode_entry = {
"t:", 0, 0,
CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_clock_mode_exec
};
diff --git a/cmd-command-prompt.c b/cmd-command-prompt.c
index fc625f5..22b1d84 100644
--- a/cmd-command-prompt.c
+++ b/cmd-command-prompt.c
@@ -29,7 +29,6 @@
* Prompt for command in client.
*/
-void cmd_command_prompt_key_binding(struct cmd *, int);
enum cmd_retval cmd_command_prompt_exec(struct cmd *, struct cmd_q *);
int cmd_command_prompt_callback(void *, const char *);
@@ -40,7 +39,6 @@ const struct cmd_entry cmd_command_prompt_entry = {
"I:p:t:", 0, 1,
"[-I inputs] [-p prompts] " CMD_TARGET_CLIENT_USAGE " [template]",
0,
- cmd_command_prompt_key_binding,
cmd_command_prompt_exec
};
@@ -54,34 +52,6 @@ struct cmd_command_prompt_cdata {
int idx;
};
-void
-cmd_command_prompt_key_binding(struct cmd *self, int key)
-{
- switch (key) {
- case '$':
- self->args = args_create(1, "rename-session '%%'");
- args_set(self->args, 'I', "#S");
- break;
- case ',':
- self->args = args_create(1, "rename-window '%%'");
- args_set(self->args, 'I', "#W");
- break;
- case '.':
- self->args = args_create(1, "move-window -t '%%'");
- break;
- case 'f':
- self->args = args_create(1, "find-window '%%'");
- break;
- case '\'':
- self->args = args_create(1, "select-window -t ':%%'");
- args_set(self->args, 'p', "index");
- break;
- default:
- self->args = args_create(0);
- break;
- }
-}
-
enum cmd_retval
cmd_command_prompt_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-confirm-before.c b/cmd-confirm-before.c
index 5b8151c..7f76467 100644
--- a/cmd-confirm-before.c
+++ b/cmd-confirm-before.c
@@ -26,7 +26,6 @@
* Asks for confirmation before executing a command.
*/
-void cmd_confirm_before_key_binding(struct cmd *, int);
enum cmd_retval cmd_confirm_before_exec(struct cmd *, struct cmd_q *);
int cmd_confirm_before_callback(void *, const char *);
@@ -37,7 +36,6 @@ const struct cmd_entry cmd_confirm_before_entry = {
"p:t:", 1, 1,
"[-p prompt] " CMD_TARGET_CLIENT_USAGE " command",
0,
- cmd_confirm_before_key_binding,
cmd_confirm_before_exec
};
@@ -46,24 +44,6 @@ struct cmd_confirm_before_data {
struct client *client;
};
-void
-cmd_confirm_before_key_binding(struct cmd *self, int key)
-{
- switch (key) {
- case '&':
- self->args = args_create(1, "kill-window");
- args_set(self->args, 'p', "kill-window #W? (y/n)");
- break;
- case 'x':
- self->args = args_create(1, "kill-pane");
- args_set(self->args, 'p', "kill-pane #P? (y/n)");
- break;
- default:
- self->args = args_create(0);
- break;
- }
-}
-
enum cmd_retval
cmd_confirm_before_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-copy-mode.c b/cmd-copy-mode.c
index bc9cfd6..8933529 100644
--- a/cmd-copy-mode.c
+++ b/cmd-copy-mode.c
@@ -24,7 +24,6 @@
* Enter copy mode.
*/
-void cmd_copy_mode_key_binding(struct cmd *, int);
enum cmd_retval cmd_copy_mode_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_copy_mode_entry = {
@@ -32,18 +31,9 @@ const struct cmd_entry cmd_copy_mode_entry = {
"t:u", 0, 0,
"[-u] " CMD_TARGET_PANE_USAGE,
0,
- cmd_copy_mode_key_binding,
cmd_copy_mode_exec
};
-void
-cmd_copy_mode_key_binding(struct cmd *self, int key)
-{
- self->args = args_create(0);
- if (key == KEYC_PPAGE)
- args_set(self->args, 'u', NULL);
-}
-
enum cmd_retval
cmd_copy_mode_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-delete-buffer.c b/cmd-delete-buffer.c
index 755d7ea..42268b7 100644
--- a/cmd-delete-buffer.c
+++ b/cmd-delete-buffer.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_delete_buffer_entry = {
"b:", 0, 0,
CMD_BUFFER_USAGE,
0,
- NULL,
cmd_delete_buffer_exec
};
diff --git a/cmd-detach-client.c b/cmd-detach-client.c
index d40ef5a..d60cf47 100644
--- a/cmd-detach-client.c
+++ b/cmd-detach-client.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_detach_client_entry = {
"as:t:P", 0, 0,
"[-P] [-a] [-s target-session] " CMD_TARGET_CLIENT_USAGE,
CMD_READONLY,
- NULL,
cmd_detach_client_exec
};
diff --git a/cmd-display-message.c b/cmd-display-message.c
index b60d732..dc4290e 100644
--- a/cmd-display-message.c
+++ b/cmd-display-message.c
@@ -35,7 +35,6 @@ const struct cmd_entry cmd_display_message_entry = {
"[-p] [-c target-client] [-F format] " CMD_TARGET_PANE_USAGE
" [message]",
0,
- NULL,
cmd_display_message_exec
};
diff --git a/cmd-display-panes.c b/cmd-display-panes.c
index 9160f4e..9ce8971 100644
--- a/cmd-display-panes.c
+++ b/cmd-display-panes.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_display_panes_entry = {
"t:", 0, 0,
CMD_TARGET_CLIENT_USAGE,
0,
- NULL,
cmd_display_panes_exec
};
diff --git a/cmd-find-window.c b/cmd-find-window.c
index ccf7f0f..f1fc5f5 100644
--- a/cmd-find-window.c
+++ b/cmd-find-window.c
@@ -47,7 +47,6 @@ const struct cmd_entry cmd_find_window_entry = {
"F:CNt:T", 1, 4,
"[-CNT] [-F format] " CMD_TARGET_WINDOW_USAGE " match-string",
0,
- NULL,
cmd_find_window_exec
};
diff --git a/cmd-has-session.c b/cmd-has-session.c
index d7ef9be..a873b20 100644
--- a/cmd-has-session.c
+++ b/cmd-has-session.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_has_session_entry = {
"t:", 0, 0,
CMD_TARGET_SESSION_USAGE,
0,
- NULL,
cmd_has_session_exec
};
diff --git a/cmd-if-shell.c b/cmd-if-shell.c
index 4193944..da0220c 100644
--- a/cmd-if-shell.c
+++ b/cmd-if-shell.c
@@ -40,7 +40,6 @@ const struct cmd_entry cmd_if_shell_entry = {
"bt:", 2, 3,
"[-b] " CMD_TARGET_PANE_USAGE " shell-command command [command]",
0,
- NULL,
cmd_if_shell_exec
};
diff --git a/cmd-join-pane.c b/cmd-join-pane.c
index 7d7b1ee..943cdce 100644
--- a/cmd-join-pane.c
+++ b/cmd-join-pane.c
@@ -29,7 +29,6 @@
* Join or move a pane into another (like split/swap/kill).
*/
-void cmd_join_pane_key_binding(struct cmd *, int);
enum cmd_retval cmd_join_pane_exec(struct cmd *, struct cmd_q *);
enum cmd_retval join_pane(struct cmd *, struct cmd_q *, int);
@@ -39,7 +38,6 @@ const struct cmd_entry cmd_join_pane_entry = {
"bdhvp:l:s:t:", 0, 0,
"[-bdhv] [-p percentage|-l size] [-s src-pane] [-t dst-pane]",
0,
- cmd_join_pane_key_binding,
cmd_join_pane_exec
};
@@ -48,24 +46,9 @@ const struct cmd_entry cmd_move_pane_entry = {
"bdhvp:l:s:t:", 0, 0,
"[-bdhv] [-p percentage|-l size] [-s src-pane] [-t dst-pane]",
0,
- NULL,
cmd_join_pane_exec
};
-void
-cmd_join_pane_key_binding(struct cmd *self, int key)
-{
- switch (key) {
- case '%':
- self->args = args_create(0);
- args_set(self->args, 'h', NULL);
- break;
- default:
- self->args = args_create(0);
- break;
- }
-}
-
enum cmd_retval
cmd_join_pane_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-kill-pane.c b/cmd-kill-pane.c
index 64fd11e..f4735fd 100644
--- a/cmd-kill-pane.c
+++ b/cmd-kill-pane.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_kill_pane_entry = {
"at:", 0, 0,
"[-a] " CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_kill_pane_exec
};
diff --git a/cmd-kill-server.c b/cmd-kill-server.c
index 6f0b749..07d9430 100644
--- a/cmd-kill-server.c
+++ b/cmd-kill-server.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_kill_server_entry = {
"", 0, 0,
"",
0,
- NULL,
cmd_kill_server_exec
};
@@ -43,7 +42,6 @@ const struct cmd_entry cmd_start_server_entry = {
"", 0, 0,
"",
CMD_STARTSERVER,
- NULL,
cmd_kill_server_exec
};
diff --git a/cmd-kill-session.c b/cmd-kill-session.c
index 097189e..d7e2a21 100644
--- a/cmd-kill-session.c
+++ b/cmd-kill-session.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_kill_session_entry = {
"at:", 0, 0,
"[-a] " CMD_TARGET_SESSION_USAGE,
0,
- NULL,
cmd_kill_session_exec
};
diff --git a/cmd-kill-window.c b/cmd-kill-window.c
index 2f92426..dd4d7f5 100644
--- a/cmd-kill-window.c
+++ b/cmd-kill-window.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_kill_window_entry = {
"at:", 0, 0,
"[-a] " CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_kill_window_exec
};
diff --git a/cmd-link-window.c b/cmd-link-window.c
index 8bd63b7..ee5b62a 100644
--- a/cmd-link-window.c
+++ b/cmd-link-window.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_link_window_entry = {
"dks:t:", 0, 0,
"[-dk] " CMD_SRCDST_WINDOW_USAGE,
0,
- NULL,
cmd_link_window_exec
};
diff --git a/cmd-list-buffers.c b/cmd-list-buffers.c
index 9d79072..25f7e8b 100644
--- a/cmd-list-buffers.c
+++ b/cmd-list-buffers.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_list_buffers_entry = {
"F:", 0, 0,
"[-F format]",
0,
- NULL,
cmd_list_buffers_exec
};
diff --git a/cmd-list-clients.c b/cmd-list-clients.c
index 98c564a..0cfbdfa 100644
--- a/cmd-list-clients.c
+++ b/cmd-list-clients.c
@@ -35,7 +35,6 @@ const struct cmd_entry cmd_list_clients_entry = {
"F:t:", 0, 0,
"[-F format] " CMD_TARGET_SESSION_USAGE,
CMD_READONLY,
- NULL,
cmd_list_clients_exec
};
diff --git a/cmd-list-commands.c b/cmd-list-commands.c
index 287df42..520fecc 100644
--- a/cmd-list-commands.c
+++ b/cmd-list-commands.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_list_commands_entry = {
"", 0, 0,
"",
0,
- NULL,
cmd_list_commands_exec
};
diff --git a/cmd-list-keys.c b/cmd-list-keys.c
index 65e4469..0d64f1b 100644
--- a/cmd-list-keys.c
+++ b/cmd-list-keys.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_list_keys_entry = {
"t:", 0, 0,
"[-t key-table]",
0,
- NULL,
cmd_list_keys_exec
};
diff --git a/cmd-list-panes.c b/cmd-list-panes.c
index 07884ff..7f62177 100644
--- a/cmd-list-panes.c
+++ b/cmd-list-panes.c
@@ -40,7 +40,6 @@ const struct cmd_entry cmd_list_panes_entry = {
"asF:t:", 0, 0,
"[-as] [-F format] " CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_list_panes_exec
};
diff --git a/cmd-list-sessions.c b/cmd-list-sessions.c
index d401608..f0a7c53 100644
--- a/cmd-list-sessions.c
+++ b/cmd-list-sessions.c
@@ -35,7 +35,6 @@ const struct cmd_entry cmd_list_sessions_entry = {
"F:", 0, 0,
"[-F format]",
0,
- NULL,
cmd_list_sessions_exec
};
diff --git a/cmd-list-windows.c b/cmd-list-windows.c
index bc56816..1317ecb 100644
--- a/cmd-list-windows.c
+++ b/cmd-list-windows.c
@@ -38,7 +38,6 @@ const struct cmd_entry cmd_list_windows_entry = {
"F:at:", 0, 0,
"[-a] [-F format] " CMD_TARGET_SESSION_USAGE,
0,
- NULL,
cmd_list_windows_exec
};
diff --git a/cmd-load-buffer.c b/cmd-load-buffer.c
index 26d6297..785a701 100644
--- a/cmd-load-buffer.c
+++ b/cmd-load-buffer.c
@@ -39,7 +39,6 @@ const struct cmd_entry cmd_load_buffer_entry = {
"b:", 1, 1,
CMD_BUFFER_USAGE " path",
0,
- NULL,
cmd_load_buffer_exec
};
diff --git a/cmd-lock-server.c b/cmd-lock-server.c
index 757c2e3..de76475 100644
--- a/cmd-lock-server.c
+++ b/cmd-lock-server.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_lock_server_entry = {
"", 0, 0,
"",
0,
- NULL,
cmd_lock_server_exec
};
@@ -40,7 +39,6 @@ const struct cmd_entry cmd_lock_session_entry = {
"t:", 0, 0,
CMD_TARGET_SESSION_USAGE,
0,
- NULL,
cmd_lock_server_exec
};
@@ -49,7 +47,6 @@ const struct cmd_entry cmd_lock_client_entry = {
"t:", 0, 0,
CMD_TARGET_CLIENT_USAGE,
0,
- NULL,
cmd_lock_server_exec
};
diff --git a/cmd-move-window.c b/cmd-move-window.c
index bb160e5..eef96f1 100644
--- a/cmd-move-window.c
+++ b/cmd-move-window.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_move_window_entry = {
"dkrs:t:", 0, 0,
"[-dkr] " CMD_SRCDST_WINDOW_USAGE,
0,
- NULL,
cmd_move_window_exec
};
diff --git a/cmd-new-session.c b/cmd-new-session.c
index 802cb6c..e42947e 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -40,7 +40,6 @@ const struct cmd_entry cmd_new_session_entry = {
"[-s session-name] " CMD_TARGET_SESSION_USAGE " [-x width] "
"[-y height] [command]",
CMD_STARTSERVER|CMD_CANTNEST,
- NULL,
cmd_new_session_exec
};
diff --git a/cmd-new-window.c b/cmd-new-window.c
index 00fa53f..09693c8 100644
--- a/cmd-new-window.c
+++ b/cmd-new-window.c
@@ -38,7 +38,6 @@ const struct cmd_entry cmd_new_window_entry = {
"[-adkP] [-c start-directory] [-F format] [-n window-name] "
CMD_TARGET_WINDOW_USAGE " [command]",
0,
- NULL,
cmd_new_window_exec
};
diff --git a/cmd-paste-buffer.c b/cmd-paste-buffer.c
index 9462b28..08ac6fa 100644
--- a/cmd-paste-buffer.c
+++ b/cmd-paste-buffer.c
@@ -38,7 +38,6 @@ const struct cmd_entry cmd_paste_buffer_entry = {
"db:prs:t:", 0, 0,
"[-dpr] [-s separator] " CMD_BUFFER_USAGE " " CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_paste_buffer_exec
};
diff --git a/cmd-pipe-pane.c b/cmd-pipe-pane.c
index 9b29e56..3158765 100644
--- a/cmd-pipe-pane.c
+++ b/cmd-pipe-pane.c
@@ -41,7 +41,6 @@ const struct cmd_entry cmd_pipe_pane_entry = {
"ot:", 0, 1,
"[-o] " CMD_TARGET_PANE_USAGE " [command]",
0,
- NULL,
cmd_pipe_pane_exec
};
diff --git a/cmd-refresh-client.c b/cmd-refresh-client.c
index d3dae49..f693872 100644
--- a/cmd-refresh-client.c
+++ b/cmd-refresh-client.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_refresh_client_entry = {
"C:St:", 0, 0,
"[-S] [-C size] " CMD_TARGET_CLIENT_USAGE,
0,
- NULL,
cmd_refresh_client_exec
};
diff --git a/cmd-rename-session.c b/cmd-rename-session.c
index ba8f958..481154c 100644
--- a/cmd-rename-session.c
+++ b/cmd-rename-session.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_rename_session_entry = {
"t:", 1, 1,
CMD_TARGET_SESSION_USAGE " new-name",
0,
- NULL,
cmd_rename_session_exec
};
diff --git a/cmd-rename-window.c b/cmd-rename-window.c
index bdd3fbe..2f677a4 100644
--- a/cmd-rename-window.c
+++ b/cmd-rename-window.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_rename_window_entry = {
"t:", 1, 1,
CMD_TARGET_WINDOW_USAGE " new-name",
0,
- NULL,
cmd_rename_window_exec
};
diff --git a/cmd-resize-pane.c b/cmd-resize-pane.c
index e54c076..42f0f39 100644
--- a/cmd-resize-pane.c
+++ b/cmd-resize-pane.c
@@ -26,7 +26,6 @@
* Increase or decrease pane size.
*/
-void cmd_resize_pane_key_binding(struct cmd *, int);
enum cmd_retval cmd_resize_pane_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_resize_pane_entry = {
@@ -34,56 +33,9 @@ const struct cmd_entry cmd_resize_pane_entry = {
"DLRt:Ux:y:Z", 0, 1,
"[-DLRUZ] [-x width] [-y height] " CMD_TARGET_PANE_USAGE "
[adjustment]",
0,
- cmd_resize_pane_key_binding,
cmd_resize_pane_exec
};
-void
-cmd_resize_pane_key_binding(struct cmd *self, int key)
-{
- switch (key) {
- case KEYC_UP | KEYC_CTRL:
- self->args = args_create(0);
- args_set(self->args, 'U', NULL);
- break;
- case KEYC_DOWN | KEYC_CTRL:
- self->args = args_create(0);
- args_set(self->args, 'D', NULL);
- break;
- case KEYC_LEFT | KEYC_CTRL:
- self->args = args_create(0);
- args_set(self->args, 'L', NULL);
- break;
- case KEYC_RIGHT | KEYC_CTRL:
- self->args = args_create(0);
- args_set(self->args, 'R', NULL);
- break;
- case KEYC_UP | KEYC_ESCAPE:
- self->args = args_create(1, "5");
- args_set(self->args, 'U', NULL);
- break;
- case KEYC_DOWN | KEYC_ESCAPE:
- self->args = args_create(1, "5");
- args_set(self->args, 'D', NULL);
- break;
- case KEYC_LEFT | KEYC_ESCAPE:
- self->args = args_create(1, "5");
- args_set(self->args, 'L', NULL);
- break;
- case KEYC_RIGHT | KEYC_ESCAPE:
- self->args = args_create(1, "5");
- args_set(self->args, 'R', NULL);
- break;
- case 'z':
- self->args = args_create(0);
- args_set(self->args, 'Z', NULL);
- break;
- default:
- self->args = args_create(0);
- break;
- }
-}
-
enum cmd_retval
cmd_resize_pane_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-respawn-window.c b/cmd-respawn-window.c
index 5f59cb8..06102ed 100644
--- a/cmd-respawn-window.c
+++ b/cmd-respawn-window.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_respawn_window_entry = {
"kt:", 0, -1,
"[-k] " CMD_TARGET_WINDOW_USAGE " [command]",
0,
- NULL,
cmd_respawn_window_exec
};
diff --git a/cmd-rotate-window.c b/cmd-rotate-window.c
index 6005ae5..859ff04 100644
--- a/cmd-rotate-window.c
+++ b/cmd-rotate-window.c
@@ -24,7 +24,6 @@
* Rotate the panes in a window.
*/
-void cmd_rotate_window_key_binding(struct cmd *, int);
enum cmd_retval cmd_rotate_window_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_rotate_window_entry = {
@@ -32,18 +31,9 @@ const struct cmd_entry cmd_rotate_window_entry = {
"Dt:U", 0, 0,
"[-DU] " CMD_TARGET_WINDOW_USAGE,
0,
- cmd_rotate_window_key_binding,
cmd_rotate_window_exec
};
-void
-cmd_rotate_window_key_binding(struct cmd *self, int key)
-{
- self->args = args_create(0);
- if (key == ('o' | KEYC_ESCAPE))
- args_set(self->args, 'D', NULL);
-}
-
enum cmd_retval
cmd_rotate_window_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-run-shell.c b/cmd-run-shell.c
index 8799e0a..b47c282 100644
--- a/cmd-run-shell.c
+++ b/cmd-run-shell.c
@@ -40,7 +40,6 @@ const struct cmd_entry cmd_run_shell_entry = {
"bt:", 1, 1,
"[-b] " CMD_TARGET_PANE_USAGE " shell-command",
0,
- NULL,
cmd_run_shell_exec
};
diff --git a/cmd-save-buffer.c b/cmd-save-buffer.c
index db80e48..368c517 100644
--- a/cmd-save-buffer.c
+++ b/cmd-save-buffer.c
@@ -39,7 +39,6 @@ const struct cmd_entry cmd_save_buffer_entry = {
"ab:", 1, 1,
"[-a] " CMD_BUFFER_USAGE " path",
0,
- NULL,
cmd_save_buffer_exec
};
@@ -48,7 +47,6 @@ const struct cmd_entry cmd_show_buffer_entry = {
"b:", 0, 0,
CMD_BUFFER_USAGE,
0,
- NULL,
cmd_save_buffer_exec
};
diff --git a/cmd-select-layout.c b/cmd-select-layout.c
index a5f5519..5f00774 100644
--- a/cmd-select-layout.c
+++ b/cmd-select-layout.c
@@ -24,15 +24,12 @@
* Switch window to selected layout.
*/
-void cmd_select_layout_key_binding(struct cmd *, int);
enum cmd_retval cmd_select_layout_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_select_layout_entry = {
"select-layout", "selectl",
"npt:", 0, 1,
"[-np] " CMD_TARGET_WINDOW_USAGE " [layout-name]",
- 0,
- cmd_select_layout_key_binding,
cmd_select_layout_exec
};
@@ -41,7 +38,6 @@ const struct cmd_entry cmd_next_layout_entry = {
"t:", 0, 0,
CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_select_layout_exec
};
@@ -50,35 +46,9 @@ const struct cmd_entry cmd_previous_layout_entry = {
"t:", 0, 0,
CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_select_layout_exec
};
-void
-cmd_select_layout_key_binding(struct cmd *self, int key)
-{
- switch (key) {
- case '1' | KEYC_ESCAPE:
- self->args = args_create(1, "even-horizontal");
- break;
- case '2' | KEYC_ESCAPE:
- self->args = args_create(1, "even-vertical");
- break;
- case '3' | KEYC_ESCAPE:
- self->args = args_create(1, "main-horizontal");
- break;
- case '4' | KEYC_ESCAPE:
- self->args = args_create(1, "main-vertical");
- break;
- case '5' | KEYC_ESCAPE:
- self->args = args_create(1, "tiled");
- break;
- default:
- self->args = args_create(0);
- break;
- }
-}
-
enum cmd_retval
cmd_select_layout_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-select-pane.c b/cmd-select-pane.c
index a491c43..99594ae 100644
--- a/cmd-select-pane.c
+++ b/cmd-select-pane.c
@@ -24,7 +24,6 @@
* Select pane.
*/
-void cmd_select_pane_key_binding(struct cmd *, int);
enum cmd_retval cmd_select_pane_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_select_pane_entry = {
@@ -32,7 +31,6 @@ const struct cmd_entry cmd_select_pane_entry = {
"DdeLlRt:U", 0, 0,
"[-DdeLlRU] " CMD_TARGET_PANE_USAGE,
0,
- cmd_select_pane_key_binding,
cmd_select_pane_exec
};
@@ -41,26 +39,9 @@ const struct cmd_entry cmd_last_pane_entry = {
"det:", 0, 0,
"[-de] " CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_select_pane_exec
};
-void
-cmd_select_pane_key_binding(struct cmd *self, int key)
-{
- self->args = args_create(0);
- if (key == KEYC_UP)
- args_set(self->args, 'U', NULL);
- if (key == KEYC_DOWN)
- args_set(self->args, 'D', NULL);
- if (key == KEYC_LEFT)
- args_set(self->args, 'L', NULL);
- if (key == KEYC_RIGHT)
- args_set(self->args, 'R', NULL);
- if (key == 'o')
- args_set(self->args, 't', ":.+");
-}
-
enum cmd_retval
cmd_select_pane_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-select-window.c b/cmd-select-window.c
index 744bdf7..f530f1f 100644
--- a/cmd-select-window.c
+++ b/cmd-select-window.c
@@ -26,7 +26,6 @@
* Select window by index.
*/
-void cmd_select_window_key_binding(struct cmd *, int);
enum cmd_retval cmd_select_window_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_select_window_entry = {
@@ -34,7 +33,6 @@ const struct cmd_entry cmd_select_window_entry = {
"lnpTt:", 0, 0,
"[-lnpT] " CMD_TARGET_WINDOW_USAGE,
0,
- cmd_select_window_key_binding,
cmd_select_window_exec
};
@@ -43,7 +41,6 @@ const struct cmd_entry cmd_next_window_entry = {
"at:", 0, 0,
"[-a] " CMD_TARGET_SESSION_USAGE,
0,
- cmd_select_window_key_binding,
cmd_select_window_exec
};
@@ -52,7 +49,6 @@ const struct cmd_entry cmd_previous_window_entry = {
"at:", 0, 0,
"[-a] " CMD_TARGET_SESSION_USAGE,
0,
- cmd_select_window_key_binding,
cmd_select_window_exec
};
@@ -61,24 +57,9 @@ const struct cmd_entry cmd_last_window_entry = {
"t:", 0, 0,
CMD_TARGET_SESSION_USAGE,
0,
- NULL,
cmd_select_window_exec
};
-void
-cmd_select_window_key_binding(struct cmd *self, int key)
-{
- char tmp[16];
-
- self->args = args_create(0);
- if (key >= '0' && key <= '9') {
- xsnprintf(tmp, sizeof tmp, ":%d", key - '0');
- args_set(self->args, 't', tmp);
- }
- if (key == ('n' | KEYC_ESCAPE) || key == ('p' | KEYC_ESCAPE))
- args_set(self->args, 'a', NULL);
-}
-
enum cmd_retval
cmd_select_window_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-send-keys.c b/cmd-send-keys.c
index ef61d2b..7a4d97d 100644
--- a/cmd-send-keys.c
+++ b/cmd-send-keys.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_send_keys_entry = {
"lRt:", 0, -1,
"[-lR] " CMD_TARGET_PANE_USAGE " key ...",
0,
- NULL,
cmd_send_keys_exec
};
@@ -43,7 +42,6 @@ const struct cmd_entry cmd_send_prefix_entry = {
"2t:", 0, 0,
"[-2] " CMD_TARGET_PANE_USAGE,
0,
- NULL,
cmd_send_keys_exec
};
diff --git a/cmd-set-buffer.c b/cmd-set-buffer.c
index 88bd0c1..0ec362b 100644
--- a/cmd-set-buffer.c
+++ b/cmd-set-buffer.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_set_buffer_entry = {
"ab:n:", 0, 1,
"[-a] " CMD_BUFFER_USAGE " [-n new-buffer-name] data",
0,
- NULL,
cmd_set_buffer_exec
};
diff --git a/cmd-set-environment.c b/cmd-set-environment.c
index 7a446fc..83e63b4 100644
--- a/cmd-set-environment.c
+++ b/cmd-set-environment.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_set_environment_entry = {
"grt:u", 1, 2,
"[-gru] " CMD_TARGET_SESSION_USAGE " name [value]",
0,
- NULL,
cmd_set_environment_exec
};
diff --git a/cmd-set-option.c b/cmd-set-option.c
index 5cea493..01d691d 100644
--- a/cmd-set-option.c
+++ b/cmd-set-option.c
@@ -69,7 +69,6 @@ const struct cmd_entry cmd_set_option_entry = {
"agoqst:uw", 1, 2,
"[-agosquw] [-t target-session|target-window] option [value]",
0,
- NULL,
cmd_set_option_exec
};
@@ -78,7 +77,6 @@ const struct cmd_entry cmd_set_window_option_entry = {
"agoqt:u", 1, 2,
"[-agoqu] " CMD_TARGET_WINDOW_USAGE " option [value]",
0,
- NULL,
cmd_set_option_exec
};
diff --git a/cmd-show-environment.c b/cmd-show-environment.c
index 4ba111b..7737752 100644
--- a/cmd-show-environment.c
+++ b/cmd-show-environment.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_show_environment_entry = {
"gt:", 0, 1,
"[-g] " CMD_TARGET_SESSION_USAGE " [name]",
0,
- NULL,
cmd_show_environment_exec
};
diff --git a/cmd-show-messages.c b/cmd-show-messages.c
index 45358fd..3b7baa8 100644
--- a/cmd-show-messages.c
+++ b/cmd-show-messages.c
@@ -36,7 +36,6 @@ const struct cmd_entry cmd_show_messages_entry = {
"IJTt:", 0, 0,
"[-IJT] " CMD_TARGET_CLIENT_USAGE,
0,
- NULL,
cmd_show_messages_exec
};
@@ -45,7 +44,6 @@ const struct cmd_entry cmd_server_info_entry = {
"", 0, 0,
"",
0,
- NULL,
cmd_show_messages_exec
};
diff --git a/cmd-show-options.c b/cmd-show-options.c
index b2c6ec3..a5011e7 100644
--- a/cmd-show-options.c
+++ b/cmd-show-options.c
@@ -39,7 +39,6 @@ const struct cmd_entry cmd_show_options_entry = {
"gqst:vw", 0, 1,
"[-gqsvw] [-t target-session|target-window] [option]",
0,
- NULL,
cmd_show_options_exec
};
@@ -48,7 +47,6 @@ const struct cmd_entry cmd_show_window_options_entry = {
"gvt:", 0, 1,
"[-gv] " CMD_TARGET_WINDOW_USAGE " [option]",
0,
- NULL,
cmd_show_options_exec
};
diff --git a/cmd-source-file.c b/cmd-source-file.c
index 8fcfe2f..8610d80 100644
--- a/cmd-source-file.c
+++ b/cmd-source-file.c
@@ -36,7 +36,6 @@ const struct cmd_entry cmd_source_file_entry = {
"", 1, 1,
"path",
0,
- NULL,
cmd_source_file_exec
};
diff --git a/cmd-split-window.c b/cmd-split-window.c
index 8a608bd..797332c 100644
--- a/cmd-split-window.c
+++ b/cmd-split-window.c
@@ -31,7 +31,6 @@
* Split a window (add a new pane).
*/
-void cmd_split_window_key_binding(struct cmd *, int);
enum cmd_retval cmd_split_window_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_split_window_entry = {
@@ -40,18 +39,9 @@ const struct cmd_entry cmd_split_window_entry = {
"[-dhvP] [-c start-directory] [-F format] [-p percentage|-l size] "
CMD_TARGET_PANE_USAGE " [command]",
0,
- cmd_split_window_key_binding,
cmd_split_window_exec
};
-void
-cmd_split_window_key_binding(struct cmd *self, int key)
-{
- self->args = args_create(0);
- if (key == '%')
- args_set(self->args, 'h', NULL);
-}
-
enum cmd_retval
cmd_split_window_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-suspend-client.c b/cmd-suspend-client.c
index 5d1e7fe..63ed874 100644
--- a/cmd-suspend-client.c
+++ b/cmd-suspend-client.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_suspend_client_entry = {
"t:", 0, 0,
CMD_TARGET_CLIENT_USAGE,
0,
- NULL,
cmd_suspend_client_exec
};
diff --git a/cmd-swap-pane.c b/cmd-swap-pane.c
index e8170bb..918a2e4 100644
--- a/cmd-swap-pane.c
+++ b/cmd-swap-pane.c
@@ -26,7 +26,6 @@
* Swap two panes.
*/
-void cmd_swap_pane_key_binding(struct cmd *, int);
enum cmd_retval cmd_swap_pane_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_swap_pane_entry = {
@@ -34,20 +33,9 @@ const struct cmd_entry cmd_swap_pane_entry = {
"dDs:t:U", 0, 0,
"[-dDU] " CMD_SRCDST_PANE_USAGE,
0,
- cmd_swap_pane_key_binding,
cmd_swap_pane_exec
};
-void
-cmd_swap_pane_key_binding(struct cmd *self, int key)
-{
- self->args = args_create(0);
- if (key == '{')
- args_set(self->args, 'U', NULL);
- else if (key == '}')
- args_set(self->args, 'D', NULL);
-}
-
enum cmd_retval
cmd_swap_pane_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-swap-window.c b/cmd-swap-window.c
index 00bf6d4..655b910 100644
--- a/cmd-swap-window.c
+++ b/cmd-swap-window.c
@@ -33,7 +33,6 @@ const struct cmd_entry cmd_swap_window_entry = {
"ds:t:", 0, 0,
"[-d] " CMD_SRCDST_WINDOW_USAGE,
0,
- NULL,
cmd_swap_window_exec
};
diff --git a/cmd-switch-client.c b/cmd-switch-client.c
index 872570b..439f593 100644
--- a/cmd-switch-client.c
+++ b/cmd-switch-client.c
@@ -27,7 +27,6 @@
* Switch client to a different session.
*/
-void cmd_switch_client_key_binding(struct cmd *, int);
enum cmd_retval cmd_switch_client_exec(struct cmd *, struct cmd_q *);
const struct cmd_entry cmd_switch_client_entry = {
@@ -35,27 +34,9 @@ const struct cmd_entry cmd_switch_client_entry = {
"lc:npt:r", 0, 0,
"[-lnpr] [-c target-client] [-t target-session]",
CMD_READONLY,
- cmd_switch_client_key_binding,
cmd_switch_client_exec
};
-void
-cmd_switch_client_key_binding(struct cmd *self, int key)
-{
- self->args = args_create(0);
- switch (key) {
- case '(':
- args_set(self->args, 'p', NULL);
- break;
- case ')':
- args_set(self->args, 'n', NULL);
- break;
- case 'L':
- args_set(self->args, 'l', NULL);
- break;
- }
-}
-
enum cmd_retval
cmd_switch_client_exec(struct cmd *self, struct cmd_q *cmdq)
{
diff --git a/cmd-unbind-key.c b/cmd-unbind-key.c
index 92657c2..710210c 100644
--- a/cmd-unbind-key.c
+++ b/cmd-unbind-key.c
@@ -34,7 +34,6 @@ const struct cmd_entry cmd_unbind_key_entry = {
"acnt:", 0, 1,
"[-acn] [-t mode-table] key",
0,
- NULL,
cmd_unbind_key_exec
};
diff --git a/cmd-unlink-window.c b/cmd-unlink-window.c
index d4c77f2..adc7016 100644
--- a/cmd-unlink-window.c
+++ b/cmd-unlink-window.c
@@ -31,7 +31,6 @@ const struct cmd_entry cmd_unlink_window_entry = {
"kt:", 0, 0,
"[-k] " CMD_TARGET_WINDOW_USAGE,
0,
- NULL,
cmd_unlink_window_exec
};
diff --git a/cmd-wait-for.c b/cmd-wait-for.c
index 48a6fe3..a3e8585 100644
--- a/cmd-wait-for.c
+++ b/cmd-wait-for.c
@@ -35,7 +35,6 @@ const struct cmd_entry cmd_wait_for_entry = {
"LSU", 1, 1,
"[-L|-S|-U] channel",
0,
- NULL,
cmd_wait_for_exec
};
diff --git a/key-bindings.c b/key-bindings.c
index 55c8aeb..13ba9f2 100644
--- a/key-bindings.c
+++ b/key-bindings.c
@@ -84,107 +84,99 @@ key_bindings_remove(int key)
void
key_bindings_init(void)
{
- static const struct {
- int key;
- int can_repeat;
- const struct cmd_entry *entry;
- } table[] = {
- { ' ', 0, &cmd_next_layout_entry },
- { '!', 0, &cmd_break_pane_entry },
- { '"', 0, &cmd_split_window_entry },
- { '#', 0, &cmd_list_buffers_entry },
- { '$', 0, &cmd_command_prompt_entry },
- { '%', 0, &cmd_split_window_entry },
- { '&', 0, &cmd_confirm_before_entry },
- { '(', 0, &cmd_switch_client_entry },
- { ')', 0, &cmd_switch_client_entry },
- { ',', 0, &cmd_command_prompt_entry },
- { '-', 0, &cmd_delete_buffer_entry },
- { '.', 0, &cmd_command_prompt_entry },
- { '0', 0, &cmd_select_window_entry },
- { '1', 0, &cmd_select_window_entry },
- { '2', 0, &cmd_select_window_entry },
- { '3', 0, &cmd_select_window_entry },
- { '4', 0, &cmd_select_window_entry },
- { '5', 0, &cmd_select_window_entry },
- { '6', 0, &cmd_select_window_entry },
- { '7', 0, &cmd_select_window_entry },
- { '8', 0, &cmd_select_window_entry },
- { '9', 0, &cmd_select_window_entry },
- { ':', 0, &cmd_command_prompt_entry },
- { ';', 0, &cmd_last_pane_entry },
- { '=', 0, &cmd_choose_buffer_entry },
- { '?', 0, &cmd_list_keys_entry },
- { 'D', 0, &cmd_choose_client_entry },
- { 'L', 0, &cmd_switch_client_entry },
- { '[', 0, &cmd_copy_mode_entry },
- { '\'', 0, &cmd_command_prompt_entry },
- { '\002', /* C-b */ 0, &cmd_send_prefix_entry },
- { '\017', /* C-o */ 0, &cmd_rotate_window_entry },
- { '\032', /* C-z */ 0, &cmd_suspend_client_entry },
- { ']', 0, &cmd_paste_buffer_entry },
- { 'c', 0, &cmd_new_window_entry },
- { 'd', 0, &cmd_detach_client_entry },
- { 'f', 0, &cmd_command_prompt_entry },
- { 'i', 0, &cmd_display_message_entry },
- { 'l', 0, &cmd_last_window_entry },
- { 'n', 0, &cmd_next_window_entry },
- { 'o', 0, &cmd_select_pane_entry },
- { 'p', 0, &cmd_previous_window_entry },
- { 'q', 0, &cmd_display_panes_entry },
- { 'r', 0, &cmd_refresh_client_entry },
- { 's', 0, &cmd_choose_tree_entry },
- { 't', 0, &cmd_clock_mode_entry },
- { 'w', 0, &cmd_choose_window_entry },
- { 'x', 0, &cmd_confirm_before_entry },
- { 'z', 0, &cmd_resize_pane_entry },
- { '{', 0, &cmd_swap_pane_entry },
- { '}', 0, &cmd_swap_pane_entry },
- { '~', 0, &cmd_show_messages_entry },
- { '1' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
- { '2' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
- { '3' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
- { '4' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
- { '5' | KEYC_ESCAPE, 0, &cmd_select_layout_entry },
- { KEYC_PPAGE, 0, &cmd_copy_mode_entry },
- { 'n' | KEYC_ESCAPE, 0, &cmd_next_window_entry },
- { 'o' | KEYC_ESCAPE, 0, &cmd_rotate_window_entry },
- { 'p' | KEYC_ESCAPE, 0, &cmd_previous_window_entry },
- { KEYC_UP, 1, &cmd_select_pane_entry },
- { KEYC_DOWN, 1, &cmd_select_pane_entry },
- { KEYC_LEFT, 1, &cmd_select_pane_entry },
- { KEYC_RIGHT, 1, &cmd_select_pane_entry },
- { KEYC_UP | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
- { KEYC_DOWN | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
- { KEYC_LEFT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
- { KEYC_RIGHT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },
- { KEYC_UP | KEYC_CTRL, 1, &cmd_resize_pane_entry },
- { KEYC_DOWN | KEYC_CTRL, 1, &cmd_resize_pane_entry },
- { KEYC_LEFT | KEYC_CTRL, 1, &cmd_resize_pane_entry },
- { KEYC_RIGHT | KEYC_CTRL, 1, &cmd_resize_pane_entry },
+ static const char* defaults[] = {
+ "bind C-b send-prefix",
+ "bind C-o rotate-window",
+ "bind C-z suspend-client",
+ "bind Space next-layout",
+ "bind ! break-pane",
+ "bind '\"' split-window",
+ "bind '#' list-buffers",
+ "bind '$' command-prompt -I'#S' \"rename-session '%%'\"",
+ "bind % split-window -h",
+ "bind & confirm-before -p\"kill-window #W? (y/n)\" kill-window",
+ "bind \"'\" command-prompt -pindex \"select-window -t ':%%'\"",
+ "bind ( switch-client -p",
+ "bind ) switch-client -n",
+ "bind , command-prompt -I'#W' \"rename-window '%%'\"",
+ "bind - delete-buffer",
+ "bind . command-prompt \"move-window -t '%%'\"",
+ "bind 0 select-window -t:0",
+ "bind 1 select-window -t:1",
+ "bind 2 select-window -t:2",
+ "bind 3 select-window -t:3",
+ "bind 4 select-window -t:4",
+ "bind 5 select-window -t:5",
+ "bind 6 select-window -t:6",
+ "bind 7 select-window -t:7",
+ "bind 8 select-window -t:8",
+ "bind 9 select-window -t:9",
+ "bind : command-prompt",
+ "bind \\; last-pane",
+ "bind = choose-buffer",
+ "bind ? list-keys",
+ "bind D choose-client",
+ "bind L switch-client -l",
+ "bind [ copy-mode",
+ "bind ] paste-buffer",
+ "bind c new-window",
+ "bind d detach-client",
+ "bind f command-prompt \"find-window '%%'\"",
+ "bind i display-message",
+ "bind l last-window",
+ "bind n next-window",
+ "bind o select-pane -t:.+",
+ "bind p previous-window",
+ "bind q display-panes",
+ "bind r refresh-client",
+ "bind s choose-tree",
+ "bind t clock-mode",
+ "bind w choose-window",
+ "bind x confirm-before -p\"kill-pane #P? (y/n)\" kill-pane",
+ "bind z resize-pane -Z",
+ "bind { swap-pane -U",
+ "bind } swap-pane -D",
+ "bind '~' show-messages",
+ "bind PPage copy-mode -u",
+ "bind -r Up select-pane -U",
+ "bind -r Down select-pane -D",
+ "bind -r Left select-pane -L",
+ "bind -r Right select-pane -R",
+ "bind M-1 select-layout even-horizontal",
+ "bind M-2 select-layout even-vertical",
+ "bind M-3 select-layout main-horizontal",
+ "bind M-4 select-layout main-vertical",
+ "bind M-5 select-layout tiled",
+ "bind M-n next-window -a",
+ "bind M-o rotate-window -D",
+ "bind M-p previous-window -a",
+ "bind -r M-Up resize-pane -U 5",
+ "bind -r M-Down resize-pane -D 5",
+ "bind -r M-Left resize-pane -L 5",
+ "bind -r M-Right resize-pane -R 5",
+ "bind -r C-Up resize-pane -U",
+ "bind -r C-Down resize-pane -D",
+ "bind -r C-Left resize-pane -L",
+ "bind -r C-Right resize-pane -R",
};
u_int i;
- struct cmd *cmd;
struct cmd_list *cmdlist;
+ char* cause;
+ int error;
+ struct cmd_q *cmdq;
RB_INIT(&key_bindings);
- for (i = 0; i < nitems(table); i++) {
- cmdlist = xcalloc(1, sizeof *cmdlist);
- cmdlist->references = 1;
- TAILQ_INIT(&cmdlist->list);
-
- cmd = xcalloc(1, sizeof *cmd);
- cmd->entry = table[i].entry;
- if (cmd->entry->key_binding != NULL)
- cmd->entry->key_binding(cmd, table[i].key);
- else
- cmd->args = args_create(0);
- TAILQ_INSERT_HEAD(&cmdlist->list, cmd, qentry);
-
- key_bindings_add(
- table[i].key | KEYC_PREFIX, table[i].can_repeat, cmdlist);
+ cmdq = cmdq_new (NULL);
+ for (i = 0; i < nitems(defaults); i++) {
+ error = cmd_string_parse(defaults[i], &cmdlist,
+ "<default-keys>", i, &cause);
+ if (error != 0)
+ fatalx("bad default key");
+ cmdq_run (cmdq, cmdlist);
+ cmd_list_free (cmdlist);
}
+ cmdq_free (cmdq);
}
void
diff --git a/tmux.h b/tmux.h
index d119742..0a677a3 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1492,7 +1492,6 @@ struct cmd_entry {
#define CMD_READONLY 0x4
int flags;
- void (*key_binding)(struct cmd *, int);
enum cmd_retval (*exec)(struct cmd *, struct cmd_q *);
};
commit f0b69c771173583eee8f1457c080746ea6144c5f
Author: nicm <nicm>
Commit: nicm <nicm>
Fix description of Ss and Se.
---
tmux.1 | 8 +++-----
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/tmux.1 b/tmux.1
index bb7f5aa..0c738f3 100644
--- a/tmux.1
+++ b/tmux.1
@@ -3648,7 +3648,7 @@ to change the cursor colour from inside
$ printf '\e033]12;red\e033\e\e'
.Ed
.It Em \&Ss , Se
-Change the cursor style.
+Set or reset the cursor style.
If set, a sequence such as this may be used
to change the cursor to an underline:
.Bd -literal -offset indent
@@ -3656,10 +3656,8 @@ $ printf '\e033[4 q'
.Ed
.Pp
If
-.Em Csr
-is set, it will be used to reset the cursor style instead
-of
-.Em Cs .
+.Em Se
+is not set, \&Ss with argument 0 will be used to reset the cursor style
instead.
.It Em \&Ms
This sequence can be used by
.Nm
-----------------------------------------------------------------------
Summary of changes:
Makefile.am | 3 -
arguments.c | 1 +
client.c | 1 +
cmd-attach-session.c | 1 -
cmd-bind-key.c | 1 -
cmd-break-pane.c | 3 +-
cmd-capture-pane.c | 1 -
cmd-choose-buffer.c | 4 +-
cmd-choose-client.c | 7 ++-
cmd-choose-tree.c | 12 +++-
cmd-clear-history.c | 1 -
cmd-clock-mode.c | 1 -
cmd-command-prompt.c | 30 --------
cmd-confirm-before.c | 22 +-----
cmd-copy-mode.c | 10 ---
cmd-delete-buffer.c | 1 -
cmd-detach-client.c | 18 +++++-
cmd-display-message.c | 6 ++-
cmd-display-panes.c | 1 -
cmd-find-window.c | 6 ++-
cmd-has-session.c | 1 -
cmd-if-shell.c | 1 -
cmd-join-pane.c | 17 -----
cmd-kill-pane.c | 1 -
cmd-kill-server.c | 2 -
cmd-kill-session.c | 1 -
cmd-kill-window.c | 1 -
cmd-link-window.c | 1 -
cmd-list-buffers.c | 4 +-
cmd-list-clients.c | 6 ++-
cmd-list-commands.c | 54 --------------
cmd-list-keys.c | 33 +++++++++-
cmd-list-panes.c | 1 -
cmd-list-sessions.c | 9 ++-
cmd-list-windows.c | 17 ++++-
cmd-load-buffer.c | 1 -
cmd-lock-server.c | 3 -
cmd-move-window.c | 1 -
cmd-new-session.c | 17 ++++-
cmd-new-window.c | 3 +-
cmd-paste-buffer.c | 1 -
cmd-pipe-pane.c | 1 -
cmd-queue.c | 4 +-
cmd-refresh-client.c | 1 -
cmd-rename-session.c | 1 -
cmd-rename-window.c | 1 -
cmd-resize-pane.c | 48 -------------
cmd-respawn-pane.c | 1 -
cmd-respawn-window.c | 1 -
cmd-rotate-window.c | 10 ---
cmd-run-shell.c | 1 -
cmd-save-buffer.c | 2 -
cmd-select-layout.c | 29 --------
cmd-select-pane.c | 19 -----
cmd-select-window.c | 19 -----
cmd-send-keys.c | 2 -
cmd-set-buffer.c | 1 -
cmd-set-environment.c | 1 -
cmd-set-option.c | 2 -
cmd-show-environment.c | 1 -
cmd-show-messages.c | 2 -
cmd-show-options.c | 2 -
cmd-source-file.c | 1 -
cmd-split-window.c | 12 +---
cmd-suspend-client.c | 55 ---------------
cmd-swap-pane.c | 12 ---
cmd-swap-window.c | 1 -
cmd-switch-client.c | 19 -----
cmd-unbind-key.c | 1 -
cmd-unlink-window.c | 1 -
cmd-wait-for.c | 1 -
control.c | 2 +-
format.c | 1 +
job.c | 1 +
key-bindings.c | 180 +++++++++++++++++++++++-------------------------
log.c | 6 +-
options.c | 2 +-
osdep-linux.c | 1 +
screen-write.c | 26 ++++----
screen.c | 6 +-
server-fn.c | 2 +-
signal.c | 2 +
status.c | 2 +-
style.c | 2 +
tmux.1 | 8 +--
tmux.c | 7 +-
tmux.h | 123 ++++++---------------------------
xmalloc.c | 9 +--
88 files changed, 284 insertions(+), 653 deletions(-)
delete mode 100644 cmd-list-commands.c
delete mode 100644 cmd-suspend-client.c
hooks/post-receive
--
tmux
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://p.sf.net/sfu/Zoho
_______________________________________________
tmux-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-cvs