From 9508850d788d905b21cd2622b22cb76e80cf34ca Mon Sep 17 00:00:00 2001 From: Dieter Hametner Date: Sun, 7 Jan 2007 18:42:42 +0000 Subject: fix bug of missing subdirs when recording with same name exists on output --- recordings.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'recordings.cpp') diff --git a/recordings.cpp b/recordings.cpp index ad5a815..8c80537 100644 --- a/recordings.cpp +++ b/recordings.cpp @@ -69,8 +69,13 @@ namespace vdrlive { RecordingsItemPtr recItem = m_root; for (vector< string >::const_iterator i = path.begin(); i != path.end(); ++i) { - Map::iterator iter = recItem->m_entries.find(*i); - recItem = iter->second; + pair< Map::iterator, Map::iterator> range = recItem->m_entries.equal_range(*i); + for (Map::iterator iter = range.first; iter != range.second; ++iter) { + if (iter->second->IsDir()) { + recItem = iter->second; + break; + } + } } return recItem->m_entries.begin(); } @@ -84,8 +89,13 @@ namespace vdrlive { RecordingsItemPtr recItem = m_root; for (vector< string >::const_iterator i = path.begin(); i != path.end(); ++i) { - Map::iterator iter = recItem->m_entries.find(*i); - recItem = iter->second; + pair< Map::iterator, Map::iterator> range = recItem->m_entries.equal_range(*i); + for (Map::iterator iter = range.first; iter != range.second; ++iter) { + if (iter->second->IsDir()) { + recItem = iter->second; + break; + } + } } return recItem->m_entries.end(); } -- cgit v1.2.3