commit e9f29cfb2a76657f150ec585fa6775f372d7e460 Author: Timothy Pearson Date: 1343238048 -0500 Prevent XDG autostart files from starting multiple times This resolves Bug 1096 diff --git a/kinit/autostart.cpp b/kinit/autostart.cpp index 4880039..c7feb17 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 it1(*m_startList); + TQPtrListIterator 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();