diff options
author | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-01-07 00:06:27 +0000 |
---|---|---|
committer | Dieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de> | 2007-01-07 00:06:27 +0000 |
commit | 59a03b0f2fda5c81dbafdae285381740a22d3af3 (patch) | |
tree | db4ffd6d6339d53268fee8cfccee614e3280859b /recordings.cpp | |
parent | 0252d06339a3f834d86aab32845e613314e5e367 (diff) | |
download | vdr-plugin-live-59a03b0f2fda5c81dbafdae285381740a22d3af3.tar.gz vdr-plugin-live-59a03b0f2fda5c81dbafdae285381740a22d3af3.tar.bz2 |
Bugfix for same dir and recording name
Diffstat (limited to 'recordings.cpp')
-rw-r--r-- | recordings.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/recordings.cpp b/recordings.cpp index 9d6b219..0e0b365 100644 --- a/recordings.cpp +++ b/recordings.cpp @@ -25,11 +25,11 @@ namespace vdrlive { if (pos != string::npos) { string dirName(name.substr(index, pos - index)); index = pos + 1; - Map::iterator i = dir->m_entries.find(dirName); + Map::iterator i = findDir(dir, dirName); if (i == dir->m_entries.end()) { RecordingsItemPtr recPtr (new RecordingsItemDir(dirName, level)); dir->m_entries.insert(pair< string, RecordingsItemPtr > (dirName, recPtr)); - i = dir->m_entries.find(dirName); + i = findDir(dir, dirName); } dir = i->second; level++; @@ -77,6 +77,17 @@ namespace vdrlive { return recItem->m_entries.end(); } + RecordingsTree::Map::iterator RecordingsTree::findDir(RecordingsItemPtr& dir, const string& dirName) + { + pair< Map::iterator, Map::iterator > range = dir->m_entries.equal_range(dirName); + for (Map::iterator i = range.first; i != range.second; ++i) { + if (i->second->IsDir()) { + return i; + } + } + return dir->m_entries.end(); + } + RecordingsTree::RecordingsItem::RecordingsItem(const string& name) : m_name(name), m_entries() |