=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/Attic/cmd-set-hook.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- src/usr.bin/tmux/Attic/cmd-set-hook.c 2017/04/22 10:22:39 1.11 +++ src/usr.bin/tmux/Attic/cmd-set-hook.c 2018/07/04 12:30:52 1.12 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-set-hook.c,v 1.11 2017/04/22 10:22:39 nicm Exp $ */ +/* $OpenBSD: cmd-set-hook.c,v 1.12 2018/07/04 12:30:52 nicm Exp $ */ /* * Copyright (c) 2012 Thomas Adam @@ -33,8 +33,8 @@ .name = "set-hook", .alias = NULL, - .args = { "gt:u", 1, 2 }, - .usage = "[-gu] " CMD_TARGET_SESSION_USAGE " hook-name [command]", + .args = { "gRt:u", 1, 2 }, + .usage = "[-gRu] " CMD_TARGET_SESSION_USAGE " hook-name [command]", .target = { 't', CMD_FIND_SESSION, CMD_FIND_CANFAIL }, @@ -101,18 +101,21 @@ else cmd = args->argv[1]; + if (cmd != NULL && (args_has(args, 'R') || args_has(args, 'u'))) { + cmdq_error(item, "no command allowed"); + return (CMD_RETURN_ERROR); + } + if (args_has(args, 'R')) { + notify_hook(item, name); + return (CMD_RETURN_NORMAL); + } if (args_has(args, 'u')) { - if (cmd != NULL) { - cmdq_error(item, "command passed to unset hook: %s", - name); - return (CMD_RETURN_ERROR); - } hooks_remove(hooks, name); return (CMD_RETURN_NORMAL); } if (cmd == NULL) { - cmdq_error(item, "no command to set hook: %s", name); + cmdq_error(item, "no command given"); return (CMD_RETURN_ERROR); } cmdlist = cmd_string_parse(cmd, NULL, 0, &cause);