X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03647350fc7cd141953c72e0284e928847d30f44..dddda0eb8842f15f4b5ae363b51d5395b9ad08ad:/src/html/helpdata.cpp diff --git a/src/html/helpdata.cpp b/src/html/helpdata.cpp index 63b2988e61..e4ef62a1d5 100644 --- a/src/html/helpdata.cpp +++ b/src/html/helpdata.cpp @@ -475,11 +475,10 @@ void wxHtmlHelpData::SetTempDir(const wxString& path) m_tempPath = path; else { - if (wxIsAbsolutePath(path)) m_tempPath = path; - else m_tempPath = wxGetCwd() + wxT("/") + path; + wxFileName fn(path); + fn.MakeAbsolute(); - if (m_tempPath[m_tempPath.length() - 1] != wxT('/')) - m_tempPath << wxT('/'); + m_tempPath = fn.GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR); } } @@ -569,7 +568,6 @@ bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile, // Now store the contents range bookr->SetContentsRange(cont_start, m_contents.size()); -#if wxUSE_WCHAR_T // MS HTML Help files [written by MS HTML Help Workshop] are broken // in that the data are iso-8859-1 (including HTML entities), but must // be interpreted as being in language's windows charset. Correct the @@ -597,11 +595,6 @@ bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile, } #undef CORRECT_STR } -#else - wxUnusedVar(IndexOld); - wxUnusedVar(ContentsOld); - wxASSERT_MSG(encoding == wxFONTENCODING_SYSTEM, wxT("Help files need charset conversion, but wxUSE_WCHAR_T is 0")); -#endif // wxUSE_WCHAR_T/!wxUSE_WCHAR_T m_bookRecords.Add(bookr); if (!m_index.empty()) @@ -692,6 +685,19 @@ bool wxHtmlHelpData::AddBook(const wxString& book) 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;