Jonas Fonseca
823c594524
Use ssize_t instead of size_t for length since it must carry a signed value
2006-01-28 03:24:16 +01:00
Jonas Fonseca
00c4e0bfa2
Do not attempt to read *string when string == scanner->end
...
There might be other places that needs to be reviewd for this.
2006-01-28 03:23:06 +01:00
Jonas Fonseca
d92a074e40
Fix parsing of '<a< b>' where the scanner didn't rewind to the proper place
...
Add test for this tag soup combo.
2006-01-28 03:21:27 +01:00
Laurent MONIN
5114c9d110
Trim trailing whitespaces.
2006-01-28 01:59:22 +01:00
Jonas Fonseca
e5e06764c4
Improve checks for incompleteness when parsing attributes
...
Check whether there are '=' and value tokens before handling them. If there
is any doubt the whole attribute structure is 'pushed back' into the
stream. That way incremental parsing will not add the value as a new
attribute because the name token was handled in the previous parsing run.
2006-01-28 01:40:56 +01:00
Jonas Fonseca
4ab1dde874
Preserve the scanner state when it is not the 'default' state
...
This is necessary to make it possible to resume parsing of element
attributes. Allows the incomplete string in the parsing state struct to
be unset.
2006-01-28 01:24:30 +01:00
Jonas Fonseca
c6e83d1d9c
Assert parsing depth >= parser stack depth
...
Like the comment says popping parsing nodes during incremental parsing
might trigger this.
2006-01-28 01:12:03 +01:00
Jonas Fonseca
9e7b0d4fa3
Remove assertion logic from parse_sgml_attributes()
...
They are getting out of hand and making it hard to use the function in
'unusual' situations (like when resuming parsing inside elements).
2006-01-28 01:09:05 +01:00
Jonas Fonseca
1e104afbba
Improve error checking when adding nodes
...
Fail with SGML_PARSER_CODE_MEM_ALLOC.
2006-01-28 01:05:42 +01:00
Jonas Fonseca
74728cab05
Also set the node subtype for <?xml-stylesheet?>
2006-01-28 01:00:28 +01:00
Jonas Fonseca
bccf5512d6
Force an incomplete token for quoted attribute values when there's no end
2006-01-28 00:56:48 +01:00
Jonas Fonseca
a2376609e3
Expand the testing of incremental parsing
...
There are still some bugs to resolve.
2006-01-28 00:50:06 +01:00
Jonas Fonseca
0f8aa77ebb
Add test for incremental SGML parsing
...
It is a loop that parses the same small document with various read sizes.
The sgml-parser program is updated to take --stdin option taking a the read
size as a required parameter.
2006-01-27 07:49:15 +01:00
Jonas Fonseca
b25cd27232
Add support incremental parsing
...
That is, add the last parts that saves and resumes previous incomplete
parsing states. Now the parsing stack push handler checks if the parent has
a resume flag set. When set, the incomplete fragment to resume is restored
and the new source fragment appended and parsing is continued.
2006-01-27 07:47:17 +01:00
Jonas Fonseca
9d91994f3c
Propone updating the scanner->state until incompleteness has been checked
...
That way the scanner state is meaningful when resuming during incremental
parsing.
2006-01-27 07:41:42 +01:00
Jonas Fonseca
afb45aace5
Add support for scanning comment endings such as '--!>' correctly
2006-01-25 18:18:01 +01:00
Jonas Fonseca
2eba71d95b
Add support for testing normalization using the DOM configuration module
2006-01-20 02:08:46 +01:00
Jonas Fonseca
cc61578fcb
Fix node pushing in walk_dom_nodes()
2006-01-20 02:07:24 +01:00
Jonas Fonseca
22e647813e
Fix DOM_CONFIG_NORMALIZE_WHITESPACE comment
2006-01-20 02:06:41 +01:00
Jonas Fonseca
7fe214fbb2
Fix text node appending; fix DOM configuration parser
2006-01-19 04:54:30 +01:00
Jonas Fonseca
fe43bf8a4f
Fix leaks in the DOM stack tracer
2006-01-19 04:51:33 +01:00
Jonas Fonseca
126ae8c764
#include dom/node.h instead of dom/stack.h
2006-01-19 04:50:10 +01:00
Jonas Fonseca
34b12d21bd
Upgrade to use dom_stack_codes in the callbacks
2006-01-17 16:58:19 +01:00
Jonas Fonseca
2cd151c5c5
Add parse_dom_config() which converts a textual config list to flags
2006-01-17 16:55:10 +01:00
Jonas Fonseca
1d52d67e50
Add get_dom_node_child() which searches for a node with given type
2006-01-16 07:11:02 +01:00
Jonas Fonseca
6c85c0f009
Add DOM configuration inspired module
...
It add support for normalizing a DOM document in various ways, such as
removing comments, converting CDATA section nodes to text nodes, cleanup
whitespace, etc.
Use it in the RSS renderer to sanitize the text to be rendered.
2006-01-16 05:12:34 +01:00
Jonas Fonseca
768f97c38e
Add get_dom_node_prev() which gets the previous sibling of a DOM node
2006-01-16 05:10:22 +01:00
Jonas Fonseca
4e6b05394d
ADD DOM_STACK_CODE_FREE_NODE so callbacks can remove nodes when popping
2006-01-16 05:09:45 +01:00
Jonas Fonseca
eecc22751d
Use dom_stack_code enum for dom_stack_callback_T
2006-01-16 00:55:58 +01:00
Jonas Fonseca
4a2cde1c00
Introduce dom_stack_code enum and use it for push_dom_node()
2006-01-16 00:40:51 +01:00
Jonas Fonseca
2748d043f9
Autogenerate .vimrc files and put the master in config/vimrc
...
This changes the init target to be idempotent: most importantly it will now
never overwrite a Makefile if it exists. Additionally 'make init' will
generate the .vimrc files. Yay, no more stupid 'added fairies' commits! ;)
2006-01-15 18:38:58 +01:00
Jonas Fonseca
082031c10c
Fix SGML parser test program
2006-01-14 12:44:06 +01:00
Jonas Fonseca
c8aa6c2360
Move struct sgml_parsing_state near the parsing state managing
2006-01-14 12:11:35 +01:00
Jonas Fonseca
e70b779366
Add code member to struct sgml_parser and simplify parsing state setup
...
parse_sgml() now just pushes a text node on the parsing state and the push
handler will now call parse_sgml_plain() and save the return code in
parser->code so parse_sgml() can return it. Much simpler.
2006-01-14 12:09:17 +01:00
Jonas Fonseca
0950996dd8
Change parse_sgml() to take buf+bufsize instead of DOM string
2006-01-14 11:32:11 +01:00
Jonas Fonseca
aecfb28711
Cleanup SGML info backends #includes and description
2006-01-14 08:07:00 +01:00
Laurent MONIN
5685221512
Trim trailing whitespaces.
2006-01-13 00:11:39 +01:00
Laurent MONIN
bdc59d5ac4
Store lib.o name in a variable named LIB_O_NAME.
2006-01-12 19:06:50 +01:00
Jonas Fonseca
2d80258f72
Mark doc'd headers with: /* API Doc :: <api-name> */
2006-01-11 11:03:59 +01:00
Jonas Fonseca
dd2516f597
Oops, someone added stuff he wuz not s'posed to
2006-01-09 14:11:29 +01:00
Jonas Fonseca
620730e642
Document the DOM scanner
2006-01-09 14:01:48 +01:00
Jonas Fonseca
3b166b0633
Document the DOM stack
2006-01-09 12:44:57 +01:00
Jonas Fonseca
938c8a80b4
Support more implicit markup of source files
2006-01-09 11:01:36 +01:00
Jonas Fonseca
db11b6452f
Fix a typo and a ref:[]
2006-01-09 01:20:03 +01:00
Jonas Fonseca
5b818b20ba
Use the new asciidoc code markup to document the DOM sgml parser
2006-01-08 23:36:07 +01:00
Jonas Fonseca
2f9c406ef1
Introduce add_to_dom_string() and turn init_dom_string() into its user
2006-01-08 03:40:54 +01:00
Jonas Fonseca
acb1f7e74d
Refactor computation of scanner error string length to get_sgml_error_end()
2006-01-07 23:51:19 +01:00
Jonas Fonseca
534a16fff1
Improve error detection
2006-01-07 23:40:21 +01:00
Jonas Fonseca
3835bf8449
A handful of fixes related to error detection
...
- Fix assertion failure by breaking the switch if an error token is next
when previous was a processing instruction.
- Fix <!notation parsing by skipping ident chars instead of spaces.
- Improve checking of processing instruction 'target'-end and what error
string is generated.
- For now put all of the processing instruction data in the error token.
- Remove a DBG()-print.
2006-01-07 05:18:43 +01:00
Jonas Fonseca
97f403a9d9
Add a test file for checking detection of errors by the SGML parser
2006-01-07 05:15:16 +01:00