command: handle list commands like normal commands

Pretty annoying.
This commit is contained in:
wm4
2018-05-05 20:20:21 +02:00
parent 88f9506f42
commit dc00566963
2 changed files with 11 additions and 11 deletions

View File

@@ -27,10 +27,6 @@
#include "libmpv/client.h"
const struct mp_cmd_def mp_cmd_list = {
.name = "list",
};
static void destroy_cmd(void *ptr)
{
struct mp_cmd *cmd = ptr;

View File

@@ -4825,6 +4825,16 @@ static void cmd_cycle_values(void *p)
change_property_cmd(cmd, name, M_PROPERTY_SET_STRING, cmd->args[current].v.s);
}
static void cmd_list(void *p)
{
struct mp_cmd_ctx *cmd = p;
for (struct mp_cmd *sub = cmd->cmd->args[0].v.p; sub; sub = sub->queue_next)
run_command(cmd->mpctx, sub, NULL);
}
const struct mp_cmd_def mp_cmd_list = { "list", cmd_list };
int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *res)
{
struct mpv_node dummy_node = {0};
@@ -4861,13 +4871,7 @@ int run_command(struct MPContext *mpctx, struct mp_cmd *cmd, struct mpv_node *re
}
}
if (cmd->def == &mp_cmd_list) {
for (struct mp_cmd *sub = cmd->args[0].v.p; sub; sub = sub->queue_next)
run_command(mpctx, sub, NULL);
} else {
assert(cmd->def->handler);
cmd->def->handler(ctx);
}
cmd->def->handler(ctx);
if (!ctx->success)
mpv_free_node_contents(ctx->result);