=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-bind-key.c,v retrieving revision 1.38 retrieving revision 1.39 diff -c -r1.38 -r1.39 *** src/usr.bin/tmux/cmd-bind-key.c 2020/09/08 10:19:19 1.38 --- src/usr.bin/tmux/cmd-bind-key.c 2021/08/20 19:50:16 1.39 *************** *** 1,4 **** ! /* $OpenBSD: cmd-bind-key.c,v 1.38 2020/09/08 10:19:19 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-bind-key.c,v 1.39 2021/08/20 19:50:16 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 48,59 **** key_code key; const char *tablename, *note = args_get(args, 'N'); struct cmd_parse_result *pr; ! char **argv = args->argv; ! int argc = args->argc, repeat; ! key = key_string_lookup_string(argv[0]); if (key == KEYC_NONE || key == KEYC_UNKNOWN) { ! cmdq_error(item, "unknown key: %s", argv[0]); return (CMD_RETURN_ERROR); } --- 48,60 ---- key_code key; const char *tablename, *note = args_get(args, 'N'); struct cmd_parse_result *pr; ! char **argv; ! int argc, repeat; ! u_int count = args_count(args); ! key = key_string_lookup_string(args_string(args, 0)); if (key == KEYC_NONE || key == KEYC_UNKNOWN) { ! cmdq_error(item, "unknown key: %s", args_string(args, 0)); return (CMD_RETURN_ERROR); } *************** *** 65,75 **** tablename = "prefix"; repeat = args_has(args, 'r'); ! if (argc != 1) { ! if (argc == 2) ! pr = cmd_parse_from_string(argv[1], NULL); ! else pr = cmd_parse_from_arguments(argc - 1, argv + 1, NULL); switch (pr->status) { case CMD_PARSE_EMPTY: cmdq_error(item, "empty command"); --- 66,79 ---- tablename = "prefix"; repeat = args_has(args, 'r'); ! if (count != 1) { ! if (count == 2) ! pr = cmd_parse_from_string(args_string(args, 1), NULL); ! else { ! args_vector(args, &argc, &argv); pr = cmd_parse_from_arguments(argc - 1, argv + 1, NULL); + cmd_free_argv(argc, argv); + } switch (pr->status) { case CMD_PARSE_EMPTY: cmdq_error(item, "empty command");