From 86c9a3781089d191ac835f28f335ff220961ed1d Mon Sep 17 00:00:00 2001 From: Jonas Fonseca Date: Sat, 10 Dec 2005 21:49:33 +0100 Subject: [PATCH] Factor out dom_string_casecmp() --- src/document/dom/node.c | 9 +-------- src/document/dom/string.h | 11 +++++++++++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/document/dom/node.c b/src/document/dom/node.c index fb4a5a3cb..fa0d0005e 100644 --- a/src/document/dom/node.c +++ b/src/document/dom/node.c @@ -154,15 +154,8 @@ dom_node_cmp(struct dom_node_search *search, struct dom_node *node) break; } } - { - int length = int_min(key->string.length, node->string.length); - int string_diff = strncasecmp(key->string.string, node->string.string, length); - /* If the lengths or strings don't match strncasecmp() does the - * job else return which ever is bigger. */ - - return string_diff ? string_diff : key->string.length - node->string.length; - } + return dom_string_casecmp(&key->string, &node->string); } static inline int diff --git a/src/document/dom/string.h b/src/document/dom/string.h index cc46faa18..d1d7d3b30 100644 --- a/src/document/dom/string.h +++ b/src/document/dom/string.h @@ -16,6 +16,17 @@ set_dom_string(struct dom_string *string, unsigned char *value, uint16_t length) string->length = length; } +static inline int +dom_string_casecmp(struct dom_string *string1, struct dom_string *string2) +{ + size_t length = int_min(string1->length, string2->length); + size_t string_diff = strncasecmp(string1->string, string2->string, length); + + /* If the lengths or strings don't match strncasecmp() does the + * job else return which ever is bigger. */ + return string_diff ? string_diff : string1->length - string2->length; +} + #define is_dom_string_set(str) ((str)->string && (str)->length) #define done_dom_string(str) mem_free((str)->string);