Jonas Fonseca
d36b2d8a36
get_dom_select_data(): Move macro nearer to its users
2005-12-25 02:43:08 +01:00
Jonas Fonseca
ce2aa08cb1
Compile fix
2005-12-24 13:07:57 +01:00
Jonas Fonseca
8d30613a7f
The child node list can be NULL when matching for the :empty pseudo-class
...
Also use the children node list and not the attribute list (aka the map).
2005-12-23 01:03:39 +01:00
Jonas Fonseca
3ea1b30fd6
Fix matching of the :root structural pseudo-class
...
Root nodes either have no parents or are the single child of the document
node.
2005-12-23 00:59:56 +01:00
Jonas Fonseca
755108cf95
Tidyup
2005-12-23 00:53:31 +01:00
Jonas Fonseca
4d6223f6a4
Oops, compile fix
2005-12-23 00:52:52 +01:00
Jonas Fonseca
12d34fd133
Factor out code to new match_element_selector()
...
'Twill make it easier to do the logic.
2005-12-23 00:51:57 +01:00
Jonas Fonseca
07fc481607
match_attribute_selectors(): Factor out matching of values to own function
2005-12-23 00:11:25 +01:00
Jonas Fonseca
faa85adf73
dom_select_push_element(): Use dom_node_casecmp() and drop homegrown one
2005-12-22 23:40:11 +01:00
Jonas Fonseca
eab6c19bbe
Add lots of comments and FIXMEs
2005-12-22 03:19:53 +01:00
Jonas Fonseca
25e0a18b7f
Misc DOM select fixes
...
- ensure done_dom_stack() is called after parsing is done
- get_dom_select_data(): Use stack->current->data since it is used within
dom_stack_callback_T
- dom_select_pop_element(): Use stack->contexts since it is the
select_data stack and it owns the first context
- add the select_data context to the right stack
- fix some comments
2005-12-21 23:26:22 +01:00
Jonas Fonseca
2a24ad9099
Introduce enum dom_stack_flag to make init_dom_stack() more obvious
2005-12-21 04:48:50 +01:00
Jonas Fonseca
632f12f82a
init_dom_stack(): Drop unused object_size argument
2005-12-21 04:41:35 +01:00
Jonas Fonseca
f8d48e81eb
Move the state_objects to the DOM stack contexts
...
This way all contexts are now separated, almost.
2005-12-21 04:38:04 +01:00
Jonas Fonseca
910c51abaf
Remove the now unused DOM stack data member
2005-12-21 03:59:46 +01:00
Jonas Fonseca
da33827771
Use a (for now bogus) DOM stack context for holding DOM select data
2005-12-21 03:57:17 +01:00
Jonas Fonseca
0faa8d7462
Add a data member to struct dom_stack_context (not used yet)
2005-12-21 01:25:50 +01:00
Jonas Fonseca
a77242738c
Rename: add_dom_stack_callbacks() -> add_dom_stack_context()
2005-12-21 01:04:37 +01:00
Jonas Fonseca
3843be25af
Rename: struct dom_stack_callbacks -> struct dom_stack_context_info
2005-12-21 00:58:22 +01:00
Jonas Fonseca
625725f0e9
Allow for multiple callbacks to be attached to the DOM stack
2005-12-20 20:27:20 +01:00
Jonas Fonseca
d6b125fa68
Drop the return value from dom_stack_callback_T
...
... since the feature with popping the node if the return value is NULL is
not used and it doesn't make a lot of sense with multiple callbacks.
2005-12-20 19:48:33 +01:00
Jonas Fonseca
990c5e0a26
Combine DOM stack push and pop callbacks into one struct
2005-12-20 19:20:04 +01:00
Jonas Fonseca
5777941d06
DOM select: Completely rewrite the parser for nth arguments
2005-12-20 01:50:39 +01:00
Jonas Fonseca
c2e30c8eea
get_child_dom_select_node(): Use the foreach_dom_node iterator
2005-12-20 01:48:21 +01:00
Jonas Fonseca
8e769d48a5
Misc cleanups and improvements
2005-12-20 00:01:18 +01:00
Jonas Fonseca
3b412553b6
match_attribute_selectors(): Fix warning about uninitialized attr variable
...
Outspitten on FreeBSD.
2005-12-19 22:13:23 +01:00
Jonas Fonseca
2e2c0a590e
Add basic functionality for selecting DOM nodes based on CSS3 selectors
...
The design should more or less be in place. There is still a lot of things
missing but it should actually be enough for using it in a simple RSS renderer.
Amongst several things, :nth-* pseudo-classes and :not() syntax is not in
place.
2005-12-19 03:44:18 +01:00