- // use ID 0 for contents
- if(! DisplaySection(0))
- return KeywordSearch("");
- else
- return TRUE;
+ wxString contents;
+ wxNode *node = m_MapList->First();
+ wxExtHelpMapEntry *entry;
+ while(node)
+ {
+ entry = (wxExtHelpMapEntry *)node->Data();
+ if(entry->id == CONTENTS_ID)
+ {
+ contents = entry->url;
+ break;
+ }
+ node = node->Next();
+ }
+
+ bool rc = FALSE;
+ wxString file;
+ file << m_MapFile << WXEXTHELP_SEPARATOR << contents;
+ if(file.Contains(wxT('#')))
+ file = file.BeforeLast(wxT('#'));
+ if(contents.Length() && wxFileExists(file))
+ rc = DisplaySection(CONTENTS_ID);
+
+ // if not found, open homemade toc:
+ return rc ? TRUE : KeywordSearch(wxT(""));