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 <wangxiaoch...@gmail.com> 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 tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users