- Oct 18, 2019
-
-
Isabella Muerte authored
-
- Oct 06, 2019
-
-
Isabella Muerte authored
-
Isabella Muerte authored
-
- Oct 01, 2019
-
-
Isabella Muerte authored
The block of code can be removed in the future if CMake 3.15 ever becomes the minimum
-
Isabella Muerte authored
Move pugixml-config.cmake.in to scripts/ to prevent polluting the root
-
- Sep 28, 2019
-
-
Isabella Muerte authored
New Features: pugixml-shared and pugixml-static are "always" available, but not always built. This allows downstream projects to still use them, and to make sure our configurations are correct regardless of if they are being built. They are not always installed however. pugixml-shared and pugixml-static have ALIAS libraries of pugixml::shared and pugixml::static respectively. These names are also respected in the `find_package(pugixml CONFIG)` generated files, so its safe to use pugixml in a CMake project regardless of whether it is installed locally, or if its a subproject via `add_subdirectory`. pugixml will automatically select the correct library type based on BUILD_SHARED_LIBS. A pugixml::pugixml ALIAS is also available. CMAKE_MSVC_RUNTIME_LIBRARY from CMake 3.15 has been backported. CMake will now rely on generator expressions (a powerful abstraction in large projects with many subdirectories) for most work. This offloads work from the single-threaded configure stage to the multithreaded generation stage. pugixml now uses CTest as the runner. Some settings are automatically disabled if pugixml is used as a subdirectory. These are still able to be manually set, but are hidden from folks who choose to use CMake GUI.
-
Isabella Muerte authored
Bump CMake minimum to 3.4 pugixml no longer requires a C compiler to be found or set to compile correctly. This speeds up configuration and building on windows. Begin laying groundwork to backport MSVC_RUNTIME_LIBRARY property
-
- Sep 22, 2019
-
-
Tuan Anh Tran authored
Fixes #285
-
- Sep 21, 2019
-
-
Arseny Kapoulkine authored
This keeps src/ folder clean of auxiliary files only required for special builds; note that CMakeLists.txt already depends on scripts/ (specifically for pkgconfig setup).
-
- Sep 19, 2019
-
-
lady mesh authored
Closes #294
-
- Sep 18, 2019
-
-
Arseny Kapoulkine authored
The newly added tests make sure that during node/attribute destruction we deallocate a few memory pages; this makes sure that we don't read node data after it's being destroyed. Also clean up formatting/style in the remove_* implementation a bit.
-
Tuan Anh Tran authored
These functions remove all attributes / child nodes in bulk which is faster than removing them one at a time.
-
- Sep 16, 2019
-
-
Wolfgang Stöggl authored
-
Arseny Kapoulkine authored
Migrate from licenseUrl to license since licenseUrl is deprecated and fix grammar for VS version list.
-
- Sep 12, 2019
-
-
Arseny Kapoulkine authored
Update changelog and regenerate HTML documentation.
-
Arseny Kapoulkine authored
According to XML spec, > sometimes needs to be escaped in PCDATA (when it occurs as a ]]> pattern), but it doesn't need to be escaped in attribute values. Contributes to #272.
-
Arseny Kapoulkine authored
When using double quotes for attributes, we don't need to escape '; when using single quotes, we don't need to escape ". This changes behavior to match 1.9 by default (where we don't escape '). Contributes to #272.
-
Arseny Kapoulkine authored
Note: this chang also updates PUGIXML_VERSION macro to allow for double-digit minor versions; this preserves the continuity of versions so PUGIXML_VERSION >= 190 will still work.
-
- Sep 09, 2019
-
-
Joel Andres Granados authored
Create visual studio projects that are vs2019 compliant. * nuget_build.ps1 : Introduce a new argument that will define how we implement the nuget build. For now we accept 201{9,7.5.3} as possible argument values. * pugixml_vs2019{,_static}.vcxproj : Add two visual studio projects that build pugi with the latest SDK and build tools * appveyor.yml - Add Visual Studio 2019 to build targets - Add Visual Studio 201{9,3,5} to build_scripts. And call nuget_build.ps1 with a new argument. - Add Visual Studio 2019 to the test_scripts.
-
- Aug 21, 2019
-
-
Wolfgang Stöggl authored
- Typos were found by codespell v1.15.0
-
Arseny Kapoulkine authored
Self-assignment generates a Wself-assign-overloaded warning.
-
- Aug 04, 2019
-
-
Matan Nassau authored
appending the suffix to the build product need not be a function of whether CMAKE_CONFIGURATION_TYPES is set. for example, having two ninja build trees---one for debug and another for release---is a fine use-case for USE_POSTFIX.
-
- Jul 26, 2019
-
-
Artur Leonov authored
-
- Jun 19, 2019
-
-
m-naumann authored
This change adds format_attribute_single_quote flag that uses single quotes (`'`) instead of double quotes (`"`) for formatting attribute values. Internal quotation marks are escaped using `"` and `'`.
-
- Jun 09, 2019
-
-
Arseny Kapoulkine authored
std::random_shuffle is removed in current standard
-
denchat authored
-
denchat authored
use <random> 's generator and std::shuffle instead
-
- Mar 17, 2019
-
-
Arseny Kapoulkine authored
Also split one-liner if/for loops for better readability and coverage.
-
Arseny Kapoulkine authored
Remove contrib folder
-
- Mar 14, 2019
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
This change removes contrib folder since it doesn't seem very useful; Natvis scripts can and should go to scripts/ along with project files. foreach.hpp is supporting a severely outdated BOOST_FOREACH construct; in C++11 ranged for loop can be used with xml_node::children/attributes, and BOOST_FOREACH can work with these as well. foreach.hpp was also accidentally licensed as public domain which isn't very helpful when the actual library is MIT. We could fix the license but it seems better to just remove it. Fixes #264.
-
- Mar 09, 2019
-
-
Arseny Kapoulkine authored
Also fix code style.
-
Arseny Kapoulkine authored
Includes wording fixes and format_skip_control_chars
-
Arseny Kapoulkine authored
format_skip_control_chars
-
- Mar 08, 2019
-
-
Yan Pas authored
-
- Mar 07, 2019
-
-
Yan Pashkovsky authored
-
- Feb 28, 2019
-
-
WheretIB authored
-
- Feb 27, 2019
-
-
Arseny Kapoulkine authored
We now have two tests: one tests behavior when we run out of space when appending the node set (in which case the append fails), another one tests behavior when we run out of space when filtering the node set (in which case the set still contains redundant data).
-
Arseny Kapoulkine authored
Given an unsorted sequence, remove_duplicates would sort it using the pointer value of attributes/nodes and then remove consecutive duplicates. This was problematic because it meant that the result of XPath queries was dependent on the memory allocation pattern. While it's technically incorrect to rely on the order, this results in easy to miss bugs. This is particularly common when XPath queries use union operators - although we also will call remove_duplicates in other cases. This change reworks the code to use a hash set instead, using the same hash function we use for compact storage. To make sure it performs well, we allocate enough buckets for count * 1.5 (assuming all elements are unique); since each bucket is a single pointer unlike xpath_node which is two pointers, we need somewhere between size * 0.75 and size * 1.5 temporary storage. The resulting filtering is stable - we remove elements that we have seen before but we don't change the order - and is actually significantly faster than sorting was. With a large union operation, before this change it took ~56 ms per 100 query invocations to remove duplicates, and after this change it takes ~20ms. Fixes #254.
-
Arseny Kapoulkine authored
This test is very sensitive to the particular implementation of union aggregation; for now lets disable this. We need a more robust way to test union allocation failures.
-