Age | Commit message (Collapse) | Author |
|
|
|
Instead of reallocating the string for every tree level just do two passes
over the ancestor chain.
|
|
as_utf8_end was used with std::string, where writing an extra zero-terminating
character should *probably* always work (at least if size is positive) but is
not ideal.
The only place that needed to zero-terminate was convert_path_heap.
|
|
|
|
Previously there was no guarantee that the tests that check for out of memory
handling behavior are actually correct - e.g. that they correctly simulate out
of memory conditions.
Now every simulated out of memory condition has to be "guarded" using
CHECK_ALLOC_FAIL. It makes sure that every piece of code that is supposed to
cause out-of-memory does so, and that no other code runs out of memory
unnoticed.
|
|
We currently don't allocate/modify any state so there are no issues with this.
|
|
This makes sure that no exception handling mechanisms are used if
PUGXML_NO_EXCEPTIONS is defined.
|
|
When parsing XPath variables, we need to perform a heap allocation; if it
fails, an xpath_exception instead of bad_alloc used to be thrown.
Now we throw the exception of a correct type so that xpath_exception means
'parsing error'.
|
|
|
|
This provides more coverage for #17.
|
|
|
|
|
|
Base directory is now using target basename.
|
|
This eliminates one more hardcoded version from the repo, yay!
|
|
|
|
|
|
It's almost done; the only remaining issue is that some section titles are too long.
|
|
|
|
|
|
|
|
|
|
Also minor wording fixes.
|
|
|
|
|
|
|
|
Users no longer need to #include "pugixml.cpp"
|
|
Mostly added correct quotation to changelog.
|
|
This is mostly done using regex replaces of original Quickbook markup, plus a
bit of manual fixup for multiple references to the single point from different
lines that AsciiDoc does not seem to handle.
|
|
Still need to replace [link ] with actual links.
Also a bunch of small fixes here and there.
|
|
|
|
Also remove redundant [lbr]
|
|
|
|
|
|
|
|
|
|
|
|
Quickstart should be reasonably complete; manual is still in progress
|
|
|
|
Disable/change some tests for some compilers; use binary float comparison
for early MSVC versions.
|
|
Rename PAGE_SIZE to page_size to avoid define conflict with Android SDK.
Minor fixes in several tests.
|
|
|
|
|
|
Simplify test source specification, disable built-in rules and suffixes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Previously we omitted extra whitespace for single PCDATA/CDATA children, but in
mixed content there was extra indentation before/after text nodes.
One of the problems with that is that the text that you saved is not exactly
the same as the parsing result using default flags (parse_trim_pcdata helps).
Another problem is that parse-format cycles do not have a fixed point for mixed
content - the result expands indefinitely. Some XML libraries, like Python
minidom, have the same issue, but this is definitely a problem.
Pretty-printing mixed content is hard. It seems that the only other sensible
choice is to switch mixed content nodes to raw formatting. In a way the code in
this change is a weaker version of that - it removes indentation around text
nodes but still keeps it around element siblings/children.
Thus we can switch to mixed-raw formatting at some point later, which will be
a superset of the current behavior.
To do this we have to either switch at the first text node (.NET XmlDocument
does that), or scan the children of each element for a possible text node and
switch before we output the first child.
The former behavior seems non-intuitive (and a bit broken); unfortunately, the
latter behavior can cost up to 20% of the output time for trees *without* mixed
content.
Fixes #13.
|