#if wxUSE_HTML && wxUSE_STREAMS
-#ifndef WXPRECOMP
+#ifndef WX_PRECOMP
#include "wx/intl.h"
#include "wx/log.h"
#endif
wxChar *endptr = buf + bufsize - 1;
const wxChar *readptr = line;
- while (*readptr != 0 && *readptr != _T('\r') && *readptr != _T('\n') &&
+ while (*readptr != 0 && *readptr != wxT('\r') && *readptr != wxT('\n') &&
writeptr != endptr)
*(writeptr++) = *(readptr++);
*writeptr = 0;
- while (*readptr == _T('\r') || *readptr == _T('\n'))
+ while (*readptr == wxT('\r') || *readptr == wxT('\n'))
readptr++;
if (*readptr == 0)
return NULL;
wxObject* GetProduct() { return NULL; }
protected:
- virtual void AddText(const wxChar* WXUNUSED(txt)) {}
+ virtual void AddText(const wxString& WXUNUSED(txt)) {}
- DECLARE_NO_COPY_CLASS(HP_Parser)
+ wxDECLARE_NO_COPY_CLASS(HP_Parser);
};
m_parentItem = NULL;
}
- DECLARE_NO_COPY_CLASS(HP_TagHandler)
+ wxDECLARE_NO_COPY_CLASS(HP_TagHandler);
};
{
wxString s;
for (int i = 1; i < level; i++)
- s << _T(" ");
+ s << wxT(" ");
s << name;
return s;
}
wxHtmlHelpData::wxHtmlHelpData()
{
-#if WXWIN_COMPATIBILITY_2_4
- m_cacheContents = NULL;
- m_cacheIndex = NULL;
-#endif
}
wxHtmlHelpData::~wxHtmlHelpData()
{
-#if WXWIN_COMPATIBILITY_2_4
- CleanCompatibilityData();
-#endif
}
bool wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys,
HP_TagHandler *handler = new HP_TagHandler(book);
parser.AddTagHandler(handler);
- f = ( contentsfile.empty() ? (wxFSFile*) NULL : fsys.OpenFile(contentsfile) );
+ f = ( contentsfile.empty() ? NULL : fsys.OpenFile(contentsfile) );
if (f)
{
buf.clear();
wxLogError(_("Cannot open contents file: %s"), contentsfile.c_str());
}
- f = ( indexfile.empty() ? (wxFSFile*) NULL : fsys.OpenFile(indexfile) );
+ f = ( indexfile.empty() ? NULL : fsys.OpenFile(indexfile) );
if (f)
{
buf.clear();
else
{
if (wxIsAbsolutePath(path)) m_tempPath = path;
- else m_tempPath = wxGetCwd() + _T("/") + path;
+ else m_tempPath = wxGetCwd() + wxT("/") + path;
- if (m_tempPath[m_tempPath.length() - 1] != _T('/'))
- m_tempPath << _T('/');
+ if (m_tempPath[m_tempPath.length() - 1] != wxT('/'))
+ m_tempPath << wxT('/');
}
}
for (wxChar *ch = linebuf; *ch != wxT('\0') && *ch != wxT('='); ch++)
*ch = (wxChar)wxTolower(*ch);
- if (wxStrstr(linebuf, _T("title=")) == linebuf)
- title = linebuf + wxStrlen(_T("title="));
- if (wxStrstr(linebuf, _T("default topic=")) == linebuf)
- start = linebuf + wxStrlen(_T("default topic="));
- if (wxStrstr(linebuf, _T("index file=")) == linebuf)
- index = linebuf + wxStrlen(_T("index file="));
- if (wxStrstr(linebuf, _T("contents file=")) == linebuf)
- contents = linebuf + wxStrlen(_T("contents file="));
- if (wxStrstr(linebuf, _T("charset=")) == linebuf)
- charset = linebuf + wxStrlen(_T("charset="));
+ if (wxStrstr(linebuf, wxT("title=")) == linebuf)
+ title = linebuf + wxStrlen(wxT("title="));
+ if (wxStrstr(linebuf, wxT("default topic=")) == linebuf)
+ start = linebuf + wxStrlen(wxT("default topic="));
+ if (wxStrstr(linebuf, wxT("index file=")) == linebuf)
+ index = linebuf + wxStrlen(wxT("index file="));
+ if (wxStrstr(linebuf, wxT("contents file=")) == linebuf)
+ contents = linebuf + wxStrlen(wxT("contents file="));
+ if (wxStrstr(linebuf, wxT("charset=")) == linebuf)
+ charset = linebuf + wxStrlen(wxT("charset="));
} while (lineptr != NULL);
wxFontEncoding enc = wxFONTENCODING_SYSTEM;
title, contents, index, start, fsys.GetPath());
delete fi;
-#if WXWIN_COMPATIBILITY_2_4
- CleanCompatibilityData();
-#endif
-
return rtval;
}
wxString wxHtmlHelpData::FindPageByName(const wxString& x)
{
- int cnt;
int i;
- wxFileSystem fsys;
- wxFSFile *f;
- // 1. try to open given file:
- cnt = m_bookRecords.GetCount();
- for (i = 0; i < cnt; i++)
+ bool has_non_ascii = false;
+ wxString::const_iterator it;
+ for (it = x.begin(); it != x.end(); ++it)
{
+ wxUniChar ch = *it;
+ if (!ch.IsAscii())
+ {
+ has_non_ascii = true;
+ break;
+ }
+ }
+
+ int cnt = m_bookRecords.GetCount();
+
+ if (!has_non_ascii)
+ {
+ wxFileSystem fsys;
+ wxFSFile *f;
+ // 1. try to open given file:
+ for (i = 0; i < cnt; i++)
+ {
f = fsys.OpenFile(m_bookRecords[i].GetFullPath(x));
if (f)
{
delete f;
return url;
}
+ }
}
return wxEmptyString;
}
-#if WXWIN_COMPATIBILITY_2_4
-wxHtmlContentsItem::wxHtmlContentsItem()
- : m_Level(0), m_ID(wxID_ANY), m_Name(NULL), m_Page(NULL), m_Book(NULL),
- m_autofree(false)
-{
-}
-
-wxHtmlContentsItem::wxHtmlContentsItem(const wxHtmlHelpDataItem& d)
-{
- m_autofree = true;
- m_Level = d.level;
- m_ID = d.id;
- m_Name = wxStrdup(d.name.c_str());
- m_Page = wxStrdup(d.page.c_str());
- m_Book = d.book;
-}
-
-wxHtmlContentsItem& wxHtmlContentsItem::operator=(const wxHtmlContentsItem& d)
-{
- if (m_autofree)
- {
- free(m_Name);
- free(m_Page);
- }
- m_autofree = true;
- m_Level = d.m_Level;
- m_ID = d.m_ID;
- m_Name = d.m_Name ? wxStrdup(d.m_Name) : NULL;
- m_Page = d.m_Page ? wxStrdup(d.m_Page) : NULL;
- m_Book = d.m_Book;
- return *this;
-}
-
-wxHtmlContentsItem::~wxHtmlContentsItem()
-{
- if (m_autofree)
- {
- free(m_Name);
- free(m_Page);
- }
-}
-
-wxHtmlContentsItem* wxHtmlHelpData::GetContents()
-{
- if (!m_cacheContents && !m_contents.empty())
- {
- size_t len = m_contents.size();
- m_cacheContents = new wxHtmlContentsItem[len];
- for (size_t i = 0; i < len; i++)
- m_cacheContents[i] = m_contents[i];
- }
- return m_cacheContents;
-}
-
-int wxHtmlHelpData::GetContentsCnt()
-{
- return m_contents.size();
-}
-
-wxHtmlContentsItem* wxHtmlHelpData::GetIndex()
-{
- if (!m_cacheContents && !m_index.empty())
- {
- size_t len = m_index.size();
- m_cacheContents = new wxHtmlContentsItem[len];
- for (size_t i = 0; i < len; i++)
- m_cacheContents[i] = m_index[i];
- }
- return m_cacheContents;
-}
-
-int wxHtmlHelpData::GetIndexCnt()
-{
- return m_index.size();
-}
-
-void wxHtmlHelpData::CleanCompatibilityData()
-{
- delete[] m_cacheContents;
- m_cacheContents = NULL;
- delete[] m_cacheIndex;
- m_cacheIndex = NULL;
-}
-#endif // WXWIN_COMPATIBILITY_2_4
//----------------------------------------------------------------------------------
// wxHtmlSearchStatus functions
m_Active = (m_CurIndex < m_MaxIndex);
}
-#if WXWIN_COMPATIBILITY_2_4
-wxHtmlContentsItem* wxHtmlSearchStatus::GetContentsItem()
-{
- static wxHtmlContentsItem it;
- it = wxHtmlContentsItem(*m_CurItem);
- return ⁢
-}
-#endif
-
bool wxHtmlSearchStatus::Search()
{
wxFSFile *file;
{
const wxChar *p1, *p2;
for (p1 = thepage.c_str(), p2 = m_LastPage.c_str();
- *p1 != 0 && *p1 != _T('#') && *p1 == *p2; p1++, p2++) {}
+ *p1 != 0 && *p1 != wxT('#') && *p1 == *p2; p1++, p2++) {}
m_LastPage = thepage;
- if (*p1 == 0 || *p1 == _T('#'))
+ if (*p1 == 0 || *p1 == wxT('#'))
return false;
}
else m_LastPage = thepage;
static inline bool WHITESPACE(wxChar c)
{
- return c == _T(' ') || c == _T('\n') || c == _T('\r') || c == _T('\t');
+ return c == wxT(' ') || c == wxT('\n') || c == wxT('\r') || c == wxT('\t');
}
// replace continuous spaces by one single space
{
continue;
}
- ch = _T(' ');
+ ch = wxT(' ');
space_counted = true;
}
else
wxChar c = *pBufStr;
if (insideTag)
{
- if (c == _T('>'))
+ if (c == wxT('>'))
{
insideTag = false;
// replace the tag by an empty space
- c = _T(' ');
+ c = wxT(' ');
}
else
continue;
}
- else if (c == _T('<'))
+ else if (c == wxT('<'))
{
wxChar nextCh = *(pBufStr + 1);
- if (nextCh == _T('/') || !WHITESPACE(nextCh))
+ if (nextCh == wxT('/') || !WHITESPACE(nextCh))
{
insideTag = true;
continue;
if (m_WholeWords)
{
// insert ' ' at the beginning and at the end
- keyword.insert( 0, _T(" ") );
- keyword.append( _T(" ") );
- bufStr.insert( 0, _T(" ") );
- bufStr.append( _T(" ") );
+ keyword.insert( 0, wxT(" ") );
+ keyword.append( wxT(" ") );
+ bufStr.insert( 0, wxT(" ") );
+ bufStr.append( wxT(" ") );
}
// remove continuous spaces