=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-if-shell.c,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- src/usr.bin/tmux/cmd-if-shell.c 2021/08/23 12:33:55 1.80 +++ src/usr.bin/tmux/cmd-if-shell.c 2021/08/25 08:51:55 1.81 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-if-shell.c,v 1.80 2021/08/23 12:33:55 nicm Exp $ */ +/* $OpenBSD: cmd-if-shell.c,v 1.81 2021/08/25 08:51:55 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha @@ -29,7 +29,10 @@ * Executes a tmux command if a shell command returns true or false. */ -static enum cmd_retval cmd_if_shell_exec(struct cmd *, struct cmdq_item *); +static enum args_parse_type cmd_if_shell_args_parse(struct args *, u_int, + char **); +static enum cmd_retval cmd_if_shell_exec(struct cmd *, + struct cmdq_item *); static void cmd_if_shell_callback(struct job *); static void cmd_if_shell_free(void *); @@ -38,7 +41,7 @@ .name = "if-shell", .alias = "if", - .args = { "bFt:", 2, 3, NULL }, + .args = { "bFt:", 2, 3, cmd_if_shell_args_parse }, .usage = "[-bF] " CMD_TARGET_PANE_USAGE " shell-command command " "[command]", @@ -55,6 +58,15 @@ struct client *client; struct cmdq_item *item; }; + +static enum args_parse_type +cmd_if_shell_args_parse(__unused struct args *args, u_int idx, + __unused char **cause) +{ + if (idx == 1 || idx == 2) + return (ARGS_PARSE_COMMANDS_OR_STRING); + return (ARGS_PARSE_STRING); +} static enum cmd_retval cmd_if_shell_exec(struct cmd *self, struct cmdq_item *item)