]> git.saurik.com Git - wxWidgets.git/commitdiff
wxHtmlTag::ScanParam now returns value
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 30 Aug 1999 22:39:56 +0000 (22:39 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 30 Aug 1999 22:39:56 +0000 (22:39 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3537 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/html/htmltag.cpp
src/html/mod_fonts.cpp
src/html/mod_hline.cpp
src/html/mod_image.cpp
src/html/mod_layout.cpp
src/html/mod_tables.cpp

index 65253c20aaf7389156a8fce8951872a2c570b516..a864e27fad2f9ac84c78696a396c6cf5a9a1cb76 100644 (file)
@@ -140,6 +140,10 @@ wxHtmlTag::wxHtmlTag(const wxString& source, int pos, int end_pos, wxHtmlTagsCac
                 while ((i < end_pos) && ((c = source[i++]) != '"')) m_Params += c;
                 m_Params += c;
             }
                 while ((i < end_pos) && ((c = source[i++]) != '"')) m_Params += c;
                 m_Params += c;
             }
+            else if (c == '\'') {
+                while ((i < end_pos) && ((c = source[i++]) != '\'')) m_Params += c;
+                m_Params += c;
+            }
         }
    m_Begin = i;
 
         }
    m_Begin = i;
 
@@ -184,6 +188,7 @@ wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const
     const char *st = m_Params, *p = par;
     const char *st2, *p2;
     bool comma;
     const char *st = m_Params, *p = par;
     const char *st2, *p2;
     bool comma;
+    char comma_char;
 
     if (*st == 0) return "";
     if (*p == 0) return "";
 
     if (*st == 0) return "";
     if (*p == 0) return "";
@@ -192,13 +197,23 @@ wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const
             wxString fnd = "";
             st2++; // '=' character
             comma = FALSE;
             wxString fnd = "";
             st2++; // '=' character
             comma = FALSE;
-            if (!with_commas && (*(st2) == '"')) {st2++; comma = TRUE;}
+           comma_char = '\0';
+            if (!with_commas && (*(st2) == '"')) {
+               st2++;
+               comma = TRUE; 
+               comma_char = '"';
+           }
+           else if (!with_commas && (*(st2) == '\'')) {
+               st2++; 
+               comma = TRUE;
+               comma_char = '\'';
+           }
             while (*st2 != 0) {
             while (*st2 != 0) {
-                if (*st2 == '"') comma = !comma;
+                if (comma && *st2 == comma_char) comma = FALSE;
                 else if ((*st2 == ' ') && (!comma)) break;
                 fnd += (*(st2++));
             }
                 else if ((*st2 == ' ') && (!comma)) break;
                 fnd += (*(st2++));
             }
-            if (!with_commas && (*(st2-1) == '"')) fnd.RemoveLast();
+            if (!with_commas && (*(st2-1) == comma_char)) fnd.RemoveLast();
             return fnd;
         }
         if (*st2 == 0) return "";
             return fnd;
         }
         if (*st2 == 0) return "";
@@ -212,6 +227,10 @@ wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const
                     st2++;
                     while (*st2 != '"') st2++;
                 }
                     st2++;
                     while (*st2 != '"') st2++;
                 }
+                else if (*st2 == '\'') {
+                    st2++;
+                    while (*st2 != '\'') st2++;
+                }
                 st2++;
             }
         }
                 st2++;
             }
         }
@@ -220,8 +239,9 @@ wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const
 
 
 
 
 
 
-void wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const
+int wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const
 {
 {
+    int retval;
     va_list argptr;
     wxString parval = GetParam(par);
 
     va_list argptr;
     wxString parval = GetParam(par);
 
@@ -229,13 +249,13 @@ void wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const
 
 //#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__VISUALC__)
 #ifndef HAVE_VSSCANF
 
 //#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__VISUALC__)
 #ifndef HAVE_VSSCANF
-    sscanf((const char*)parval, format, va_arg(argptr, void *));
+    retval = sscanf((const char*)parval, format, va_arg(argptr, void *));
 #else
 #else
-    vsscanf((const char*)parval, format, argptr);
+    retval = vsscanf((const char*)parval, format, argptr);
 #endif
 
 /*
 #endif
 
 /*
-        --- vsscanf is not defined under Cygwin or Mingw32 or M$ Visual C++ environment
+        --- vsscanf is not defined under some compilers
             if this module doesn't compile with your compiler,
             modify the def statement and let me know. Thanks...
         
             if this module doesn't compile with your compiler,
             modify the def statement and let me know. Thanks...
         
@@ -245,6 +265,7 @@ void wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const
 */
 
     va_end(argptr);
 */
 
     va_end(argptr);
+    return retval;
 }
 
 #endif
 }
 
 #endif
index fa34b8560927912f5f45b6aadbccd3e1d15eda90..006fc4865e825b2809c9735f1d5286db77b8d798 100644 (file)
@@ -39,19 +39,19 @@ TAG_HANDLER_BEGIN(FONT, "FONT")
         if (tag.HasParam("COLOR")) {
            unsigned long tmp = 0; 
             wxColour clr;
         if (tag.HasParam("COLOR")) {
            unsigned long tmp = 0; 
             wxColour clr;
-            tag.ScanParam("COLOR", "#%lX", &tmp);
-            clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
-            m_WParser -> SetActualColor(clr);
-            m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr));
+            if (tag.ScanParam("COLOR", "#%lX", &tmp) == 1) {
+                clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
+                m_WParser -> SetActualColor(clr);
+                m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr));
+           }
         }
 
         if (tag.HasParam("SIZE")) {
         }
 
         if (tag.HasParam("SIZE")) {
-           // give 'tmp' an initial value. If conversion fails, it will keep this value.
            long tmp = 0;
            long tmp = 0;
-            tag.ScanParam("SIZE", "%li", &tmp);
-           // We *really* should check the result of (v)sscanf, but ScanParam returns void...
-            m_WParser -> SetFontSize(oldsize+tmp);
-            m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont()));
+            if (tag.ScanParam("SIZE", "%li", &tmp) == 1) {
+                m_WParser -> SetFontSize(oldsize+tmp);
+                m_WParser -> GetContainer() -> InsertCell(new wxHtmlFontCell(m_WParser -> CreateCurrentFont()));
+           }
         }
 
         ParseInner(tag);
         }
 
         ParseInner(tag);
index b8af76bdbe5f16d92c196815792238f89210dc49..7bada2919b750a7c82d05eb5dae8e0e66952bb79 100644 (file)
@@ -78,7 +78,7 @@ TAG_HANDLER_BEGIN(HR, "HR")
         c -> SetAlignHor(HTML_ALIGN_CENTER);
         c -> SetAlign(tag);
         c -> SetWidthFloat(tag);
         c -> SetAlignHor(HTML_ALIGN_CENTER);
         c -> SetAlign(tag);
         c -> SetWidthFloat(tag);
-        if (tag.HasParam("SIZE")) tag.ScanParam("SIZE", "%i", &sz);
+        if (tag.HasParam("SIZE") && tag.ScanParam("SIZE", "%i", &sz) == 1) {}
         else sz = 1;
         c -> InsertCell(new wxHtmlLineCell(sz));
 
         else sz = 1;
         c -> InsertCell(new wxHtmlLineCell(sz));
 
index d21965c6c209837dc288ef6bb359f8a8e0a62b37..b48281cc7f1ee362f77aca315eb16c094027d46a 100644 (file)
@@ -291,10 +291,9 @@ wxHtmlImageCell::wxHtmlImageCell(wxFSFile *input, int w, int h, int align, wxStr
 {
     wxImage *img;
     int ww, hh;
 {
     wxImage *img;
     int ww, hh;
-    wxString m = input -> GetMimeType();
     wxInputStream *s = input -> GetStream();
 
     wxInputStream *s = input -> GetStream();
 
-    img = new wxImage(*s, m);
+    img = new wxImage(*s, wxBITMAP_TYPE_ANY);
 
     m_Image = NULL;
     if (img && (img -> Ok())) {
 
     m_Image = NULL;
     if (img && (img -> Ok())) {
index b398f93d3c5511676cfd161e8ff97cd8ebbf6f6b..1913589b1a01ac31e4f91201ecf4ae2ff8972228 100644 (file)
@@ -165,24 +165,27 @@ TAG_HANDLER_BEGIN(BODY, "BODY")
         wxColour clr;
 
         if (tag.HasParam("TEXT")) {
         wxColour clr;
 
         if (tag.HasParam("TEXT")) {
-            tag.ScanParam("TEXT", "#%lX", &tmp);
-            clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
-            m_WParser -> SetActualColor(clr);
-            m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr));
-        }
+            if (tag.ScanParam("TEXT", "#%lX", &tmp) == 1) {
+                clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
+                m_WParser -> SetActualColor(clr);
+                m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr));
+            }
+       }
 
         if (tag.HasParam("LINK")) {
 
         if (tag.HasParam("LINK")) {
-            tag.ScanParam("LINK", "#%lX", &tmp);
-            clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
-            m_WParser -> SetLinkColor(clr);
+            if (tag.ScanParam("LINK", "#%lX", &tmp) == 1) {
+                clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
+                m_WParser -> SetLinkColor(clr);
+           }
         }
 
         if (tag.HasParam("BGCOLOR")) {
         }
 
         if (tag.HasParam("BGCOLOR")) {
-            tag.ScanParam("BGCOLOR", "#%lX", &tmp);
-            clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
-            m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr, HTML_CLR_BACKGROUND));
-        if (m_WParser -> GetWindow() != NULL)
-            m_WParser -> GetWindow() -> SetBackgroundColour(clr);
+            if (tag.ScanParam("BGCOLOR", "#%lX", &tmp) == 1) {
+                clr = wxColour((tmp & 0xFF0000) >> 16 , (tmp & 0x00FF00) >> 8, (tmp & 0x0000FF));
+                m_WParser -> GetContainer() -> InsertCell(new wxHtmlColourCell(clr, HTML_CLR_BACKGROUND));
+                if (m_WParser -> GetWindow() != NULL)
+                    m_WParser -> GetWindow() -> SetBackgroundColour(clr);
+           }
         }
         return FALSE;
     }
         }
         return FALSE;
     }
index 01bc6552ab5c4211d71e33f6fb6fb372ceaedf65..35f14a284902b7346aba45fe9e9790202741f6ae 100644 (file)
@@ -122,8 +122,8 @@ wxHtmlTableCell::wxHtmlTableCell(wxHtmlContainerCell *parent, const wxHtmlTag& t
     m_tBkg = m_rBkg = -1;
     if (tag.HasParam("BGCOLOR")) tag.ScanParam("BGCOLOR", "#%lX", &m_tBkg);
     if (tag.HasParam("VALIGN")) m_tValign = tag.GetParam("VALIGN"); else m_tValign = wxEmptyString;
     m_tBkg = m_rBkg = -1;
     if (tag.HasParam("BGCOLOR")) tag.ScanParam("BGCOLOR", "#%lX", &m_tBkg);
     if (tag.HasParam("VALIGN")) m_tValign = tag.GetParam("VALIGN"); else m_tValign = wxEmptyString;
-    if (tag.HasParam("CELLSPACING")) tag.ScanParam("CELLSPACING", "%i", &m_Spacing); else m_Spacing = 2;
-    if (tag.HasParam("CELLPADDING")) tag.ScanParam("CELLPADDING", "%i", &m_Padding); else m_Padding = 3;
+    if (tag.HasParam("CELLSPACING") && tag.ScanParam("CELLSPACING", "%i", &m_Spacing) == 1) {} else m_Spacing = 2;
+    if (tag.HasParam("CELLPADDING") && tag.ScanParam("CELLPADDING", "%i", &m_Padding) == 1) {} else m_Padding = 3;
 
     if (m_HasBorders)
         SetBorder(TABLE_BORDER_CLR_1, TABLE_BORDER_CLR_2);
 
     if (m_HasBorders)
         SetBorder(TABLE_BORDER_CLR_1, TABLE_BORDER_CLR_2);