]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/chm.cpp
fixing RTTI
[wxWidgets.git] / src / html / chm.cpp
index 6eb0e21dac1b5dc601b6514db8dda8efa50a4f4d..3d6ad7d60ce4a764414ed96b2f00870898bea81d 100644 (file)
@@ -619,8 +619,11 @@ wxChmInputStream::CreateHHPStream()
             switch (code)
             {
                 case 0: // CONTENTS_FILE
-                    tmp = "Contents file=";
-                    hhc=true;
+                    if (len)
+                    {
+                        tmp = "Contents file=";
+                        hhc=true;
+                    }
                     break;
                 case 1: // INDEX_FILE
                     tmp = "Index file=";
@@ -649,9 +652,10 @@ wxChmInputStream::CreateHHPStream()
                         // LCID at position 0
                         wxUint32 dummy = *((wxUint32 *)(structptr+0)) ;
                         wxUint32 lcid = wxUINT32_SWAP_ON_BE( dummy ) ;
-                        wxString msg ;
-                        msg.Printf(wxT("Language=0x%X\r\n"),lcid) ;
-                        out->Write(msg.c_str() , msg.length() ) ;
+                        char msg[64];
+                        int len = sprintf(msg, "Language=0x%X\r\n", lcid) ;
+                        if (len > 0)
+                            out->Write(msg, len) ;
                     }
                     break ;
                 default:
@@ -838,6 +842,8 @@ wxFSFile* wxChmFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs),
     }
 
     wxFileName leftFilename = wxFileSystem::URLToFileName(left);
+    if (!leftFilename.FileExists())
+        return NULL;
 
     // Open a stream to read the content of the chm-file
     s = new wxChmInputStream(leftFilename.GetFullPath(), right, true);
@@ -848,7 +854,7 @@ wxFSFile* wxChmFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs),
                             left + wxT("#chm:") + right,
                             wxEmptyString,
                             GetAnchor(location),
-                            wxDateTime(wxFileModificationTime(left)));
+                            wxDateTime(leftFilename.GetModificationTime()));
     }
 
     delete s;