git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3537
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
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;
+ }
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;
if (*st == 0) return "";
if (*p == 0) return "";
if (*st == 0) return "";
if (*p == 0) return "";
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 = '\'';
+ }
- 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 "";
st2++;
while (*st2 != '"') st2++;
}
st2++;
while (*st2 != '"') st2++;
}
+ else if (*st2 == '\'') {
+ st2++;
+ while (*st2 != '\'') st2++;
+ }
-void wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const
+int wxHtmlTag::ScanParam(const wxString& par, char *format, ...) const
va_list argptr;
wxString parval = GetParam(par);
va_list argptr;
wxString parval = GetParam(par);
//#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 *));
- vsscanf((const char*)parval, format, argptr);
+ retval = vsscanf((const char*)parval, format, argptr);
- --- 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...
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.
- 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()));
+ }
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));
{
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())) {
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);
+ }
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);