diff options
Diffstat (limited to 'kinit/autostart.cpp')
-rw-r--r-- | kinit/autostart.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/kinit/autostart.cpp b/kinit/autostart.cpp index 488003948..c7feb1752 100644 --- a/kinit/autostart.cpp +++ b/kinit/autostart.cpp @@ -214,6 +214,32 @@ AutoStart::loadAutoStartList() } m_startList->append(item); } + + // Check for duplicate entries and remove if found + TQPtrListIterator<AutoStartItem> it1(*m_startList); + TQPtrListIterator<AutoStartItem> it2(*m_startList); + AutoStartItem *item1; + AutoStartItem *item2; + while ((item1 = it1.current()) != 0) { + bool dupfound1 = false; + it2.toFirst(); + while ((item2 = it2.current()) != 0) { + bool dupfound2 = false; + if (item2 != item1) { + if (item1->service == item2->service) { + m_startList->removeRef(item2); + dupfound1 = true; + dupfound2 = true; + } + } + if (!dupfound2) { + ++it2; + } + } + if (!dupfound1) { + ++it1; + } + } } TQString @@ -241,7 +267,7 @@ AutoStart::startService() } m_started.remove(m_started.begin()); } - + // Check for items that don't depend on anything AutoStartItem *item; for(item = m_startList->first(); |