#include <stdio.h>
#include <ctype.h>
+#ifndef __MWERKS__
#include <sys/stat.h>
+#endif
-#ifndef __WINDOWS__
+#if !defined(__WINDOWS__) && !defined(__OS2__)
#include <unistd.h>
#endif
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+/// Name for map file.
+#define WXEXTHELP_MAPFILE _T("wxhelp.map")
+/// Maximum line length in map file.
+#define WXEXTHELP_BUFLEN 512
+/// Character introducing comments/documentation field in map file.
+#define WXEXTHELP_COMMENTCHAR ';'
+
#define CONTENTS_ID 0
class wxExtHelpMapEntry : public wxObject
wxChar* f = wxGetWorkingDirectory();
file = f;
delete[] f; // wxGetWorkingDirectory returns new memory
+#ifdef __WXMAC__
+ file << ifile;
+#else
file << WXEXTHELP_SEPARATOR << ifile;
+#endif
}
else
file = ifile;
{
newfile = WXEXTHELP_SEPARATOR;
const wxChar *cptr = wxGetLocale()->GetName().c_str();
- while(*cptr && *cptr != _T('_'))
+ while(*cptr && *cptr != wxT('_'))
newfile << *(cptr++);
if(wxDirExists(newfile))
file = newfile;
m_MapList = new wxList;
m_NumOfEntries = 0;
- FILE *input = fopen(mapFile.fn_str(),"rt");
+ FILE *input = wxFopen(mapFile,wxT("rt"));
if(! input)
return FALSE;
do
bool rc = FALSE;
wxString file;
file << m_MapFile << WXEXTHELP_SEPARATOR << contents;
- if(file.Contains(_T('#')))
- file = file.BeforeLast(_T('#'));
+ 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(_T(""));
+ return rc ? TRUE : KeywordSearch(wxT(""));
}
bool
return FALSE;
}
+bool wxHTMLHelpControllerBase::DisplaySection(const wxString& section)
+{
+ bool isFilename = (section.Find(wxT(".htm")) != -1);
+
+ if (isFilename)
+ return DisplayHelp(section);
+ else
+ return KeywordSearch(section);
+}
+
bool
wxHTMLHelpControllerBase::DisplayBlock(long blockNo)
{
node = node->Next();
}
}
-
+
if(idx == 1)
rc = DisplayHelp(urls[0]);
else if(idx == 0)