#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
break; // error
for(i=0; isdigit(buffer[i])||isspace(buffer[i])||buffer[i]=='-'; i++)
; // find begin of URL
- url = "";
+ url = wxT("");
while(buffer[i] && ! isspace(buffer[i]) && buffer[i] !=
WXEXTHELP_COMMENTCHAR)
- url << buffer[i++];
+ url << (wxChar) buffer[i++];
while(buffer[i] && buffer[i] != WXEXTHELP_COMMENTCHAR)
i++;
- doc = "";
+ doc = wxT("");
if(buffer[i])
- doc = (buffer + i + 1); // skip the comment character
+ doc = wxString::FromAscii( (buffer + i + 1) ); // skip the comment character
m_MapList->Append(new wxExtHelpMapEntry(id,url,doc));
m_NumOfEntries++;
}
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)
{
// choices[idx] = (**i).doc.Contains((**i).doc.Before(WXEXTHELP_COMMENTCHAR));
//if(choices[idx].IsEmpty()) // didn't contain the ';'
// choices[idx] = (**i).doc;
- choices[idx] = "";
+ choices[idx] = wxT("");
for(j=0;entry->doc.c_str()[j]
&& entry->doc.c_str()[j] != WXEXTHELP_COMMENTCHAR; j++)
choices[idx] << entry->doc.c_str()[j];
node = node->Next();
}
}
-
+
if(idx == 1)
rc = DisplayHelp(urls[0]);
else if(idx == 0)