From 0cfcbe2bf6531b70c7213dbb4893d6333b61e7ed Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Sun, 5 Jan 2014 17:49:52 +0100 Subject: invalid cuesheet lines are replaced with placeholders; added shift-jis recoding to cuesheet parser --- playlist.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'playlist.c') diff --git a/playlist.c b/playlist.c index 983f49f6..c3566c1e 100644 --- a/playlist.c +++ b/playlist.c @@ -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, ""); + } + } } static void -- cgit v1.2.3