summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/tmux/Makefile3
-rw-r--r--usr.bin/tmux/cmd-list.c103
-rw-r--r--usr.bin/tmux/cmd.c81
3 files changed, 81 insertions, 106 deletions
diff --git a/usr.bin/tmux/Makefile b/usr.bin/tmux/Makefile
index c86035be3c9..1c241af6948 100644
--- a/usr.bin/tmux/Makefile
+++ b/usr.bin/tmux/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.98 2019/05/23 21:36:42 espie Exp $
+# $OpenBSD: Makefile,v 1.99 2019/05/25 07:29:04 nicm Exp $
PROG= tmux
SRCS= alerts.c \
@@ -32,7 +32,6 @@ SRCS= alerts.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 \
diff --git a/usr.bin/tmux/cmd-list.c b/usr.bin/tmux/cmd-list.c
deleted file mode 100644
index 6de9190c374..00000000000
--- a/usr.bin/tmux/cmd-list.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* $OpenBSD: cmd-list.c,v 1.20 2019/05/25 07:18:20 nicm Exp $ */
-
-/*
- * Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
- *
- * 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"
-
-static u_int cmd_list_next_group = 1;
-
-struct cmd_list *
-cmd_list_new(void)
-{
- struct cmd_list *cmdlist;
-
- cmdlist = xcalloc(1, sizeof *cmdlist);
- cmdlist->references = 1;
- cmdlist->group = cmd_list_next_group++;
- TAILQ_INIT(&cmdlist->list);
- return (cmdlist);
-}
-
-void
-cmd_list_append(struct cmd_list *cmdlist, struct cmd *cmd)
-{
- cmd->group = cmdlist->group;
- TAILQ_INSERT_TAIL(&cmdlist->list, cmd, qentry);
-}
-
-void
-cmd_list_move(struct cmd_list *cmdlist, struct cmd_list *from)
-{
- struct cmd *cmd, *cmd1;
-
- TAILQ_FOREACH_SAFE(cmd, &from->list, qentry, cmd1) {
- TAILQ_REMOVE(&from->list, cmd, qentry);
- TAILQ_INSERT_TAIL(&cmdlist->list, cmd, qentry);
- }
- cmdlist->group = cmd_list_next_group++;
-}
-
-void
-cmd_list_free(struct cmd_list *cmdlist)
-{
- struct cmd *cmd, *cmd1;
-
- if (--cmdlist->references != 0)
- return;
-
- TAILQ_FOREACH_SAFE(cmd, &cmdlist->list, qentry, cmd1) {
- TAILQ_REMOVE(&cmdlist->list, cmd, qentry);
- cmd_free(cmd);
- }
-
- free(cmdlist);
-}
-
-char *
-cmd_list_print(struct cmd_list *cmdlist, int escaped)
-{
- struct cmd *cmd;
- char *buf, *this;
- size_t len;
-
- len = 1;
- buf = xcalloc(1, len);
-
- TAILQ_FOREACH(cmd, &cmdlist->list, qentry) {
- this = cmd_print(cmd);
-
- len += strlen(this) + 4;
- buf = xrealloc(buf, len);
-
- strlcat(buf, this, len);
- if (TAILQ_NEXT(cmd, qentry) != NULL) {
- if (escaped)
- strlcat(buf, " \\; ", len);
- else
- strlcat(buf, " ; ", len);
- }
-
- free(this);
- }
-
- return (buf);
-}
diff --git a/usr.bin/tmux/cmd.c b/usr.bin/tmux/cmd.c
index e3d95329602..1245a1be1fe 100644
--- a/usr.bin/tmux/cmd.c
+++ b/usr.bin/tmux/cmd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd.c,v 1.150 2019/05/25 06:58:10 nicm Exp $ */
+/* $OpenBSD: cmd.c,v 1.151 2019/05/25 07:29:04 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -205,6 +205,8 @@ const struct cmd_entry *cmd_table[] = {
NULL
};
+static u_int cmd_list_next_group = 1;
+
void printflike(3, 4)
cmd_log_argv(int argc, char **argv, const char *fmt, ...)
{
@@ -502,6 +504,83 @@ cmd_print(struct cmd *cmd)
return (out);
}
+struct cmd_list *
+cmd_list_new(void)
+{
+ struct cmd_list *cmdlist;
+
+ cmdlist = xcalloc(1, sizeof *cmdlist);
+ cmdlist->references = 1;
+ cmdlist->group = cmd_list_next_group++;
+ TAILQ_INIT(&cmdlist->list);
+ return (cmdlist);
+}
+
+void
+cmd_list_append(struct cmd_list *cmdlist, struct cmd *cmd)
+{
+ cmd->group = cmdlist->group;
+ TAILQ_INSERT_TAIL(&cmdlist->list, cmd, qentry);
+}
+
+void
+cmd_list_move(struct cmd_list *cmdlist, struct cmd_list *from)
+{
+ struct cmd *cmd, *cmd1;
+
+ TAILQ_FOREACH_SAFE(cmd, &from->list, qentry, cmd1) {
+ TAILQ_REMOVE(&from->list, cmd, qentry);
+ TAILQ_INSERT_TAIL(&cmdlist->list, cmd, qentry);
+ }
+ cmdlist->group = cmd_list_next_group++;
+}
+
+void
+cmd_list_free(struct cmd_list *cmdlist)
+{
+ struct cmd *cmd, *cmd1;
+
+ if (--cmdlist->references != 0)
+ return;
+
+ TAILQ_FOREACH_SAFE(cmd, &cmdlist->list, qentry, cmd1) {
+ TAILQ_REMOVE(&cmdlist->list, cmd, qentry);
+ cmd_free(cmd);
+ }
+
+ free(cmdlist);
+}
+
+char *
+cmd_list_print(struct cmd_list *cmdlist, int escaped)
+{
+ struct cmd *cmd;
+ char *buf, *this;
+ size_t len;
+
+ len = 1;
+ buf = xcalloc(1, len);
+
+ TAILQ_FOREACH(cmd, &cmdlist->list, qentry) {
+ this = cmd_print(cmd);
+
+ len += strlen(this) + 4;
+ buf = xrealloc(buf, len);
+
+ strlcat(buf, this, len);
+ if (TAILQ_NEXT(cmd, qentry) != NULL) {
+ if (escaped)
+ strlcat(buf, " \\; ", len);
+ else
+ strlcat(buf, " ; ", len);
+ }
+
+ free(this);
+ }
+
+ return (buf);
+}
+
/* Adjust current mouse position for a pane. */
int
cmd_mouse_at(struct window_pane *wp, struct mouse_event *m, u_int *xp,