Skip to content
This repository has been archived by the owner on Nov 29, 2024. It is now read-only.

Commit

Permalink
Use == 0 for C strcmp
Browse files Browse the repository at this point in the history
! is too easy to overlook.

Signed-off-by: Simon Rozman <[email protected]>
  • Loading branch information
rozmansi committed Nov 15, 2024
1 parent 0912332 commit f45c92d
Showing 1 changed file with 55 additions and 55 deletions.
110 changes: 55 additions & 55 deletions include/stdex/html.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1236,45 +1236,45 @@ namespace stdex
{
stdex_assert(attr_name || !num_chars);
switch (code) {
case element_t::a: return !stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX);
case element_t::applet: return !stdex::strnicmp(attr_name, num_chars, "code", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "codebase", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX);
case element_t::area: return !stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX);
case element_t::base: return !stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX);
case element_t::bgsound: return !stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX);
case element_t::blockquote: return !stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX);
case element_t::body: return !stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX);
case element_t::comment: return !stdex::strnicmp(attr_name, num_chars, "data", SIZE_MAX);
case element_t::del: return !stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX);
case element_t::embed: return !stdex::strnicmp(attr_name, num_chars, "pluginspage", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX);
case element_t::form: return !stdex::strnicmp(attr_name, num_chars, "action", SIZE_MAX);
case element_t::frame: return !stdex::strnicmp(attr_name, num_chars, "longdesc", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX);
case element_t::head: return !stdex::strnicmp(attr_name, num_chars, "profile", SIZE_MAX);
case element_t::iframe: return !stdex::strnicmp(attr_name, num_chars, "longdesc", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX);
case element_t::img: return !stdex::strnicmp(attr_name, num_chars, "longdesc", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "lowsrc", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "usemap", SIZE_MAX);
case element_t::input: return !stdex::strnicmp(attr_name, num_chars, "lowsrc", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "usemap", SIZE_MAX);
case element_t::ins: return !stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX);
case element_t::link: return !stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX);
case element_t::object: return !stdex::strnicmp(attr_name, num_chars, "basehref", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "classid", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "code", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "codebase", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "data", SIZE_MAX) ||
!stdex::strnicmp(attr_name, num_chars, "usemap", SIZE_MAX);
case element_t::q: return !stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX);
case element_t::script: return !stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX);
case element_t::table: return !stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX);
case element_t::td: return !stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX);
case element_t::th: return !stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX);
case element_t::a: return stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX) == 0;
case element_t::applet: return stdex::strnicmp(attr_name, num_chars, "code", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "codebase", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0;
case element_t::area: return stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX) == 0;
case element_t::base: return stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX) == 0;
case element_t::bgsound: return stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0;
case element_t::blockquote: return stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX) == 0;
case element_t::body: return stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX) == 0;
case element_t::comment: return stdex::strnicmp(attr_name, num_chars, "data", SIZE_MAX) == 0;
case element_t::del: return stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX) == 0;
case element_t::embed: return stdex::strnicmp(attr_name, num_chars, "pluginspage", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0;
case element_t::form: return stdex::strnicmp(attr_name, num_chars, "action", SIZE_MAX) == 0;
case element_t::frame: return stdex::strnicmp(attr_name, num_chars, "longdesc", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0;
case element_t::head: return stdex::strnicmp(attr_name, num_chars, "profile", SIZE_MAX) == 0;
case element_t::iframe: return stdex::strnicmp(attr_name, num_chars, "longdesc", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0;
case element_t::img: return stdex::strnicmp(attr_name, num_chars, "longdesc", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "lowsrc", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "usemap", SIZE_MAX) == 0;
case element_t::input: return stdex::strnicmp(attr_name, num_chars, "lowsrc", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "usemap", SIZE_MAX) == 0;
case element_t::ins: return stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX) == 0;
case element_t::link: return stdex::strnicmp(attr_name, num_chars, "href", SIZE_MAX) == 0;
case element_t::object: return stdex::strnicmp(attr_name, num_chars, "basehref", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "classid", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "code", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "codebase", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "data", SIZE_MAX) == 0 ||
stdex::strnicmp(attr_name, num_chars, "usemap", SIZE_MAX) == 0;
case element_t::q: return stdex::strnicmp(attr_name, num_chars, "cite", SIZE_MAX) == 0;
case element_t::script: return stdex::strnicmp(attr_name, num_chars, "src", SIZE_MAX) == 0;
case element_t::table: return stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX) == 0;
case element_t::td: return stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX) == 0;
case element_t::th: return stdex::strnicmp(attr_name, num_chars, "background", SIZE_MAX) == 0;
default: return false;
}
}
Expand All @@ -1290,17 +1290,17 @@ namespace stdex
static bool is_localizable(element_t code, const T* attr_name, size_t num_chars)
{
stdex_assert(attr_name || !num_chars);
if (!stdex::strnicmp(attr_name, num_chars, "title", SIZE_MAX))
if (stdex::strnicmp(attr_name, num_chars, "title", SIZE_MAX) == 0)
return true;
switch (code) {
case element_t::applet: return !stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX);
case element_t::area: return !stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX);
case element_t::img: return !stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX);
case element_t::input: return !stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX);
case element_t::object: return !stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX);
case element_t::table: return !stdex::strnicmp(attr_name, num_chars, "summary", SIZE_MAX);
case element_t::td: return !stdex::strnicmp(attr_name, num_chars, "abbr", SIZE_MAX);
case element_t::th: return !stdex::strnicmp(attr_name, num_chars, "abbr", SIZE_MAX);
case element_t::applet: return stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX) == 0;
case element_t::area: return stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX) == 0;
case element_t::img: return stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX) == 0;
case element_t::input: return stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX) == 0;
case element_t::object: return stdex::strnicmp(attr_name, num_chars, "alt", SIZE_MAX) == 0;
case element_t::table: return stdex::strnicmp(attr_name, num_chars, "summary", SIZE_MAX) == 0;
case element_t::td: return stdex::strnicmp(attr_name, num_chars, "abbr", SIZE_MAX) == 0;
case element_t::th: return stdex::strnicmp(attr_name, num_chars, "abbr", SIZE_MAX) == 0;
default: return false;
}
}
Expand Down Expand Up @@ -1778,10 +1778,10 @@ namespace stdex
bool is_content_type = false;
stdex::parser::html_attribute* content_attr = nullptr;
for (auto& attr : e->attributes) {
if (!stdex::strnicmp(source + attr.name.start, attr.name.size(), "http-equiv", SIZE_MAX) &&
!stdex::strnicmp(source + attr.value.start, attr.value.size(), "content-type", SIZE_MAX))
if (stdex::strnicmp(source + attr.name.start, attr.name.size(), "http-equiv", SIZE_MAX) == 0 &&
stdex::strnicmp(source + attr.value.start, attr.value.size(), "content-type", SIZE_MAX) == 0)
is_content_type = true;
else if (!stdex::strnicmp(source + attr.name.start, attr.name.size(), "content", SIZE_MAX))
else if (stdex::strnicmp(source + attr.name.start, attr.name.size(), "content", SIZE_MAX) == 0)
content_attr = &attr;
}
if (is_content_type && content_attr) {
Expand Down Expand Up @@ -1809,7 +1809,7 @@ namespace stdex
auto starting_tag = m_element_stack[j];
stdex_assert(starting_tag && starting_tag->type == stdex::parser::html_sequence_t::element_start);
if (starting_tag->code == e->code ||
(starting_tag->code == element_t::unknown && e->code == element_t::unknown && !stdex::strnicmp(source + starting_tag->name.start, starting_tag->name.size(), source + e->name.start, e->name.size())))
(starting_tag->code == element_t::unknown && e->code == element_t::unknown && stdex::strnicmp(source + starting_tag->name.start, starting_tag->name.size(), source + e->name.start, e->name.size()) == 0))
{
e->start = starting_tag;
e->parent = starting_tag->parent;
Expand All @@ -1824,9 +1824,9 @@ namespace stdex
}
case stdex::parser::html_sequence_t::declaration:
if (m_tag.attributes.size() > 3 &&
!stdex::strnicmp(source + m_tag.attributes[0].name.start, m_tag.attributes[0].name.size(), "entity", SIZE_MAX))
stdex::strnicmp(source + m_tag.attributes[0].name.start, m_tag.attributes[0].name.size(), "entity", SIZE_MAX) == 0)
{
if (!stdex::strncmp(source + m_tag.attributes[1].name.start, m_tag.attributes[1].name.size(), "%", SIZE_MAX) &&
if (stdex::strncmp(source + m_tag.attributes[1].name.start, m_tag.attributes[1].name.size(), "%", SIZE_MAX) == 0 &&
stdex::strncmp(source + m_tag.attributes[3].name.start, m_tag.attributes[3].name.size(), "SYSTEM", SIZE_MAX) &&
stdex::strncmp(source + m_tag.attributes[3].name.start, m_tag.attributes[3].name.size(), "PUBLIC", SIZE_MAX))
{
Expand Down Expand Up @@ -1916,7 +1916,7 @@ namespace stdex
auto& e = m_entities[j];
size_t entity_size = e->name.size();
if (i + entity_size + 1 < num_chars &&
!stdex::strncmp(input + i + 1, source + e->name.start, entity_size) &&
stdex::strncmp(input + i + 1, source + e->name.start, entity_size) == 0 &&
input[i + entity_size + 1] == ';')
{
output += e->value;
Expand Down

0 comments on commit f45c92d

Please sign in to comment.