]> git.saurik.com Git - wxWidgets.git/commitdiff
RC parse fixes from Michael Shamgar
authorJulian Smart <julian@anthemion.co.uk>
Mon, 15 Nov 2004 17:11:37 +0000 (17:11 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 15 Nov 2004 17:11:37 +0000 (17:11 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/utils/convertrc/rc2xml.cpp

index ca5adde3c481f138cb6106d294ff7d01b5e89bd5..7cd81a8a682ec903be4982eb10746495a546f1c6 100644 (file)
@@ -438,17 +438,35 @@ wxString rc2xml::GetQuoteField()
     wxString phrase;
     //ASCII code 34 "
     int ch=0;
     wxString phrase;
     //ASCII code 34 "
     int ch=0;
+    int ch1=0;
+
     ReadChar(ch);
 
     ReadChar(ch);
 
+    // !! Changed by MS, 15th/11/04. Can now read strings such as
+    // """Catapult"" - blah blah", ...
+
     while (ch!=34)
         ReadChar(ch);
     while (ch!=34)
         ReadChar(ch);
-    ReadChar(ch);
 
 
-    while (ch!=34)
+    // found first '"'
+    while (true)
     {
     {
-    phrase+=(char)ch;
-    ReadChar(ch);
+        ReadChar(ch);
+        if (ch == 34)
+        {
+            // another quote?
+            ReadChar(ch1);
+            if (ch1 != 34)
+            {
+                // real end of string..
+                break;
+            }
+
+            // add a single quote - fall through
+        }
+        phrase+=(char)ch;
     }
     }
+
     return phrase;
 }
 
     return phrase;
 }
 
@@ -777,6 +795,9 @@ name=LookUpId(name);
 void rc2xml::WriteLabel(wxString label)
 {
     label.Replace(_T("&"),_T("$"));
 void rc2xml::WriteLabel(wxString label)
 {
     label.Replace(_T("&"),_T("$"));
+    // changes by MS, handle '<' '>' characters within a label.
+    label.Replace("<","&lt;");
+    label.Replace(">","&gt;");
     m_xmlfile.Write(_T("\t\t\t<label>")+label+_T("</label>\n"));
 }
 
     m_xmlfile.Write(_T("\t\t\t<label>")+label+_T("</label>\n"));
 }