summaryrefslogtreecommitdiffstats
path: root/m_struct.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-07-28 11:07:47 +0300
committerUoti Urpala <uau@mplayer2.org>2011-07-29 05:50:38 +0300
commite873d703e956d3e2e68b9e18562983b029b5c7a8 (patch)
tree44a2c48ae4e94bd580ffd5833cd71a037af36043 /m_struct.c
parentd8374376c0d46ffab88b96eb32b52621c34f562c (diff)
downloadmpv-e873d703e956d3e2e68b9e18562983b029b5c7a8.tar.bz2
mpv-e873d703e956d3e2e68b9e18562983b029b5c7a8.tar.xz
options: change option parsing to use bstr
Using bstr allows simpler parsing code, especially because it avoids the need to modify or copy strings just to terminate extracted substrings.
Diffstat (limited to 'm_struct.c')
-rw-r--r--m_struct.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/m_struct.c b/m_struct.c
index ca7c967ff2..764f616a89 100644
--- a/m_struct.c
+++ b/m_struct.c
@@ -67,8 +67,9 @@ m_struct_alloc(const m_struct_t* st) {
return r;
}
-int
-m_struct_set(const m_struct_t* st, void* obj, const char* field, const char* param) {
+int m_struct_set(const m_struct_t *st, void *obj, const char *field,
+ struct bstr param)
+{
const m_option_t* f = m_struct_get_field(st,field);
if(!f) {
@@ -77,9 +78,9 @@ m_struct_set(const m_struct_t* st, void* obj, const char* field, const char* par
return 0;
}
- if(f->type->parse(f, field, param, false, M_ST_MB_P(obj,f->p)) < 0) {
- mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Struct %s, field %s parsing error: %s\n",
- st->name,field,param);
+ if(f->type->parse(f, bstr(field), param, false, M_ST_MB_P(obj,f->p)) < 0) {
+ mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Struct %s, field %s parsing error: %.*s\n",
+ st->name, field, BSTR_P(param));
return 0;
}