]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/m_pre.cpp
handle NULL BSTRs as empty ones per Microsoft convention
[wxWidgets.git] / src / html / m_pre.cpp
index f522512994122253a8bc1547f0e84f826cba0005..5afcbbc6b75964cb1c93a3aa2bac791647a3acaf 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        m_pre.cpp
+// Name:        src/html/m_pre.cpp
 // Purpose:     wxHtml module for <PRE> ... </PRE> tag (code citation)
 // Author:      Vaclav Slavik
 // RCS-ID:      $Id$
@@ -9,13 +9,13 @@
 
 #include "wx/wxprec.h"
 
-#include "wx/defs.h"
-#if wxUSE_HTML && wxUSE_STREAMS
 #ifdef __BORLANDC__
-#pragma hdrstop
+    #pragma hdrstop
 #endif
 
-#ifndef WXPRECOMP
+#if wxUSE_HTML && wxUSE_STREAMS
+
+#ifndef WX_PRECOMP
 #endif
 
 #include "wx/html/forcelnk.h"
@@ -35,7 +35,7 @@ static wxString LINKAGEMODE HtmlizeWhitespaces(const wxString& str)
     size_t linepos = 0;
     for (size_t i = 0; i < len; i++)
     {
-        switch (str[i])
+        switch ( str[i].GetValue() )
         {
             case wxT('<'):
                 while (i < len && str[i] != wxT('>'))
@@ -104,14 +104,8 @@ TAG_HANDLER_BEGIN(PRE, "PRE")
         c->SetAlignHor(wxHTML_ALIGN_LEFT);
         c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_TOP);
 
-        wxString srcMid =
-            m_WParser->GetSource()->Mid(tag.GetBeginPos(),
-                                        tag.GetEndPos1() - tag.GetBeginPos());
-        // It is safe to temporarily change the source being parsed,
-        // provided we restore the state back after parsing
-        m_Parser->SetSourceAndSaveState(HtmlizeWhitespaces(srcMid));
-        m_Parser->DoParsing();
-        m_Parser->RestoreState();
+        wxString srcMid = m_WParser->GetInnerSource(tag);
+        ParseInnerSource(HtmlizeWhitespaces(srcMid));
 
         m_WParser->CloseContainer();
         m_WParser->CloseContainer();