Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/lexborisov/Modest.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/modest/finder')
-rw-r--r--source/modest/finder/finder.c42
-rw-r--r--source/modest/finder/finder.h5
-rw-r--r--source/modest/finder/myosi.h2
-rw-r--r--source/modest/finder/pseudo_class.c2
-rw-r--r--source/modest/finder/thread.c4
-rw-r--r--source/modest/finder/thread.h2
-rw-r--r--source/modest/finder/type.c12
7 files changed, 17 insertions, 52 deletions
diff --git a/source/modest/finder/finder.c b/source/modest/finder/finder.c
index e7f69d4..57b7e7b 100644
--- a/source/modest/finder/finder.c
+++ b/source/modest/finder/finder.c
@@ -28,9 +28,6 @@ modest_finder_t * modest_finder_create(void)
modest_status_t modest_finder_init(modest_finder_t* finder)
{
- //finder->tree = NULL;
- //finder->stylesheet = NULL;
-
return MODEST_STATUS_OK;
}
@@ -65,16 +62,6 @@ modest_finder_t * modest_finder_create_simple(void)
return finder;
}
-myhtml_tree_t * modest_finder_html_tree(modest_finder_t* finder)
-{
- return finder->html_tree;
-}
-
-void modest_finder_html_tree_set(modest_finder_t* finder, myhtml_tree_t* myhtml_tree)
-{
- finder->html_tree = myhtml_tree;
-}
-
void modest_finder_callback_found_with_collection(modest_finder_t* finder, myhtml_tree_node_t* node, mycss_selectors_list_t* selector_list, mycss_selectors_entry_t* selector, mycss_selectors_specificity_t* spec, void* ctx)
{
myhtml_collection_t* collection = (myhtml_collection_t*)ctx;
@@ -117,11 +104,9 @@ void modest_finder_specificity_inc(mycss_selectors_entry_t* selector, mycss_sele
}
}
-modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_stylesheet_t *stylesheet,
- myhtml_collection_t** collection, myhtml_tree_node_t* base_node,
- mycss_selectors_list_t* selector_list)
+modest_finder_t * modest_finder_by_stylesheet(mycss_stylesheet_t *stylesheet, myhtml_collection_t** collection, myhtml_tree_node_t* base_node)
{
- if(collection == NULL)
+ if(collection == NULL || base_node == NULL || stylesheet == NULL)
return NULL;
modest_finder_t *finder = modest_finder_create();
@@ -148,21 +133,7 @@ modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_
else
myhtml_collection_clean(*collection);
- if(base_node == NULL) {
- if(myhtml_tree->node_html)
- base_node = myhtml_tree->node_html;
- else
- return finder;
- }
-
- if(selector_list == NULL) {
- if(stylesheet->sel_list_first)
- selector_list = stylesheet->sel_list_first;
- else
- return finder;
- }
-
- finder->html_tree = myhtml_tree;
+ mycss_selectors_list_t *selector_list = stylesheet->sel_list_first;
while(selector_list) {
for(size_t i = 0; i < selector_list->entries_list_length; i++) {
@@ -177,11 +148,10 @@ modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_
return finder;
}
-modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder,
- myhtml_tree_t* myhtml_tree, myhtml_tree_node_t* scope_node,
+modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, myhtml_tree_node_t* scope_node,
mycss_selectors_list_t* selector_list, myhtml_collection_t** collection)
{
- if(finder == NULL || myhtml_tree == NULL || selector_list == NULL || scope_node == NULL || collection == NULL)
+ if(finder == NULL || selector_list == NULL || scope_node == NULL || collection == NULL)
return MODEST_STATUS_ERROR;
if(*collection == NULL) {
@@ -192,8 +162,6 @@ modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder,
return MODEST_STATUS_ERROR_MEMORY_ALLOCATION;
}
- finder->html_tree = myhtml_tree;
-
for(size_t i = 0; i < selector_list->entries_list_length; i++) {
mycss_selectors_specificity_t spec = selector_list->entries_list[i].specificity;
diff --git a/source/modest/finder/finder.h b/source/modest/finder/finder.h
index 51070c7..dd29d87 100644
--- a/source/modest/finder/finder.h
+++ b/source/modest/finder/finder.h
@@ -57,10 +57,9 @@ void modest_finder_callback_found_with_bool(modest_finder_t* finder, myhtml_tree
void modest_finder_specificity_inc(mycss_selectors_entry_t* selector, mycss_selectors_specificity_t* spec);
/* base api */
-modest_finder_t * modest_finder_by_stylesheet(myhtml_tree_t* myhtml_tree, mycss_stylesheet_t *stylesheet,
- myhtml_collection_t** collection, myhtml_tree_node_t* base_node, mycss_selectors_list_t* selector_list);
+modest_finder_t * modest_finder_by_stylesheet(mycss_stylesheet_t *stylesheet, myhtml_collection_t** collection, myhtml_tree_node_t* base_node);
-modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, myhtml_tree_t* myhtml_tree, myhtml_tree_node_t* scope_node,
+modest_status_t modest_finder_by_selectors_list(modest_finder_t* finder, myhtml_tree_node_t* scope_node,
mycss_selectors_list_t* selector_list, myhtml_collection_t** collection);
/* process */
diff --git a/source/modest/finder/myosi.h b/source/modest/finder/myosi.h
index 468f1a0..eaf769d 100644
--- a/source/modest/finder/myosi.h
+++ b/source/modest/finder/myosi.h
@@ -37,7 +37,7 @@ typedef void (*modest_finder_callback_f)(modest_finder_t* finder, myhtml_tree_no
typedef bool (*modest_finder_match_f)(myhtml_token_attr_t* attr, const char* key, size_t key_len, const char* value, size_t value_len, bool case_sensitive);
struct modest_finder {
- myhtml_tree_t* html_tree;
+ void* ctx;
};
typedef struct modest_finder_thread_declaration modest_finder_thread_declaration_t;
diff --git a/source/modest/finder/pseudo_class.c b/source/modest/finder/pseudo_class.c
index 8e5bc80..807996e 100644
--- a/source/modest/finder/pseudo_class.c
+++ b/source/modest/finder/pseudo_class.c
@@ -759,7 +759,7 @@ bool modest_finder_selector_sub_type_pseudo_class_required(modest_finder_t* find
bool modest_finder_selector_sub_type_pseudo_class_root(modest_finder_t* finder, myhtml_tree_node_t* base_node, mycss_selectors_entry_t* selector, mycss_selectors_specificity_t* spec)
{
- if(finder->html_tree && finder->html_tree->node_html == base_node)
+ if(base_node->tree && base_node->tree->node_html == base_node)
return true;
return false;
diff --git a/source/modest/finder/thread.c b/source/modest/finder/thread.c
index 9ca10a2..1d03b09 100644
--- a/source/modest/finder/thread.c
+++ b/source/modest/finder/thread.c
@@ -133,7 +133,7 @@ void modest_finder_thread_collate_node(modest_t* modest, myhtml_tree_node_t* nod
}
}
-modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_t* myhtml_tree,
+modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread,
myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list)
{
finder_thread->base_node = scope_node;
@@ -142,8 +142,6 @@ modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thr
if(finder_thread->finder == NULL)
return MODEST_STATUS_ERROR;
- finder_thread->finder->html_tree = myhtml_tree;
-
mythread_resume_all(finder_thread->thread);
modest_finder_thread_wait_for_all_done(finder_thread);
diff --git a/source/modest/finder/thread.h b/source/modest/finder/thread.h
index 607c15e..7db18fb 100644
--- a/source/modest/finder/thread.h
+++ b/source/modest/finder/thread.h
@@ -89,7 +89,7 @@ modest_status_t modest_finder_thread_init(modest_finder_t* finder, modest_finder
void modest_finder_thread_clean(modest_finder_thread_t* finder_thread, bool self_destroy);
modest_finder_thread_t * modest_finder_thread_destroy(modest_finder_thread_t* finder_thread, bool self_destroy);
-modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_t* myhtml_tree, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list);
+modest_status_t modest_finder_thread_process(modest_t* modest, modest_finder_thread_t* finder_thread, myhtml_tree_node_t* scope_node, mycss_selectors_list_t* selector_list);
void modest_finder_thread_wait_for_all_done(modest_finder_thread_t* finder_thread);
bool modest_finder_thread_spec_is_up(modest_style_raw_specificity_t* spec_f, modest_style_raw_specificity_t* spec_t);
diff --git a/source/modest/finder/type.c b/source/modest/finder/type.c
index 068ae55..0de5ad5 100644
--- a/source/modest/finder/type.c
+++ b/source/modest/finder/type.c
@@ -39,8 +39,8 @@ bool modest_finder_selector_type_element(modest_finder_t* finder, myhtml_tree_no
if(str->length == 1 && *str->data == '*')
return true;
- if(finder->html_tree) {
- myhtml_tag_id_t tag_id = myhtml_tag_id_by_name(finder->html_tree, str->data, str->length);
+ if(node->tree) {
+ myhtml_tag_id_t tag_id = myhtml_tag_id_by_name(node->tree, str->data, str->length);
if(tag_id == node->tag_id)
return true;
@@ -54,11 +54,11 @@ bool modest_finder_selector_type_id(modest_finder_t* finder, myhtml_tree_node_t*
if(node->token == NULL)
return false;
- if(finder->html_tree) {
+ if(node->tree) {
return modest_finder_match_attribute_eq(node->token->attr_first,
"id", 2,
selector->key->data, selector->key->length,
- (finder->html_tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS));
+ (node->tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS));
}
return false;
@@ -69,11 +69,11 @@ bool modest_finder_selector_type_class(modest_finder_t* finder, myhtml_tree_node
if(node->token == NULL)
return false;
- if(finder->html_tree) {
+ if(node->tree) {
return modest_finder_match_attribute_ws(node->token->attr_first,
"class", 5,
selector->key->data, selector->key->length,
- (finder->html_tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS));
+ (node->tree->compat_mode != MyHTML_TREE_COMPAT_MODE_QUIRKS));
}
return false;