X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/30984deafc05d7c6f88db736336fe73d23a08e19..b9d880d6382e24156cdce4ae0390c843cc6208d9:/src/html/chm.cpp diff --git a/src/html/chm.cpp b/src/html/chm.cpp index b7dc1ee4f5..1a58175c2d 100644 --- a/src/html/chm.cpp +++ b/src/html/chm.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: chm.cpp +// Name: src/html/chm.cpp // Purpose: CHM (Help) support for wxHTML // Author: Markus Sinner // Copyright: (c) 2003 Herd Software Development @@ -10,7 +10,7 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #if wxUSE_LIBMSPACK @@ -18,11 +18,11 @@ #include #ifndef WXPRECOMP -#include "wx/intl.h" -#include "wx/log.h" + #include "wx/intl.h" + #include "wx/log.h" + #include "wx/module.h" #endif -#include "wx/module.h" #include "wx/filesys.h" #include "wx/mstream.h" #include "wx/wfstream.h" @@ -70,7 +70,7 @@ public: /// check archive for a file bool Contains(const wxString& pattern); - /// get a string for the last error occured + /// get a string for the last error which occurred const wxString GetLastErrorMessage(); /// Last Error @@ -364,7 +364,7 @@ public: wxChmInputStream(const wxString& archive, const wxString& file, bool simulate = false); /// Destructor - ~wxChmInputStream(); + virtual ~wxChmInputStream(); /// Return the size of the accessed file in archive virtual size_t GetSize() const { return m_size; } @@ -595,7 +595,9 @@ wxChmInputStream::CreateHHPStream() { // Read #SYSTEM-Code and length i->Read(&code, 2); + code = wxUINT16_SWAP_ON_BE( code ) ; i->Read(&len, 2); + len = wxUINT16_SWAP_ON_BE( len ) ; // data buf = malloc(len); i->Read(buf, len); @@ -625,7 +627,19 @@ wxChmInputStream::CreateHHPStream() out->Write( (const void *) tmp, strlen(tmp)); tmp = NULL; break; - case 4: // STRUCT + case 4: // STRUCT SYSTEM INFO + tmp = NULL ; + if ( len >= 28 ) + { + char *structptr = (char*) buf ; + // LCID at position 0 + wxUint32 dummy = *((wxUint32 *)(structptr+0)) ; + wxUint32 lcid = wxUINT32_SWAP_ON_BE( dummy ) ; + wxString msg ; + msg.Printf(_T("Language=0x%X\r\n"),lcid) ; + out->Write(msg.c_str() , msg.length() ) ; + } + break ; default: tmp=NULL; } @@ -729,15 +743,15 @@ class wxChmFSHandler : public wxFileSystemHandler public: /// Constructor and Destructor wxChmFSHandler(); - ~wxChmFSHandler(); + virtual ~wxChmFSHandler(); /// Is able to open location? virtual bool CanOpen(const wxString& location); /// Open a file virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location); - /// Find first occurence of spec + /// Find first occurrence of spec virtual wxString FindFirst(const wxString& spec, int flags = 0); - /// Find next occurence of spec + /// Find next occurrence of spec virtual wxString FindNext(); private: