Arseny Kapoulkine
444963e269
Fix error handling in xml_document::save_file
...
There were two conditions under which xml_document::save_file could
previously return true even though the saving failed:
- The last write to the file was buffered in stdio buffer, and it's that
last write that would fail due to lack of disk space
- The data has been written correctly but fclose failed to update file
metadata, which can result in truncated size / missing inode updates.
This change fixes both by adjusting save_file to fflush before the check,
and also checking fclose results. Note that while fflush here is
technically redundant, because it's implied by fclose, we must check
ferror explicitly anyway, and so it feels a little cleaner to do most of
the error handling in save_file_impl, so that the changes of fclose()
failing are very slim.
Of course, neither change guarantees that the contents of the file are
going to be safe on disk following a power failure.
2022-10-07 22:13:04 -07:00
Arseny Kapoulkine
0cb4f02579
Final tweaks after #522
...
This cleans up xml_attribute::set_value to be uniform wrt
xml_node::set_value and xml_text::set_value - for now we duplicate the
body since the logic is trivial and this keeps debug performance
excellent.
2022-10-07 21:46:27 -07:00
Arseny Kapoulkine
c342266fae
Merge pull request #522 from Ferenc-/followup-on-pr-490
...
Followup on pr 490
2022-10-07 21:42:41 -07:00
Ferenc Géczi
39e169285c
Add test for xml_attribute::set_value with size argument
2022-09-29 00:00:00 +00:00
Ferenc Géczi
1905284494
Add test for xml_node::set_value with size argument
2022-09-29 00:00:00 +00:00
Ferenc Géczi
d359402311
Add xml_text::set test with size set to substring
2022-09-29 00:00:00 +00:00
Ferenc Géczi
09e7cc9b1c
Add test for xml_text::set with size argument
2022-09-29 00:00:00 +00:00
Ferenc Géczi
f327371219
Add overloads with size_t type argument
...
* xml_node::set_value(const char_t* rhs, size_t sz)
* xml_text::set(const char_t* rhs, size_t sz)
Signed-off-by: Ferenc Géczi <ferenc.gm@gmail.com>
2022-09-29 18:26:05 +00:00
Arseny Kapoulkine
bcf483c3b7
Merge pull request #492 from KDAB/fix-default-visibility
...
Correctly set default visibility on non-windows compilers
2022-09-27 12:53:06 -07:00
Milian Wolff
173a263490
Correctly set default visibility on non-windows compilers
...
This fixes compilation of pugixml with -fvisibility=hidden. Without
this patch, one would get lots of unresolved symbols when consuming
pugixml as a shared library.
2022-09-25 11:37:48 +02:00
Arseny Kapoulkine
521b2cd854
Add issue templates to try to route questions to Discussions
2022-09-02 21:42:25 -07:00
Arseny Kapoulkine
27bc68ab45
Merge pull request #506 from brandl-muc/nullptr_for_msvc
...
Enable usage of nullptr for MSVC 16 and newer (MSVS 2010)
2022-08-04 08:46:13 -07:00
Matthäus Brandl
f7de324855
Enable usage of nullptr for MSVC 16 and newer (MSVS 2010)
2022-08-04 16:59:37 +02:00
Arseny Kapoulkine
3b5c1fb022
tests: Fix MSVC 2005 build
...
... I forgot we still support platforms without C99, 23 years later.
2022-07-21 21:17:17 -07:00
Arseny Kapoulkine
ab8453c572
tests: Use snprintf instead of sprintf
...
sprintf now results in a deprecation warning in Xcode 14 beta.
2022-07-21 20:51:26 -07:00
Arseny Kapoulkine
2639dfd053
Merge pull request #477 from zeux/compactopt
...
Optimize compact mode
2022-05-31 20:00:01 -05:00
Arseny Kapoulkine
0401559dde
Merge pull request #498 from zeux/fix-oom-safer
...
Fix memory leak during OOM in convert_buffer
2022-05-16 20:50:07 -07:00
Arseny Kapoulkine
832a4f4914
Use more idiomatic code in this codebase
2022-05-16 19:14:29 -07:00
Arseny Kapoulkine
33a75c734b
Fix memory leak during OOM in convert_buffer
...
This is the same fix as #497 , but we're using auto_deleter instead
because if allocation function throws, we can't rely on an explicit call
to deallocate.
Comes along with two tests that validate the behavior.
2022-05-16 19:12:52 -07:00
Arseny Kapoulkine
ec851bb18d
Merge pull request #497 from TodorHryn/master
...
Fix memory leak
2022-05-16 19:05:29 -07:00
TodorHryn
6fbf32140b
Fix memory leak
2022-05-16 13:21:20 +03:00
Viktor Govako
effc46f0ed
Added bool set_value(const char_t* rhs, size_t sz).
2022-04-13 12:25:01 +03:00
Arseny Kapoulkine
363ebdde91
Merge pull request #482 from zeux/fix-msvc-test
...
tests: Fix MSVC 2022 build
2022-02-15 21:12:03 -08:00
Arseny Kapoulkine
c60ca94cdd
tests: Fix MSVC 2022 build
...
Instead of trying to detect if we can safely use random shuffle simply reimplement it ourselves.
The quality of the RNG is not essential for these tests.
2022-02-15 20:23:05 -08:00
Arseny Kapoulkine
dd50fa5b45
Fix PUGIXML_VERSION macro
...
Also make sure the line shows up in grep when using the current version
number.
Fixes #478 .
v1.12.1
2022-02-10 08:36:19 -08:00
Arseny Kapoulkine
2fa9158b4f
Optimize compact mode: xml_text
2022-02-08 23:04:31 -08:00
Arseny Kapoulkine
fad2d5e4ef
Optimize compact mode: xml_attribute/xml_node implementation
2022-02-08 23:00:17 -08:00
Arseny Kapoulkine
f388c465dd
Optimize compact mode: reuse access in insert/remove
2022-02-08 22:44:31 -08:00
Arseny Kapoulkine
314baf6605
docs: Regenerate HTML documentation
v1.12
2022-02-08 20:09:10 -08:00
Arseny Kapoulkine
eb918f2078
docs: Update manual with 1.12 changelog
2022-02-08 19:59:44 -08:00
Arseny Kapoulkine
25c4fb74a8
Update copyright year to 2022
2022-02-08 19:58:58 -08:00
Arseny Kapoulkine
c9e219c17b
Update version to 1.12
2022-02-08 19:56:41 -08:00
Arseny Kapoulkine
9ba92a7fa7
Restore compatibility with WinCE
...
WinCE lacks most recent CRT additions to MSVC; we used to explicitly disable specific sections
of code, but it's more comprehensive to just specify that the CRT is from MSVC7 instead of MSVC8.
Fixes #401
2022-02-08 19:19:34 -08:00
Arseny Kapoulkine
6ce48ec379
Merge pull request #468 from appls/master
...
Add support for Visual Studio 2022 with Platform Toolset v143.
2022-02-08 12:43:53 -08:00
Arseny Kapoulkine
428606b3c1
Create SECURITY.md
...
Fixes #475
2022-02-06 09:13:33 -08:00
tobias
64de196ba9
Fix path.
2022-01-21 15:56:25 +01:00
tobias
bd90579718
Add missing build script and test script entries for appveyor.
2022-01-21 15:44:39 +01:00
tobias
16a4f382ac
Add missing appveyor test config for Visual Studio 2022.
2022-01-21 15:30:45 +01:00
tobias
bc2448afbb
Add support for Visual Studio 2022 with Platform Toolset v143.
2022-01-21 15:06:27 +01:00
Arseny Kapoulkine
9e382f9807
Merge pull request #436 from zeux/zeux-patch-1
...
Set CMP0091 CMake policy
2021-08-07 19:06:12 -07:00
Arseny Kapoulkine
f1fbd707f1
Set CMP0091 CMake policy
...
This allows the correct use of runtime library override.
Fixes #412
2021-08-07 09:57:21 -07:00
Arseny Kapoulkine
a5991972ba
Merge pull request #426 from bjornblissing/feature/cmake_pugiconfig
...
Add Cmake options for pugiconfig.hpp options
Fixes #387
Closes #388
2021-08-07 09:54:18 -07:00
Arseny Kapoulkine
c624c7a8bd
Update CMakeLists.txt
...
Remove memory configuration options and rely on automatic detection of long long
2021-08-07 09:51:54 -07:00
Arseny Kapoulkine
8bd209fb8b
docs: Update manual to be more explicit about save_file return
...
The function returns true on success and false on failure.
2021-07-09 17:27:01 -07:00
Arseny Kapoulkine
657619962f
Merge pull request #431 from justinkb/master
...
Fix include in test_document.cpp when building against libc++. The _GLIBCXX_HAVE_UNISTD_H relies on pugixml and its tests being built against libstdc++, with LLVM's libc++ this won't be defined
2021-06-30 14:28:44 -07:00
Paul Mulders
81274bb026
Fix include in test_document.cpp when building against libc++
2021-06-30 23:07:54 +02:00
Arseny Kapoulkine
37eddaa0b2
Update .codecov.yml
...
Mark "project" check as information and disable "patch" check.
2021-06-30 13:11:45 -07:00
Björn Blissing
e7eae035ff
Store definitions in variable to avoid duplication
...
Store compile definitions in variable to avoid duplicated generator
expressions.
2021-06-28 19:51:20 +02:00
Björn Blissing
52a7981b85
Make some compile definitions public
...
Moved needed defines to public section of target_compile_definitions.
2021-06-28 13:36:55 +02:00
Björn Blissing
92ac6ac1d9
Update github action to trigger defines via CMake
...
Use options via explicit CMake defines, instead of calling them from
the generic PUGI_BUILD_DEFINES variable.
2021-06-28 13:17:06 +02:00