From 984278b10ac4fd3d124a8110c0d61b01c16bf0b1 Mon Sep 17 00:00:00 2001 From: Miika Pekkarinen Date: Sat, 19 Apr 2008 23:48:13 +0000 Subject: FS#8795 - Fixed fault of the escape processing in Changelog (by Kenjiro Arai). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17178 a1c6a512-1295-4272-9138-f99709370657 --- apps/tagcache.c | 14 +++++--------- docs/CREDITS | 1 + 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/apps/tagcache.c b/apps/tagcache.c index f800c5646b..5ba955f6ce 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c @@ -3157,17 +3157,13 @@ static bool write_tag(int fd, const char *tagstr, const char *datastr) int i; snprintf(buf, sizeof buf, "%s=\"", tagstr); - for (i = strlen(buf); i < (long)sizeof(buf)-3; i++) + for (i = strlen(buf); i < (long)sizeof(buf)-4; i++) { if (*datastr == '\0') break; - if (*datastr == '"') - { - buf[i] = '\\'; - datastr++; - continue; - } + if (*datastr == '"' || *datastr == '\\') + buf[i++] = '\\'; buf[i] = *(datastr++); } @@ -3222,9 +3218,9 @@ static bool read_tag(char *dest, long size, if (*src == '\0') break; - if (*src == '\\' && *(src+1) == '"') + if (*src == '\\') { - dest[pos] = '"'; + dest[pos] = *(src+1); src += 2; continue; } diff --git a/docs/CREDITS b/docs/CREDITS index 279abc087d..6118857b2e 100644 --- a/docs/CREDITS +++ b/docs/CREDITS @@ -386,6 +386,7 @@ Christopher Williams Martin Ritter Justin Hannigan Tomasz Wasilczyk +Kenjiro Arai The libmad team -- cgit v1.2.3