summaryrefslogtreecommitdiffstats
path: root/input/cmd.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-11-22 18:21:33 +0100
committerwm4 <wm4@nowhere>2019-11-23 01:18:49 +0100
commit6e0e39b79f1a024fb8dd98101c5fc63a8ec0d8ed (patch)
treea3debde472a6c400ae1bec940e2a8dee8753323f /input/cmd.c
parentdbb5dd7c33e8520ddec5eafc1118f66f854114af (diff)
downloadmpv-6e0e39b79f1a024fb8dd98101c5fc63a8ec0d8ed.tar.bz2
mpv-6e0e39b79f1a024fb8dd98101c5fc63a8ec0d8ed.tar.xz
input: change mp_cmd.original from bstr to cstr
No reason to have this as bstr, just makes everything more complex. Also clear mp_cmd.sender when it's copied. Otherwise it would be a dangling pointer. Apparently it's never set to non-NULL in this situation, but this is cleaner anyway.
Diffstat (limited to 'input/cmd.c')
-rw-r--r--input/cmd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/input/cmd.c b/input/cmd.c
index 91d171ccaa..093e97dbb4 100644
--- a/input/cmd.c
+++ b/input/cmd.c
@@ -413,7 +413,7 @@ static struct mp_cmd *parse_cmd_str(struct mp_log *log, void *tmp,
}
bstr orig = {ctx->start.start, ctx->str.start - ctx->start.start};
- cmd->original = bstrdup(cmd, bstr_strip(orig));
+ cmd->original = bstrto0(cmd, bstr_strip(orig));
*str = ctx->str;
return cmd;
@@ -449,7 +449,7 @@ mp_cmd_t *mp_input_parse_cmd_str(struct mp_log *log, bstr str, const char *loc)
*list = (struct mp_cmd) {
.name = (char *)mp_cmd_list.name,
.def = &mp_cmd_list,
- .original = bstrdup(list, original),
+ .original = bstrto0(list, original),
};
talloc_steal(list, cmd);
struct mp_cmd_arg arg = {0};
@@ -509,7 +509,8 @@ mp_cmd_t *mp_cmd_clone(mp_cmd_t *cmd)
ret->args[i].type = cmd->args[i].type;
m_option_copy(ret->args[i].type, &ret->args[i].v, &cmd->args[i].v);
}
- ret->original = bstrdup(ret, cmd->original);
+ ret->original = talloc_strdup(ret, cmd->original);
+ ret->sender = NULL;
ret->key_name = talloc_strdup(ret, ret->key_name);
ret->key_text = talloc_strdup(ret, ret->key_text);