X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2776d7c3bd349e1c42de0c4da83c7f5b0cfab0ec..6627a4b0497f89221ea9f7848990f8830cf81b7e:/src/html/htmltag.cpp diff --git a/src/html/htmltag.cpp b/src/html/htmltag.cpp index 65253c20aa..e173271235 100644 --- a/src/html/htmltag.cpp +++ b/src/html/htmltag.cpp @@ -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; } + else if (c == '\'') { + while ((i < end_pos) && ((c = source[i++]) != '\'')) m_Params += c; + m_Params += c; + } } 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; + char comma_char; 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; - 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 ""; @@ -212,6 +227,10 @@ wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const st2++; while (*st2 != '"') st2++; } + else if (*st2 == '\'') { + st2++; + while (*st2 != '\'') st2++; + } st2++; } } @@ -220,31 +239,10 @@ 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, void *param) const { - va_list argptr; wxString parval = GetParam(par); - - va_start(argptr, format); - -//#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(__VISUALC__) -#ifndef HAVE_VSSCANF - sscanf((const char*)parval, format, va_arg(argptr, void *)); -#else - vsscanf((const char*)parval, format, argptr); -#endif - -/* - --- vsscanf is not defined under Cygwin or Mingw32 or M$ Visual C++ environment - if this module doesn't compile with your compiler, - modify the def statement and let me know. Thanks... - - So far wxHtml functions are scanning only _one_ value - so I workarounded this by supposing that there is only - one ...-parameter -*/ - - va_end(argptr); + return sscanf((const char*)parval, format, param); } #endif