From fd6b419b2aa5d7f8d7e3941ee2a1d72ae5f3257d Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Sun, 29 Aug 2010 15:31:03 +0000 Subject: Removed deprecated wildcard functions, removed deprecated all_elements_by_name git-svn-id: http://pugixml.googlecode.com/svn/trunk@669 99668b35-9821-0410-8761-19e4c4f06640 --- src/pugixml.cpp | 162 +----------------------------------------------------- src/pugixml.hpp | 149 ------------------------------------------------- src/pugixpath.cpp | 1 + 3 files changed, 2 insertions(+), 310 deletions(-) (limited to 'src') diff --git a/src/pugixml.cpp b/src/pugixml.cpp index 3238a3d..d319069 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -98,6 +98,7 @@ namespace pugi namespace impl { size_t strlen(const char_t* s); + bool strequal(const char_t* src, const char_t* dst); bool strequalrange(const char_t* lhs, const char_t* rhs, size_t count); void widen_ascii(wchar_t* dest, const char* source); } @@ -138,89 +139,6 @@ namespace pugi return lhs[count] == 0; } - // Character set pattern match. - static bool strequalwild_cset(const char_t** src, const char_t** dst) - { - int find = 0, excl = 0, star = 0; - - if (**src == '!') - { - excl = 1; - ++(*src); - } - - while (**src != ']' || star == 1) - { - if (find == 0) - { - if (**src == '-' && *(*src-1) < *(*src+1) && *(*src+1) != ']' && star == 0) - { - if (**dst >= *(*src-1) && **dst <= *(*src+1)) - { - find = 1; - ++(*src); - } - } - else if (**src == **dst) find = 1; - } - ++(*src); - star = 0; - } - - if (excl == 1) find = (1 - find); - if (find == 1) ++(*dst); - - return find == 0; - } - - // Wildcard pattern match. - static bool strequalwild_astr(const char_t** src, const char_t** dst) - { - int find = 1; - ++(*src); - while ((**dst != 0 && **src == '?') || **src == '*') - { - if(**src == '?') ++(*dst); - ++(*src); - } - while (**src == '*') ++(*src); - if (**dst == 0 && **src != 0) return 0; - if (**dst == 0 && **src == 0) return 1; - else - { - if (!impl::strequalwild(*src,*dst)) - { - do - { - ++(*dst); - while(**src != **dst && **src != '[' && **dst != 0) - ++(*dst); - } - while ((**dst != 0) ? !impl::strequalwild(*src,*dst) : 0 != (find=0)); - } - if (**dst == 0 && **src == 0) find = 1; - return find == 0; - } - } - - // Compare two strings, with globbing, and character sets. - bool PUGIXML_FUNCTION strequalwild(const char_t* src, const char_t* dst) - { - int find = 1; - for(; *src != 0 && find == 1 && *dst != 0; ++src) - { - switch (*src) - { - case '?': ++dst; break; - case '[': ++src; find = !strequalwild_cset(&src,&dst); break; - case '*': find = !strequalwild_astr(&src,&dst); --src; break; - default : find = (int) (*src == *dst); ++dst; - } - } - while (*src == '*' && find == 1) ++src; - return (find == 1 && *dst == 0 && *src == 0); - } - #ifdef PUGIXML_WCHAR_MODE // Convert string to wide string, assuming all symbols are ASCII void widen_ascii(wchar_t* dest, const char* source) @@ -3493,16 +3411,6 @@ namespace pugi return xml_node(); } - xml_node xml_node::child_w(const char_t* name) const - { - if (!_root) return xml_node(); - - for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) - if (i->name && impl::strequalwild(name, i->name)) return xml_node(i); - - return xml_node(); - } - xml_attribute xml_node::attribute(const char_t* name) const { if (!_root) return xml_attribute(); @@ -3514,17 +3422,6 @@ namespace pugi return xml_attribute(); } - xml_attribute xml_node::attribute_w(const char_t* name) const - { - if (!_root) return xml_attribute(); - - for (xml_attribute_struct* i = _root->first_attribute; i; i = i->next_attribute) - if (i->name && impl::strequalwild(name, i->name)) - return xml_attribute(i); - - return xml_attribute(); - } - xml_node xml_node::next_sibling(const char_t* name) const { if (!_root) return xml_node(); @@ -3535,16 +3432,6 @@ namespace pugi return xml_node(); } - xml_node xml_node::next_sibling_w(const char_t* name) const - { - if (!_root) return xml_node(); - - for (xml_node_struct* i = _root->next_sibling; i; i = i->next_sibling) - if (i->name && impl::strequalwild(name, i->name)) return xml_node(i); - - return xml_node(); - } - xml_node xml_node::next_sibling() const { if (!_root) return xml_node(); @@ -3563,16 +3450,6 @@ namespace pugi return xml_node(); } - xml_node xml_node::previous_sibling_w(const char_t* name) const - { - if (!_root) return xml_node(); - - for (xml_node_struct* i = _root->prev_sibling_c; i->next_sibling; i = i->prev_sibling_c) - if (i->name && impl::strequalwild(name, i->name)) return xml_node(i); - - return xml_node(); - } - xml_node xml_node::previous_sibling() const { if (!_root) return xml_node(); @@ -3615,16 +3492,6 @@ namespace pugi return child(name).child_value(); } - const char_t* xml_node::child_value_w(const char_t* name) const - { - if (!_root) return PUGIXML_TEXT(""); - - for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) - if (i->name && impl::strequalwild(name, i->name)) return xml_node(i).child_value(); - - return PUGIXML_TEXT(""); - } - xml_attribute xml_node::first_attribute() const { return _root ? xml_attribute(_root->first_attribute) : xml_attribute(); @@ -3918,21 +3785,6 @@ namespace pugi return xml_node(); } - xml_node xml_node::find_child_by_attribute_w(const char_t* name, const char_t* attr_name, const char_t* attr_value) const - { - if (!_root) return xml_node(); - - for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) - if (i->name && impl::strequalwild(name, i->name)) - { - for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) - if (impl::strequalwild(attr_name, a->name) && impl::strequalwild(attr_value, a->value)) - return xml_node(i); - } - - return xml_node(); - } - xml_node xml_node::find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const { if (!_root) return xml_node(); @@ -3945,18 +3797,6 @@ namespace pugi return xml_node(); } - xml_node xml_node::find_child_by_attribute_w(const char_t* attr_name, const char_t* attr_value) const - { - if (!_root) return xml_node(); - - for (xml_node_struct* i = _root->first_child; i; i = i->next_sibling) - for (xml_attribute_struct* a = i->first_attribute; a; a = a->next_attribute) - if (impl::strequalwild(attr_name, a->name) && impl::strequalwild(attr_value, a->value)) - return xml_node(i); - - return xml_node(); - } - #ifndef PUGIXML_NO_STL string_t xml_node::path(char_t delimiter) const { diff --git a/src/pugixml.hpp b/src/pugixml.hpp index 91a3190..3c9072b 100644 --- a/src/pugixml.hpp +++ b/src/pugixml.hpp @@ -108,16 +108,6 @@ namespace pugi } #endif -// Helpers for inline implementation -namespace pugi -{ - namespace impl - { - bool PUGIXML_FUNCTION strequal(const char_t*, const char_t*); - bool PUGIXML_FUNCTION strequalwild(const char_t*, const char_t*); - } -} - /// The PugiXML Parser namespace. namespace pugi { @@ -690,45 +680,6 @@ namespace pugi /// \internal Initializing constructor explicit xml_node(xml_node_struct* p); - private: - template void all_elements_by_name_helper(const char_t* name, OutputIterator it) const - { - if (!_root) return; - - for (xml_node node = first_child(); node; node = node.next_sibling()) - { - if (node.type() == node_element) - { - if (impl::strequal(name, node.name())) - { - *it = node; - ++it; - } - - if (node.first_child()) node.all_elements_by_name_helper(name, it); - } - } - } - - template void all_elements_by_name_w_helper(const char_t* name, OutputIterator it) const - { - if (!_root) return; - - for (xml_node node = first_child(); node; node = node.next_sibling()) - { - if (node.type() == node_element) - { - if (impl::strequalwild(name, node.name())) - { - *it = node; - ++it; - } - - if (node.first_child()) node.all_elements_by_name_w_helper(name, it); - } - } - } - public: /** * Default constructor. Constructs an empty node. @@ -872,16 +823,6 @@ namespace pugi */ xml_node child(const char_t* name) const; - /** - * Get child with the name that matches specified pattern - * - * \param name - child name pattern - * \return child with the name that matches pattern, if any; empty node otherwise - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED xml_node child_w(const char_t* name) const; - /** * Get attribute with the specified name * @@ -890,16 +831,6 @@ namespace pugi */ xml_attribute attribute(const char_t* name) const; - /** - * Get attribute with the name that matches specified pattern - * - * \param name - attribute name pattern - * \return attribute with the name that matches pattern, if any; empty attribute otherwise - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED xml_attribute attribute_w(const char_t* name) const; - /** * Get first of following sibling nodes with the specified name * @@ -908,16 +839,6 @@ namespace pugi */ xml_node next_sibling(const char_t* name) const; - /** - * Get first of the following sibling nodes with the name that matches specified pattern - * - * \param name - sibling name pattern - * \return node with the name that matches pattern, if any; empty node otherwise - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED xml_node next_sibling_w(const char_t* name) const; - /** * Get following sibling * @@ -933,16 +854,6 @@ namespace pugi */ xml_node previous_sibling(const char_t* name) const; - /** - * Get first of the preceding sibling nodes with the name that matches specified pattern - * - * \param name - sibling name pattern - * \return node with the name that matches pattern, if any; empty node otherwise - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED xml_node previous_sibling_w(const char_t* name) const; - /** * Get preceding sibling * @@ -980,17 +891,6 @@ namespace pugi */ const char_t* child_value(const char_t* name) const; - /** - * Get child value of child with name that matches the specified pattern. \see child_value - * node.child_value_w(name) is equivalent to node.child_w(name).child_value() - * - * \param name - child name pattern - * \return child value of specified child node, if any; "" otherwise - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED const char_t* child_value_w(const char_t* name) const; - public: /** * Set node name to \a rhs (for PI/element nodes). \see name @@ -1159,32 +1059,6 @@ namespace pugi */ xml_attribute last_attribute() const; - /** - * Get all elements from subtree with given name - * - * \param name - node name - * \param it - output iterator (for example, std::back_insert_iterator (result of std::back_inserter)) - * - * \deprecated This function is deprecated - */ - template PUGIXML_DEPRECATED void all_elements_by_name(const char_t* name, OutputIterator it) const - { - all_elements_by_name_helper(name, it); - } - - /** - * Get all elements from subtree with name that matches given pattern - * - * \param name - node name pattern - * \param it - output iterator (for example, std::back_insert_iterator (result of std::back_inserter)) - * - * \deprecated This function is deprecated - */ - template PUGIXML_DEPRECATED void all_elements_by_name_w(const char_t* name, OutputIterator it) const - { - all_elements_by_name_w_helper(name, it); - } - /** * Get first child * @@ -1272,18 +1146,6 @@ namespace pugi */ xml_node find_child_by_attribute(const char_t* name, const char_t* attr_name, const char_t* attr_value) const; - /** - * Find child node with the specified name that has specified attribute (use pattern matching for node name and attribute name/value) - * - * \param name - pattern for child node name - * \param attr_name - pattern for attribute name of child node - * \param attr_value - pattern for attribute value of child node - * \return first matching child node, or empty node - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED xml_node find_child_by_attribute_w(const char_t* name, const char_t* attr_name, const char_t* attr_value) const; - /** * Find child node that has specified attribute * @@ -1293,17 +1155,6 @@ namespace pugi */ xml_node find_child_by_attribute(const char_t* attr_name, const char_t* attr_value) const; - /** - * Find child node that has specified attribute (use pattern matching for attribute name/value) - * - * \param attr_name - pattern for attribute name of child node - * \param attr_value - pattern for attribute value of child node - * \return first matching child node, or empty node - * - * \deprecated This function is deprecated - */ - PUGIXML_DEPRECATED xml_node find_child_by_attribute_w(const char_t* attr_name, const char_t* attr_value) const; - #ifndef PUGIXML_NO_STL /** * Get the absolute node path from root as a text string. diff --git a/src/pugixpath.cpp b/src/pugixpath.cpp index 4040eb9..7ab466c 100644 --- a/src/pugixpath.cpp +++ b/src/pugixpath.cpp @@ -63,6 +63,7 @@ namespace pugi namespace impl { size_t strlen(const char_t* s); + bool strequal(const char_t* src, const char_t* dst); bool strequalrange(const char_t* lhs, const char_t* rhs, size_t count); void widen_ascii(wchar_t* dest, const char* source); } -- cgit v1.2.3