| Age | Commit message (Collapse) | Author | 
|---|
|  | 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. | 
|  | data/truncation.xml was corrupted at some point and was not actually valid.
Fix the file and make the test fail if we can't parse truncation.xml at all. | 
|  | With the current setup it successfully finds the (fixed) DOCTYPE buffer overrun
in ~50 minutes (on a single core). |