version 1.8, 2016/10/16 19:04:05 |
version 1.9, 2016/10/16 19:36:37 |
|
|
struct hook *hook; |
struct hook *hook; |
va_list ap; |
va_list ap; |
char *name; |
char *name; |
struct cmdq_item *new_item, *loop; |
struct cmdq_item *new_item; |
|
|
va_start(ap, fmt); |
va_start(ap, fmt); |
xvasprintf(&name, fmt, ap); |
xvasprintf(&name, fmt, ap); |
|
|
log_debug("running hook %s", name); |
log_debug("running hook %s", name); |
|
|
new_item = cmdq_get_command(hook->cmdlist, fs, NULL, CMDQ_NOHOOKS); |
new_item = cmdq_get_command(hook->cmdlist, fs, NULL, CMDQ_NOHOOKS); |
|
cmdq_format(new_item, "hook", "%s", name); |
|
cmdq_append(c, new_item); |
|
|
for (loop = new_item; loop != NULL; loop = loop->next) |
|
loop->hook = xstrdup(name); |
|
free(name); |
free(name); |
|
|
cmdq_append(c, new_item); |
|
} |
} |
|
|
void |
void |
|
|
struct hook *hook; |
struct hook *hook; |
va_list ap; |
va_list ap; |
char *name; |
char *name; |
struct cmdq_item *new_item, *loop; |
struct cmdq_item *new_item; |
|
|
if (item->flags & CMDQ_NOHOOKS) |
if (item->flags & CMDQ_NOHOOKS) |
return; |
return; |
|
|
log_debug("running hook %s (parent %p)", name, item); |
log_debug("running hook %s (parent %p)", name, item); |
|
|
new_item = cmdq_get_command(hook->cmdlist, fs, NULL, CMDQ_NOHOOKS); |
new_item = cmdq_get_command(hook->cmdlist, fs, NULL, CMDQ_NOHOOKS); |
|
cmdq_format(new_item, "hook", "%s", name); |
for (loop = new_item; loop != NULL; loop = loop->next) |
|
loop->hook = xstrdup(name); |
|
free(name); |
|
|
|
if (item != NULL) |
if (item != NULL) |
cmdq_insert_after(item, new_item); |
cmdq_insert_after(item, new_item); |
else |
else |
cmdq_append(NULL, new_item); |
cmdq_append(NULL, new_item); |
|
|
|
free(name); |
} |
} |