summaryrefslogtreecommitdiff
path: root/junklib.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-06-11 22:44:47 +0200
committerGravatar waker <wakeroid@gmail.com>2012-06-11 22:44:47 +0200
commit647d7db8a8b9f11fdcb15437a0b258f95d6f4cd2 (patch)
tree3540bca98d1b091225b992ca8cd386bdb4968a12 /junklib.c
parentdaeec56c588b0c39fc6db161ed727bd0e25a15ed (diff)
junklib: fixed apev2 parser to read multiline fields correctly
Diffstat (limited to 'junklib.c')
-rw-r--r--junklib.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/junklib.c b/junklib.c
index 60d87556..9989767f 100644
--- a/junklib.c
+++ b/junklib.c
@@ -1200,6 +1200,15 @@ junk_apev2_read_full_mem (playItem_t *it, DB_apev2_tag_t *tag_store, char *mem,
memcpy (value, mem, itemsize);
value[itemsize] = 0;
+ // replace 0s with \n
+ uint8_t *p = value;
+ while (p < value + itemsize - 1) {
+ if (*p == 0) {
+ *p = '\n';
+ }
+ p++;
+ }
+
junk_apev2_add_frame (it, tag_store, &tail, itemsize, itemflags, key, value);
free (value);
@@ -1305,6 +1314,15 @@ junk_apev2_read_full (playItem_t *it, DB_apev2_tag_t *tag_store, DB_FILE *fp) {
}
value[itemsize] = 0;
+ // replace 0s with \n
+ uint8_t *p = value;
+ while (p < value + itemsize - 1) {
+ if (*p == 0) {
+ *p = '\n';
+ }
+ p++;
+ }
+
junk_apev2_add_frame (it, tag_store, &tail, itemsize, itemflags, key, value);
free (value);
}