summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-17tests: Fix GCC warningArseny Kapoulkine
Fix "this decimal constant is unsigned only in ISO C90".
2015-10-17Fix -Wshadow warningArseny Kapoulkine
2015-10-17Fix MSVC6 header-only buildArseny Kapoulkine
name_sentry dtor results in multiple symbol definition errors in MSVC6.
2015-10-17Fix integer overflow detection with leading zerosArseny Kapoulkine
Since they don't contribute to the resulting value just skip them before parsing. This matches the behavior of strtol/strtoll and results in more intuitive behavior.
2015-10-17Use explicit tests in set_Name/set_valueArseny Kapoulkine
Node type enum is not used as an array index anywhere else; the code is not very readable and the value of this "optimization" is questionable. The conditions are arranged so that in all normal cases the first comparison returns true anyway.
2015-10-17Fix argument mismatch in integer parsingArseny Kapoulkine
The minneg argument is supposed to be the absolute value of the minimum negative representable number. In case of two-complement arithmetic, it's the same as the value itself but it's better to be explicit and negate the argument.
2015-10-17Add compact_hash_table assertionsArseny Kapoulkine
2015-10-17docs: Add a note about moving xpath_queryArseny Kapoulkine
2015-10-12Refactor output buffer encodingArseny Kapoulkine
Share the implementation for different encodings. We still need two functions because endian_swap on uint8_t is ambiguous...
2015-10-10docs: Regenerate HTML documentationArseny Kapoulkine
2015-10-10scripts: Use changelog URL as release notesArseny Kapoulkine
2015-10-10docs: Correct the acknowledgment sectionArseny Kapoulkine
2015-10-10scripts: Use /Z7 for NuGet packageArseny Kapoulkine
This avoids linker warning when building the final executable and we don't have to package the .PDB file.
2015-10-10tests: Fix version check :)Arseny Kapoulkine
2015-10-10Add .gitignoreArseny Kapoulkine
2015-10-10docs: Update changelog for 1.7Arseny Kapoulkine
2015-10-10Fix 'make release' after clean checkoutArseny Kapoulkine
2015-10-10Update version to 1.7Arseny Kapoulkine
2015-10-10scripts: Fix NuGet description formattingArseny Kapoulkine
2015-10-10scripts: Cleanup NuGet packagingArseny Kapoulkine
Move pugixml project file for VS2015 to scripts/ and unify the output file structure similar to old VS201x projects. Remove test projects and solution since they are not required for building. Provide more accurate information in the package script and handle build errors during package construction properly.
2015-10-10Merge branch 'master' of https://github.com/igagis/pugixml into nugetArseny Kapoulkine
2015-10-09tests: Add a test for empty xpath_query ctorArseny Kapoulkine
2015-10-09Refactor utf_decoder classesArseny Kapoulkine
Instead of functions with different names (e.g. decode_utf8_block), split utf_decoder class into multiple classes with ::process static function. This makes it easier to share code for decoding different encodings.
2015-10-08changed nuget name to pugixml without lib prefixIvan Gagis
2015-10-07Use correct type for lead in decode_utf16_blockArseny Kapoulkine
This does not affect correctness but makes code more uniform.
2015-10-07Refactor decode_utfN_block and decode_latin1_blockArseny Kapoulkine
Make sure the looping structure is the same as in decode_utf8_block.
2015-10-07Simplify file/stream loading flowArseny Kapoulkine
Instead of calling xml_document public functions just call implementation of load_buffer_inplace_own. This makes it so we only call reset() once during load_file/load.
2015-10-07Delete ReadMe.txtigagis
2015-10-07nuget package scriptsIvan Gagis
2015-10-07VisualStudio 2015 solution addedIvan Gagis
2015-10-06tests: Add a copy of header-only testArseny Kapoulkine
This makes sure we get linking errors whenever a symbol is not marked as inline in header-only mode.
2015-10-06Merge pull request #58 from Breush/patch-1Arseny Kapoulkine
Fixed missing PUGI__FN
2015-10-06Fixed missing PUGI__FNA. Breust
2015-09-23scripts: Enable C++11 in CMakeListsArseny Kapoulkine
We now make sure that in CMake builds we have long long support. This requires CMake 3.1 for target_compile_features. Fixes #53 (as long as packages use this CMake script... most of them do)
2015-09-21Fix parsing of integers that start with +Arseny Kapoulkine
This matches the format strtol supports.
2015-09-20Merge pull request #56 from zeux/travis-osxArseny Kapoulkine
Add OSX to Travis CI config
2015-09-20build: Reduce the build matrixArseny Kapoulkine
We don't need to test gcc on OSX
2015-09-20build: Add OSX to Travis configArseny Kapoulkine
2015-09-20Fix signed/unsigned warnings for MSVCArseny Kapoulkine
2015-09-20tests: Add tests for integer overflow during conversionArseny Kapoulkine
These tests are only testing attribute as_int in hopes that xml_text uses the same underlying implementation (which it does).
2015-09-20Implement custom string to integer conversionArseny Kapoulkine
This makes conversion significantly faster and removes more CRT dependencies; in particular, to support long long pugixml only requires the type itself (and the division operator...). New implementation is up to 3x faster on short decimal numbers. Note that unlike the old implementation, new implementation correctly handles overflow and underflow and clamps the value to the representable range. This means that there are some behavior changes - e.g. previously as_uint on "-1" would return INT_MAX instead of 0. In addition to CRT issues, for platforms with 64-bit long old implementation incorrectly truncated from long to int or unsigned int, so even if CRT clamped the values the result would have been incorrect.
2015-09-20Remove extra const from operator= declarationArseny Kapoulkine
This does not really matter too much but it's better to be consistent.
2015-09-20Inline widen_ascii to get rid of an extra strlen callArseny Kapoulkine
Also since this function is only used once and is not defined in regular mode to avoid warnings this simplifies code a bit.
2015-09-20Eliminate redundant strlen calls during set_value/setArseny Kapoulkine
Since we use manual integer conversion we know the length of the string. This makes set_value(int) ~30% faster for 4-digit numbers.
2015-09-20Force callers of strcpy_insitu to compute string lengthArseny Kapoulkine
This makes it possible to avoid calling strlen if we already know the string size.
2015-09-20Implement integer to string conversion manuallyArseny Kapoulkine
This reduces the amount of non-standard C++ functionality pugixml may be using by avoiding sprintf with %lld; additionally this implementation is significantly faster (4-5x) than sprintf, mostly due to avoiding format string parsing and stream setup that commonly happens in CRT implementations. This comes at the expense of requiring long long division/remainder operations if PUGIXML_USE_LONG_LONG is defined which will surely bite me one day.
2015-09-19tests: Convert several files to Unix line endingsArseny Kapoulkine
They were still using Windows EOL by mistake
2015-08-25Update README.mdArseny Kapoulkine
2015-08-25build: Fix -o gcov optionArseny Kapoulkine
Also upload just pugixml.cpp.gcov to codecov to avoid issues the script has with old gcov.
2015-08-25build: Rework config=coverage to be more robustArseny Kapoulkine
Use find -exec instead of xargs to work around differences between xargs on OSX and Linux. Use -b option of gcov - for some reason gcov on Travis can't find .gcno files otherwise (old version?). And finally enable config=coverage again.