diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-01-05 17:49:52 +0100 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-01-05 17:51:45 +0100 |
commit | 0cfcbe2bf6531b70c7213dbb4893d6333b61e7ed (patch) | |
tree | 90f2d36a60ee1d9486264b682b25396a50a155d6 /playlist.c | |
parent | a66c46305373f8e66655777298051a506b2e8cf0 (diff) |
invalid cuesheet lines are replaced with placeholders; added shift-jis recoding to cuesheet parser
Diffstat (limited to 'playlist.c')
-rw-r--r-- | playlist.c | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -883,9 +883,21 @@ pl_get_qvalue_from_cue (const uint8_t *p, int sz, char *out) { } // recode int l = strlen (str); - char in[l+1]; - memcpy (in, str, l+1); - junk_recode (in, l, str, sz, charset); + char recbuf[l*10]; + int res = junk_recode (str, l, recbuf, sizeof (recbuf)-1, charset); + if (res > 0) { + strcpy (str, recbuf); + } + else + { + res = junk_recode (str, l, recbuf, sizeof (recbuf)-1, "SHIFT-JIS"); + if (res > 0) { + strcpy (str, recbuf); + } + else { + strcpy (str, "<UNRECOGNIZED CHARSET>"); + } + } } static void |