Commit graph

86 commits

Author SHA1 Message Date
Vadim Zeitlin
63a40637eb Make wxXmlNode::GetDepth() parameter const
There is no need to require a non-const pointer here.

Closes #24317.
2024-02-16 14:24:40 +01:00
Randalphwa
38d8980283 Add optional wxXmlParseError to wxXmlDocument::Load()
If a pointer to the structure is passed in to Load(), it will be filled
in if a parsing error occurs.

Closes #24215.
2024-01-19 02:55:54 +01:00
Vadim Zeitlin
8bb8eb5108 Increase buffer size in wxXmlDocument::Load()
The 1KB buffer used before was really too small and should have been
increased to at least 4KB, but increase it to 16KB as it should do no
harm neither.
2024-01-01 22:08:28 +01:00
Vadim Zeitlin
20845d85a5 Deprecate "encoding" parameter of wxXmlDocument ctor and Load()
This parameter wasn't used for anything as it specified the encoding of
the data contents in memory and not the encoding of the XML file as
might be believed, so it only created unnecessary confusion.

See #24167.
2024-01-01 22:08:28 +01:00
Vadim Zeitlin
0b049be4b7 Use unique_ptr<> in wxXmlDocument
Replace manual use of raw pointer with std::unique_ptr<>.

No real changes.
2024-01-01 20:54:08 +01:00
Vadim Zeitlin
2a5eac26f4 Remove unnecessary calls to wxDELETE()
Replace them with just calls to delete as it doesn't matter if the
pointer is null or not in all these cases and using just "delete" is
more clear.
2024-01-01 20:54:08 +01:00
Vadim Zeitlin
326876eb60 Initialize wxXmlDocument::m_docNode in its declaration too
Similar to the previous commit.
2024-01-01 20:54:08 +01:00
Vadim Zeitlin
08ef52671f Initialize wxXmlDocument::m_fileType and m_eol in declaration
This is simpler and more clear than calling SetFileType() from all
ctors.

Also m_eol
2024-01-01 20:53:53 +01:00
Vadim Zeitlin
7f6d85d60b Remove trivial CharToString() from wxXML code
Just use wxString::FromUTF8Unchecked() directly.

Note that Expat strings are always (valid) UTF-8 strings.
2024-01-01 20:30:03 +01:00
Vadim Zeitlin
efc943b59d Remove unused wxXmlParsingContext::conv member
This pointer was always null since the changes of 4519d8e08a (Remove
wxUSE_UNICODE checks as they're always true now, 2022-10-27), so remove
it completely.
2024-01-01 20:29:03 +01:00
Vadim Zeitlin
a4e8e7066d Replace all remaining occurrences of wxScopedPtr
Use std::unique_ptr<> in the library code instead of the legacy wx
class.
2023-03-06 23:53:13 +01:00
Vadim Zeitlin
4519d8e08a Remove wxUSE_UNICODE checks as they're always true now
Also remove all code guarded by "#if !wxUSE_UNICODE".
2022-10-27 19:43:30 +02:00
Vadim Zeitlin
4f4c5fcfdf Use nullptr instead of NULL in the code and documentation
This is a combination of running clang-tidy with modernize-use-nullptr
check for some ports (GTK, X11, OSX) and manual changes to the ports for
which it couldn't be used easily (MSW, DFB) and also manually updating
the docs.

Also replace NULL with null or nullptr in the comments as this is more
consistent with the use of nullptr in the code and makes it simpler to
grep for the remaining occurrences of NULL itself.

And also use null in the assert messages.

Only a few occurrences of "NULL" are still left in non-C files, mostly
corresponding to unclear comments or string output which it might not be
safe to change.
2022-10-18 01:25:25 +02:00
Artur Wieczorek
5e2da5a106 Get rid of v2.8 code 2022-08-02 08:26:29 +02:00
Tim Stahlhut
c69ee439d9 Stop using wxWidgets 1.xx wxString compatibility functions
Replace them with std::string-like equivalents when possible (i.e.
replace Length() with length(), IsNull() with empty()) or, at least,
with wx 2 functions if not (e.g. Remove() with Truncate(), First() with
Find(), LowerCase() with MakeLower() etc).

Closes #22638.
2022-07-24 16:25:29 +02:00
PB
f57f214122 Remove BCC-specific hdrstop pragma from everywhere 2020-10-12 21:58:37 +02:00
Adrian DC
11e5413558 wx/xml: Implement line-ending modes for xml saves
* Add 'wxTextFileType m_fileType' to hold the type
 * Add 'wxString m_eol' to hold the end of lines string

 * Add SetFileType() and GetFileType() to set and get the type
 * Add GetEOL() to get the end of lines wxString

 * Backwards compatibility preserved by using wxTextFileType_Unix

Change-Id: I3e8547b377e2c4060a3a2d97c299a08ea2c0a376
Signed-off-by: Adrian DC <radian.dc@gmail.com>
2017-05-30 14:31:59 +02:00
Nick Matthews
d13278ecc3 Add support for DOCTYPE to wxXmlDocument.
Allow retrieving the DOCTYPE specified in an existing document as well as
specifying the DOCTYPE to use when writing a new one.

Closes #13779.
2015-04-26 15:36:48 +02:00
Vadim Zeitlin
41b1ed9c2e No real changes, just replace wxT() with wxS() in wxXML code.
See #13779.
2015-04-26 15:36:48 +02:00
Vadim Zeitlin
401b8a8fe3 No changes, just remove an extra semicolon in wxXmlDocument code.
See #13779.
2015-04-26 15:36:48 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
9b237f109c Fix wxXmlNode self-assignment.
Don't lose the node contents if it's assigned to itself.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 21:45:25 +00:00
Vadim Zeitlin
0b3e395a5c Fix memory leak in wxXmlNode::operator=().
We must delete all children and attributes in the node being overwritten and
not just the first one of each.

Add a unit test exercising this code to be able to check that valgrind doesn't
report memory leak any more after the fix.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73990 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-05-15 20:01:58 +00:00
Václav Slavík
527d2d2d47 Add check to prevent creation of element wxXmlNodes with content data.
Just like in the DOM, only text, ctype etc. nodes have textual content,
elements don't.

See #13297.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68283 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-07-16 10:04:48 +00:00
Dimitri Schoolwerth
a1b806b982 Replaced Ok() occurrences with IsOk() throughout trunk.
Additionally renamed wxOSX' private wxNativePrinterDC::Ok() function to IsOk().

Didn't deprecate the various Ok() functions: given the amount of changes already introduced in 3.0 a trivial one like this seems more suitable for after 3.0.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-05-03 16:29:04 +00:00
Vadim Zeitlin
6f24b81707 Fix wxXmlDocument::SetRoot() broken by recent changes.
Support for wxXML_PI_NODE introduced in r67346 broke SetRoot() and, because of
this, saving XML documents.

Correct this and add a unit test for this method.

Closes #13135.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67519 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-17 00:09:45 +00:00
Vadim Zeitlin
cee8636e94 Add support for elements preceding the document node in wxXML.
This is mainly useful for parsing and generating processing instructions but
can be used for any kind of elements, e.g. also comments, occurring before the
document node in XML documents.

Closes #11593.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-03-30 14:16:19 +00:00
Vadim Zeitlin
ccec90930c Add wxVersionInfo and functions returning it for 3rd party libraries.
Add simple wxVersionInfo class holding the version information.

Also add GetLibraryVersionInfo() static method to wx{JPEG,PNG,TIFF}Handler,
wxStyledTextCtrl and wxXmlDocument classes and wxGetZlibVersionInfo() and
wxGetLibraryVersionInfo() global functions using it.

Closes #12690.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-25 00:53:44 +00:00
Julian Smart
f13d956e6a Removed test code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65765 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-05 06:33:34 +00:00
Julian Smart
30f6914ba1 Added a flag suppressing node content conversion when saving to XML.
This helps improve the extremely poor performance of XML saving if
you have, for example, hex data that does not need conversion.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-05 06:17:22 +00:00
Václav Slavík
926649a996 Fix attributes escaping when writing XML.
wxXmlDocument didn't correctly escape some characters that the spec says
must be escaped. Behaves correctly now.

Fixes #12275.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65192 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-04 14:57:30 +00:00
Václav Slavík
936759a463 Fixed XML parser error text formatting.
XML_GetCurrentLineNumber() returns int in some versions of Expat and
unsigned long (or even uint64_t) in other versions. Just cast the value
to int so that it works correctly with all versions.

Fixes #12196.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-03 14:24:31 +00:00
Václav Slavík
57cc93eb59 fixed wxXmlDocument::Save() to interpret the indentstep argument correctly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-04 21:19:40 +00:00
Vadim Zeitlin
a6cf6bcfb4 Don't append text following CDATA section to its node itself.
Reset wxXmlParsingContext::lastAsText flag when CDATA section ends to avoid
appending the text following it to its node. Instead new text nodes should be
created for it.

Also update the unit test to not work around the bug any more.

Closes #10552.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61759 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-24 21:42:27 +00:00
Vadim Zeitlin
a6ed278608 better check for conversion failure in OutputString(); use wxScopedCharBuffer::length() instead of strlen()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-13 17:49:56 +00:00
Vadim Zeitlin
664e13143e renamed wx/ptr_shrd.h to wx/sharedptr.h; split wx/ptr_scpd.h in wx/scopedptr.h and wx/scopedarray.h; extracted common parts into new wx/checkeddelete.h
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58634 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-03 12:01:46 +00:00
Vadim Zeitlin
9c39f4f538 fix substr() calls broken by r56215 (#10198)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-20 18:19:17 +00:00
Vadim Zeitlin
3232da9d90 work around Borland compilation errors
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-20 09:00:19 +00:00
Vadim Zeitlin
e767076e80 just return false instead of crashing if the document contents can't be converted to the target encoding (#10064)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-10 16:13:53 +00:00
Vadim Zeitlin
cc209a518f check that string passed to FromUTF8() is valid even in release build, this is safer; add a separate FromUTF8Unchecked() which can be used for maximal efficiency
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54721 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-19 19:59:59 +00:00
Václav Slavík
43a302f200 added wxXmlNode::InsertChildAfter and use it for (much) faster XML parsing (based on patch by Francesco Montorsi)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-30 10:27:19 +00:00
Václav Slavík
5e05df3c7f 1. fixed wxXmlNode::InsertChild() documentation to match the code
2. added tests for InsertChild()
3. simplified InsertChild() code without changing what it does

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52913 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-29 22:55:35 +00:00
Vadim Zeitlin
e13ce4a3d0 move Add/DeleteAttribute() implementations out of line to avoid deprecation warnings when including xml.h from user code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50008 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-11-16 23:34:21 +00:00
Václav Slavík
6e26d6b78c include line number information in wxXmlNode (based on patch #1803492 by Heikki Linnakangas)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-30 11:09:54 +00:00
Václav Slavík
cc24bf9192 wxXmlNode::GetAttribute's pointer argument must not be NULL, check for it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48929 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-24 22:09:06 +00:00
Václav Slavík
288b6107e1 renamed wxXmlProperty to wxXmlAttribute, plus implied method names changes (bug #1751761)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47450 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-14 10:07:41 +00:00
Václav Slavík
8650108199 don't use implicit wxString->char*/wchar_t* conversion, it will not be available in wxUSE_STL build in the future
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46391 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-10 17:42:41 +00:00
Václav Slavík
58227f65ca compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46086 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-17 06:17:29 +00:00
Václav Slavík
d6cb12871f fixed CDATA processing to convert the content to output charset, it should be treated just like text in this respect
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-16 22:35:17 +00:00