summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/input/input.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/core/input/input.c b/core/input/input.c
index 183cec7f09..7a016a0e4f 100644
--- a/core/input/input.c
+++ b/core/input/input.c
@@ -1772,13 +1772,16 @@ mp_cmd_t *mp_cmd_clone(mp_cmd_t *cmd)
}
if (cmd->id == MP_CMD_COMMAND_LIST) {
- bool first = true;
+ struct mp_cmd *prev = NULL;
for (struct mp_cmd *sub = cmd->args[0].v.p; sub; sub = sub->queue_next) {
sub = mp_cmd_clone(sub);
- talloc_steal(cmd, sub);
- if (first)
- cmd->args[0].v.p = sub;
- first = false;
+ talloc_steal(ret, sub);
+ if (prev) {
+ prev->queue_next = sub;
+ } else {
+ ret->args[0].v.p = sub;
+ }
+ prev = sub;
}
}