]> git.saurik.com Git - wxWidgets.git/commitdiff
more fixes to HTML entities parsing when loading .hhk and .hhc
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 27 Jun 2004 19:40:20 +0000 (19:40 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 27 Jun 2004 19:40:20 +0000 (19:40 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/html/helpdata.h
src/html/helpdata.cpp

index d8e8dab59f00b927efee86d6389c9e18396a25b6..28c73e4da753e91fea5648a84f32d38bccc5c22b 100644 (file)
@@ -172,15 +172,12 @@ public:
     // See documentation for details on its format.
     // Returns success.
     bool AddBook(const wxString& book);
-#if WXWIN_COMPATIBILITY_2_4
-    wxDEPRECATED(
     bool AddBookParam(const wxFSFile& bookfile,
                       wxFontEncoding encoding,
                       const wxString& title, const wxString& contfile,
                       const wxString& indexfile = wxEmptyString,
                       const wxString& deftopic = wxEmptyString,
-                      const wxString& path = wxEmptyString) );
-#endif
+                      const wxString& path = wxEmptyString);
 
     // Some accessing stuff:
 
@@ -206,13 +203,6 @@ protected:
     int m_IndexCnt;  // list of index items
 
 protected:
-    bool AddBookParam(const wxFSFile& bookfile,
-                      const wxString& charset,
-                      const wxString& title, const wxString& contfile,
-                      const wxString& indexfile = wxEmptyString,
-                      const wxString& deftopic = wxEmptyString,
-                      const wxString& path = wxEmptyString);
-    
     // Imports .hhp files (MS HTML Help Workshop)
     bool LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys,
                        const wxString& indexfile, const wxString& contentsfile);
index 00aba6ec32b7031d5a4aada0af5bc346fc84895c..1b89735338861003495bac6410ec00671f8071e2 100644 (file)
@@ -95,7 +95,10 @@ static T* ReallocArray(T *arr, size_t oldsize, size_t newsize)
 class HP_Parser : public wxHtmlParser
 {
 public:
-    HP_Parser() { }
+    HP_Parser()
+    {
+        GetEntitiesParser()->SetEncoding(wxFONTENCODING_ISO8859_1);
+    }
 
     wxObject* GetProduct() { return NULL; }
 
@@ -247,7 +250,9 @@ wxHtmlHelpData::~wxHtmlHelpData()
     delete[] m_Index;
 }
 
-bool wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys, const wxString& indexfile, const wxString& contentsfile)
+bool wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys,
+                                   const wxString& indexfile,
+                                   const wxString& contentsfile)
 {
     wxFSFile *f;
     wxHtmlFilterHTML filter;
@@ -444,28 +449,11 @@ static wxString SafeFileName(const wxString& s)
     return res;
 }
 
-#ifdef WXWIN_COMPATIBILITY_2_4
 bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
                                   wxFontEncoding encoding,
                                   const wxString& title, const wxString& contfile,
                                   const wxString& indexfile, const wxString& deftopic,
                                   const wxString& path)
-{
-    wxString charset;
-#if wxUSE_FONTMAP
-    if (encoding != wxFONTENCODING_SYSTEM)
-        charset = wxFontMapper::Get()->GetEncodingName(encoding);
-#endif
-    return AddBookParam(bookfile, charset, title, contfile, indexfile,
-                        deftopic, path);
-}
-#endif // WXWIN_COMPATIBILITY_2_4
-
-bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
-                                  const wxString& charset,
-                                  const wxString& title, const wxString& contfile,
-                                  const wxString& indexfile, const wxString& deftopic,
-                                  const wxString& path)
 {
     wxFileSystem fsys;
     wxFSFile *fi;
@@ -540,7 +528,7 @@ bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
     // in that the data are iso-8859-1 (including HTML entities), but must
     // be interpreted as being in language's windows charset. Correct the
     // differences here and also convert to wxConvLocal in ANSI build
-    if (!charset.empty())
+    if (encoding != wxFONTENCODING_SYSTEM)
     {
         #if wxUSE_UNICODE
             #define CORRECT_STR(str, conv) \
@@ -549,7 +537,7 @@ bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
             #define CORRECT_STR(str, conv) \
                 str = wxString((str).wc_str(conv), wxConvLocal)
         #endif
-        wxCSConv conv(charset);
+        wxCSConv conv(encoding);
         int i;
         for (i = IndexOld; i < m_IndexCnt; i++)
         {
@@ -564,7 +552,7 @@ bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
 #else
     wxUnusedVar(IndexOld);
     wxUnusedVar(ContentsOld);
-    wxASSERT_MSG(charset.empty(), wxT("Help files need charset conversion, but wxUSE_WCHAR_T is 0"));
+    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);
@@ -647,8 +635,12 @@ bool wxHtmlHelpData::AddBook(const wxString& book)
         if (wxStrstr(linebuf, _T("charset=")) == linebuf)
             charset = linebuf + wxStrlen(_T("charset="));
     } while (lineptr != NULL);
+        
+    wxFontEncoding enc;
+    if (charset == wxEmptyString) enc = wxFONTENCODING_SYSTEM;
+    else enc = wxFontMapper::Get()->CharsetToEncoding(charset);
 
-    bool rtval = AddBookParam(*fi, charset,
+    bool rtval = AddBookParam(*fi, enc,
                               title, contents, index, start, fsys.GetPath());
     delete fi;
     return rtval;