Age | Commit message (Collapse) | Author |
|
This test tests two important invariants:
- Every combination of write flags has to result in a valid document
- Parsing that document and saving the result has to result in identical output
We don't test all flags since parse_no_escapes can intentionally result in
malformed documents and other flags aren't relevant for node output.
Also note that we test both no-whitespace and whitespace version to make sure
we don't have unnecessary whitespace added during formatting.
|
|
Also add it to the changelog for 1.8
|
|
|
|
Setting this flag outputs start and end tag for every element, including empty
elements.
Fixes #118.
|
|
|
|
|
|
Split some lines into two and add braces in some places to make the code more
readable.
|
|
This keeps all code that creates document/allocator/page structures together.
|
|
The separate copy of allocator state in parser was meant to increase parsing
performance by reducing aliasing/indirection, but benchmarks against the
current source don't indicate that this is worthwhile.
Removing this simplifies the code slightly and makes it possible to move
compact hash table to the allocator.
|
|
|
|
Some compilers support move semantics but don't support ranged for.
|
|
MSVC 2010 supported move semantics (partially - but should be good enough for
our use case).
|
|
Do it in one place and set PUGIXML_HAS_MOVE if it's available.
|
|
VS 2013 supports C++11, but __cplusplus macro isn't updated, and it is 199711 so the old check always fails, even though the compiler supports c++11.
|
|
Add C++11 'override' specifier
|
|
|
|
|
|
|
|
docs: Fix broken link at quickstart page
|
|
|
|
Select correct suffix to use for pkg-config
|
|
Merge USEOWNSUBDIR and PKGCONFIG build flags; move the pkg-config source file
to scripts/.
|
|
|
|
Also creating a separate install directory under INCLUDE and LIB directories
|
|
Remove static pivot from NuGet autopkg.
|
|
|
|
This pivot seemed to be causing issues because the NuGet package thought it was actually dynamic.
|
|
|
|
scripts: Add VS2013 static builds to nuget package
|
|
|
|
|
|
|
|
Include more configurations in the Nuget package.
|
|
It interferes in a somewhat strange way with codecov reporting
|
|
While I grew to dislike references for this case, there are other functions in
the source that use references so switch to that for consistency.
|
|
|
|
|
|
This adds about 40 cycles for parsing <?xml version='1.0'?> declaration and
about 70 cycles for parsing <?xml version='1.0' encoding='utf-8'?>, as
measured on a Core i7, which should be negligible for all documents.
Fixes #16.
|
|
It is probably redundant given that we have -Wold-style-cast, but it's better
to warn about casts like this in case we ever need to remove the latter flag.
|
|
Fixes #99.
|
|
|
|
|
|
Put CMakeLists.txt in the project root.
|
|
Add vs2013 projects
|
|
|
|
Previously the page size was defining the data size, and due to additional
headers (+ recently removed allocation padding) the actual allocation was a bit
bigger.
The problem is that some allocators round 2^N+k allocations to 2^N+M, which can
result in noticeable waste of space. Specifically, on 64-bit OSX allocating the
previous page size (32k+40) resulted in 32k+512 allocation, thereby wasting 472
bytes, or 1.4%.
Now we have the allocation size specified exactly and just recompute the available
data size, which can in small space savings depending on the allocator.
|
|
When using format_raw the space in the empty tag (<node />) is the only
character that does not have to be there; so format_raw almost results in
a minimal XML but not quite.
It's pretty unlikely that this is crucial for any users - the formatting
change should be benign, and it's better to improve format_raw than to add
yet another flag.
Fixes #87.
|
|
Also rename auto_deleter_fclose to close_file.
|
|
Do not assume that fclose can be converted to int(*)(FILE*)
|
|
|