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;
const char *st = m_Params, *p = par;
const char *st2, *p2;
bool comma;
+ char comma_char;
if (*st == 0) return "";
if (*p == 0) return "";
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) {
- if (*st2 == '"') comma = !comma;
+ if (comma && *st2 == comma_char) comma = FALSE;
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 "";
st2++;
while (*st2 != '"') st2++;
}
+ else if (*st2 == '\'') {
+ st2++;
+ while (*st2 != '\'') st2++;
+ }
st2++;
}
}
-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);
//#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
- vsscanf((const char*)parval, format, argptr);
+ retval = vsscanf((const char*)parval, format, argptr);
#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...
*/
va_end(argptr);
+ return retval;
}
#endif
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")) {
- // give 'tmp' an initial value. If conversion fails, it will keep this value.
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);
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));
{
wxImage *img;
int ww, hh;
- wxString m = input -> GetMimeType();
wxInputStream *s = input -> GetStream();
- img = new wxImage(*s, m);
+ img = new wxImage(*s, wxBITMAP_TYPE_ANY);
m_Image = NULL;
if (img && (img -> Ok())) {
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")) {
- 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")) {
- 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;
}
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);