Add [-d delim] option to choose-list command.
Then we can use 'delim' instead of comma to seperate list items.
Tmux cannot pass list item containing comma (e.g. "ss -tan | awk '{print \$1,
\$4}' " ) to choose list originally.
>From 34c76e1689b9bb6be3862ef34a8c9778b009b8a6 Mon Sep 17 00:00:00 2001
From: Xiaochen Wang <[email protected]>
Date: Wed, 4 Dec 2013 13:47:32 +0800
Subject: [PATCH] choose-list: add -d option for items delimiter
---
cmd-choose-list.c | 11 +++++++----
tmux.1 | 4 ++++
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/cmd-choose-list.c b/cmd-choose-list.c
index c3caabb..719adf3 100644
--- a/cmd-choose-list.c
+++ b/cmd-choose-list.c
@@ -35,8 +35,8 @@ enum cmd_retval cmd_choose_list_exec(struct cmd *, struct
cmd_q *);
const struct cmd_entry cmd_choose_list_entry = {
"choose-list", NULL,
- "l:t:", 0, 1,
- "[-l items] " CMD_TARGET_WINDOW_USAGE "[template]",
+ "l:d:t:", 0, 1,
+ "[-l items] [-d delim] " CMD_TARGET_WINDOW_USAGE "[template]",
0,
NULL,
cmd_choose_list_exec
@@ -48,7 +48,7 @@ cmd_choose_list_exec(struct cmd *self, struct cmd_q *cmdq)
struct args *args = self->args;
struct client *c;
struct winlink *wl;
- const char *list1;
+ const char *list1, *delim;
char *template, *item, *copy, *list;
u_int idx;
@@ -60,6 +60,9 @@ cmd_choose_list_exec(struct cmd *self, struct cmd_q *cmdq)
if ((list1 = args_get(args, 'l')) == NULL)
return (CMD_RETURN_ERROR);
+ if ((delim = args_get(args, 'd')) == NULL)
+ delim = ",";
+
if ((wl = cmd_find_window(cmdq, args_get(args, 't'), NULL)) == NULL)
return (CMD_RETURN_ERROR);
@@ -73,7 +76,7 @@ cmd_choose_list_exec(struct cmd *self, struct cmd_q *cmdq)
copy = list = xstrdup(list1);
idx = 0;
- while ((item = strsep(&list, ",")) != NULL)
+ while ((item = strsep(&list, delim)) != NULL)
{
if (*item == '\0') /* no empty entries */
continue;
diff --git a/tmux.1 b/tmux.1
index 1146faf..68fa803 100644
--- a/tmux.1
+++ b/tmux.1
@@ -1151,6 +1151,7 @@ This command works only if at least one client is
attached.
.It Xo
.Ic choose-list
.Op Fl l Ar items
+.Op Fl d Ar delim
.Op Fl t Ar target-window
.Op Ar template
.Xc
@@ -1159,6 +1160,9 @@ Put a window into list choice mode, allowing
to be selected.
.Ar items
can be a comma-separated list to display more than one item.
+You can use
+.Ar delim
+to separate list instead of default comma delimiter.
If an item has spaces, that entry must be quoted.
After an item is chosen,
.Ql %%
--
1.8.3.4 (Apple Git-47)
------------------------------------------------------------------------------
Sponsored by Intel(R) XDK
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users