]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/helpdata.cpp
Add wxBitmap(NSImage*) ctor to wxOSX.
[wxWidgets.git] / src / html / helpdata.cpp
index 5155113810448f1a76d08d535dbe7adbc1089e7f..e4ef62a1d5a264a9e3d09deca48d302b7e5b81ba 100644 (file)
@@ -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;
@@ -714,9 +720,9 @@ wxString wxHtmlHelpData::FindPageByName(const wxString& x)
             break;
         }
     }
-    
+
     int cnt = m_bookRecords.GetCount();
-    
+
     if (!has_non_ascii)
     {
       wxFileSystem fsys;