diff options
author | Clément Bœsch <ubitux@gmail.com> | 2011-02-18 15:32:40 +0100 |
---|---|---|
committer | Uoti Urpala <uau@mplayer2.org> | 2011-04-20 04:22:42 +0300 |
commit | 59fff90d94e01ae7cf5c3ff3a274020f4d4b2785 (patch) | |
tree | a6f161866ae6918c4d2a2aebd9327716f3b53ea2 /sub/vobsub.c | |
parent | 2a7c5a1365ad194a42e3f667f85828a152544857 (diff) | |
download | mpv-59fff90d94e01ae7cf5c3ff3a274020f4d4b2785.tar.bz2 mpv-59fff90d94e01ae7cf5c3ff3a274020f4d4b2785.tar.xz |
options: change -alang and -slang to use string list type
There is no reason to use manual language list splitting when an
automatic split function is already available.
Some types change from "unsigned char" to "char", but this shouldn't
cause issues since [as]lang settings are unlikely to have characters
above 127.
Diffstat (limited to 'sub/vobsub.c')
-rw-r--r-- | sub/vobsub.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sub/vobsub.c b/sub/vobsub.c index 08efa3acec..a2fc94fb17 100644 --- a/sub/vobsub.c +++ b/sub/vobsub.c @@ -1109,20 +1109,22 @@ int vobsub_get_index_by_id(void *vobhandle, int id) return j; } -int vobsub_set_from_lang(void *vobhandle, unsigned char * lang) +int vobsub_set_from_lang(void *vobhandle, char **lang) { int i; vobsub_t *vob= vobhandle; - while (lang && strlen(lang) >= 2) { + if (!lang) + goto end; + for (int n = 0; lang[n]; n++) { for (i = 0; i < vob->spu_streams_size; i++) if (vob->spu_streams[i].id) - if ((strncmp(vob->spu_streams[i].id, lang, 2) == 0)) { + if ((strncmp(vob->spu_streams[i].id, lang[n], 2) == 0)) { vobsub_id = i; mp_msg(MSGT_VOBSUB, MSGL_INFO, "Selected VOBSUB language: %d language: %s\n", i, vob->spu_streams[i].id); return 0; } - lang+=2;while (lang[0]==',' || lang[0]==' ') ++lang; } +end: mp_msg(MSGT_VOBSUB, MSGL_WARN, "No matching VOBSUB language found!\n"); return -1; } |