From 650b561edadfb59f555a337a87578f3fd243ff6b Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Sun, 1 Aug 2004 23:30:06 +0000 Subject: [PATCH] Create a correct footer git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@334982 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ape/apetag.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/ape/apetag.cpp b/ape/apetag.cpp index d1904a24..db936e2f 100644 --- a/ape/apetag.cpp +++ b/ape/apetag.cpp @@ -155,6 +155,7 @@ ByteVector APE::Tag::render() const d->footer.setItemCount(itemCount); d->footer.setTagSize(data.size()+Footer::size()); + d->footer.setHeaderPresent(true); return d->footer.renderHeader() + data + d->footer.renderFooter(); } @@ -276,9 +277,8 @@ void APE::Tag::addValue(const String &key, const String &value, bool replace) if(replace) removeItem(key); if(!value.isEmpty()) { - Map::Iterator it = d->itemListMap.find(key.upper()); - if(it != d->itemListMap.end()) - d->itemListMap[key].value.append(value); + if(d->itemListMap.contains(key) || !replace) + d->itemListMap[key.upper()].value.append(value); else setItem(key, Item(value)); } @@ -286,7 +286,7 @@ void APE::Tag::addValue(const String &key, const String &value, bool replace) void APE::Tag::setItem(const String &key, const Item &item) { - d->itemListMap.insert(key, item); + d->itemListMap.insert(key.upper(), item); } //////////////////////////////////////////////////////////////////////////////// @@ -317,15 +317,14 @@ void APE::Tag::parse(const ByteVector &data, uint count) uint valueLength = data.mid(pos + 0, 4).toUInt(false); uint flags = data.mid(pos + 4, 4).toUInt(false); String key = String(data.mid(pos + 8), String::UTF8); - key = key.upper(); APE::Item item; if(flags < 4 ) { ByteVector val = data.mid(pos + 8 + key.size() + 1, valueLength); - d->itemListMap.insert(key, Item(parseAPEString(val))); + d->itemListMap.insert(key.upper(), Item(parseAPEString(val))); } else - d->binaries.insert(key, data.mid(pos, 8 + key.size() + 1 + valueLength)); + d->binaries.insert(key.upper(), data.mid(pos, 8 + key.size() + 1 + valueLength)); pos += 8 + key.size() + 1 + valueLength; count--;