const wxString& indexfile, const wxString& deftopic,
const wxString& path)
{
+#if wxUSE_WCHAR_T
+ #if wxUSE_UNICODE
+ #define CORRECT_STR(str, conv) \
+ str = wxString((str).mb_str(wxConvISO8859_1), conv)
+ #else
+ #define CORRECT_STR(str, conv) \
+ str = wxString((str).wc_str(conv), wxConvLocal)
+ #endif
+#else
+ #define CORRECT_STR(str, conv)
+#endif
+
wxFileSystem fsys;
wxFSFile *fi;
wxHtmlBookRecord *bookr;
return true; // book is (was) loaded
}
- bookr = new wxHtmlBookRecord(bookfile.GetLocation(), fsys.GetPath(), title, deftopic);
+ wxString title1 = title;
+ if (encoding != wxFONTENCODING_SYSTEM)
+ {
+ wxCSConv conv(encoding);
+ CORRECT_STR(title1, conv);
+ if (title1.IsEmpty() && !title.IsEmpty())
+ title1 = title;
+ }
+
+ bookr = new wxHtmlBookRecord(bookfile.GetLocation(), fsys.GetPath(), title1, deftopic);
wxHtmlHelpDataItem *bookitem = new wxHtmlHelpDataItem;
bookitem->level = 0;
// differences here and also convert to wxConvLocal in ANSI build
if (encoding != wxFONTENCODING_SYSTEM)
{
- #if wxUSE_UNICODE
- #define CORRECT_STR(str, conv) \
- str = wxString((str).mb_str(wxConvISO8859_1), conv)
- #else
- #define CORRECT_STR(str, conv) \
- str = wxString((str).wc_str(conv), wxConvLocal)
- #endif
wxCSConv conv(encoding);
size_t IndexCnt = m_index.size();
size_t ContentsCnt = m_contents.size();
enc = wxFontMapper::Get()->CharsetToEncoding(charset);
#endif
- // No conversion was done on the title yet; at least
- // test for a common case.
- if (charset == wxT("utf-8") && !title.IsEmpty())
- {
- char *buf = new char[title.Length()+1];
- size_t i;
- for (i = 0; i < title.Length(); i++)
- buf[i] = (char) title[i];
- buf[i] = 0;
- title = wxString::FromUTF8(buf);
- delete[] buf;
- }
-
bool rtval = AddBookParam(*fi, enc,
title, contents, index, start, fsys.GetPath());
delete fi;