version 1.11, 2017/04/22 10:22:39 |
version 1.12, 2018/07/04 12:30:52 |
|
|
.name = "set-hook", |
.name = "set-hook", |
.alias = NULL, |
.alias = NULL, |
|
|
.args = { "gt:u", 1, 2 }, |
.args = { "gRt:u", 1, 2 }, |
.usage = "[-gu] " CMD_TARGET_SESSION_USAGE " hook-name [command]", |
.usage = "[-gRu] " CMD_TARGET_SESSION_USAGE " hook-name [command]", |
|
|
.target = { 't', CMD_FIND_SESSION, CMD_FIND_CANFAIL }, |
.target = { 't', CMD_FIND_SESSION, CMD_FIND_CANFAIL }, |
|
|
|
|
else |
else |
cmd = args->argv[1]; |
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 (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); |
hooks_remove(hooks, name); |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |
|
|
if (cmd == NULL) { |
if (cmd == NULL) { |
cmdq_error(item, "no command to set hook: %s", name); |
cmdq_error(item, "no command given"); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
cmdlist = cmd_string_parse(cmd, NULL, 0, &cause); |
cmdlist = cmd_string_parse(cmd, NULL, 0, &cause); |