summaryrefslogtreecommitdiffstats
path: root/include/plist
AgeCommit message (Collapse)AuthorFilesLines
2024-01-29Fix PLIST_API definitionsGravatar Nikias Bassen1-10/+4
2023-05-20Add an explicit PLIST_FORMAT_NONE valueGravatar Nikias Bassen1-0/+1
2023-05-13Windows: Use winsock2.h instead of sys/time.h when using MSVCGravatar Nikias Bassen1-0/+4
2023-05-13Move PLIST_API to the headersGravatar Nikias Bassen1-91/+107
2023-05-05Update doxygen config and document undocumented macrosGravatar Nikias Bassen1-2/+13
2023-04-24Add a PLIST_OPT_NONE value to plist_write_options_tGravatar Nikias Bassen1-0/+1
2023-04-21Remove unnecessary const to silence compiler warningGravatar Nikias Bassen2-2/+2
2023-04-21C++: Remove deprecated Insert()Gravatar Nikias Bassen1-1/+0
2023-04-21C++: Add dictionary and array size methodGravatar Nikias Bassen2-0/+2
Thanks @Cryptiiiic for the contribution.
2023-04-19Remove deprecated plist_dict_insert_item()Gravatar Nikias Bassen1-12/+0
2023-04-19Add plist_read_from_file() to interface, update plist_from_memory()Gravatar Nikias Bassen1-2/+21
plist_read_from_file() is a convenience function that will open a given file, checks its size, allocates a buffer large enough to hold the full contents, and reads from file to fill the buffer. Then, it calls plist_from_memory() to convert the data to plist format. A (breaking) change had to be made so that plist_from_memory() will also return the parsed format in its 4th argument (if non-NULL).
2023-04-16Add new output-only formats and Define constants for the different plist formatsGravatar Nikias Bassen1-8/+91
This commit introduces constants for the different plist formats, and adds 3 new human-readable output-only formats: - PLIST_FORMAT_PRINT: the default human-readable format - PLIST_FORMAT_LIMD: "libimobiledevice" format (used in ideviceinfo) - PLIST_FORMAT_PLUTIL: plutil-style format Also, a new set of write functions has been added: - plist_write_to_string - plist_write_to_stream - plist_write_to_file Plus a simple "dump" function: - plist_print See documentation for details.
2023-02-07Fix build without --enable-debugGravatar Nikias Bassen1-0/+1
2023-02-07Add function to interface to allow enabling/disabling error/debug output for ↵Gravatar Nikias Bassen1-0/+7
the format parses This makes the `-d` option work in plistutil that wasn't doing anything
2023-02-03Add new plist_sort() functionGravatar Nikias Bassen1-0/+8
2023-02-03Add lowercase begin/end iterator functionsGravatar Daniel2-0/+8
... for Dictionary and Array
2023-02-03Add PList::Array iterator member functionsGravatar Daniel1-0/+7
... returning both iterators and const_iterators: * PList::Array::Begin() * PList::Array::End()
2023-01-16Rename PLIST_UINT to PLIST_INT and add plist_new_int() and plist_get_int_val()Gravatar Nikias Bassen2-13/+74
This properly supports getting and setting signed or unsigned integer values. Also, a new helper function plist_int_val_is_negative() was added to determine if a given #PLIST_INT node has a negative value or not. The old type PLIST_UINT is defined as a macro with the value of PLIST_INT for backwards compatibility. This commit also adds int vs. uint support to the C++ interface, and the python bindings in a hopefully useful way.
2023-01-08Add support for OpenStep plist formatGravatar Nikias Bassen1-0/+24
2022-02-07docs: Fix parameter and type names for doxygenGravatar Nikias Bassen1-8/+11
2021-12-23Add support for JSON formatGravatar Nikias Bassen1-7/+36
2021-12-22Add a return value to plist_to_* and plist_from_* functionsGravatar Nikias Bassen1-5/+19
This way it can be easier determined why an import/export operation failed instead of just having a NULL result.
2021-12-19Add support for PLIST_NULL typeGravatar Nikias Bassen1-10/+20
2021-12-19Add new plist_mem_free() functionGravatar Nikias Bassen1-14/+20
Thanks to @azerg for bringing this to my attention. Instead of having multiple (internally identical) plist_*_free() functions, this commit introduces a single plist_mem_free() that can be used to free the memory allocated by plist_to_xml(), plist_to_bin(), plist_get_key_val(), plist_get_string_val(), and plist_get_data_val(). Note: This commit REMOVES plist_to_bin_free() and plist_to_xml_free().
2021-06-22[clang-tidy] cpp: Turn reference operators to constGravatar Rosen Penev10-10/+10
Found with cppcoreguidelines-c-copy-assignment-signature Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-06-03c++: Fix inconsistent declarationsGravatar Rosen Penev3-4/+4
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-05-11Add plist_*_val_compare, plist_*_val_contains, etc. for the respective node ↵Gravatar Nikias Bassen1-0/+183
types ... except container node types like PLIST_ARRAY or PLIST_DICT.
2019-11-07Add plist_get_data_ptr() and plist_get_string_ptr() to the interfaceGravatar Nikias Bassen1-0/+26
2019-11-07Add plist_to_bin_free() and plist_to_xml_free() functions that free memory ↵Gravatar Nikias Bassen1-0/+14
allocated by plist_to_bin()/plist_to_xml()
2019-07-07Add PList::Dictionary::const_iteratorGravatar Alexander Böhn1-0/+4
... and const versions of three member functions, each returning const_iterator: * Plist::Dictionary::Begin() * PList::Dictionary::End() * PList::Dictionary::Find()
2019-05-20Add plist_dict_item_get_key() to allow retrieving the key node for a given ↵Gravatar Nikias Bassen1-2/+10
item of a #PLIST_DICT
2019-05-19Add plist_array_item_remove() to allow removing an array's child node ↵Gravatar Nikias Bassen1-0/+8
without relying on the index
2019-05-19plist_array_get_item_index(): return UINT_MAX instead of 0 when node can't ↵Gravatar Nikias Bassen1-1/+1
be found
2019-01-21headers: Don't redefine uint*_t for newer versions of MSVCGravatar Nikias Bassen1-1/+1
2019-01-21plist: Add iterator for #PLIST_ARRAY nodesGravatar Nikias Bassen1-9/+37
Similar to #PLIST_DICT, an iterator can now be used for #PLIST_ARRAY nodes. Get an iterator with plist_array_new_iter() and use plist_array_next_item() to iterate over the elements.
2016-11-10Add new PLIST_IS_* helper macros for the different plist node typesGravatar Nikias Bassen1-0/+14
Instead of e.g.: if (plist_get_node_type(plist) == PLIST_STRING) you can now write: if (PLIST_IS_STRING(plist))
2016-10-22Remove libxml2 dependency in favor of custom XML parsingGravatar Nikias Bassen1-13/+0
2016-05-12Implement plist_from_memory()Gravatar Christophe Fergeau1-0/+11
Rather than having everyone reimplement binary/XML plist detection by looking at the first bytes of the plist content, it's better to do this detection in libplist and hide that internal detail from library users.
2016-05-12Add plist_is_binary()Gravatar Christophe Fergeau1-0/+13
It can be useful if one needs to know what type of plist a memory buffer contains.
2016-04-20Move libxml cleanup code to a plist_cleanup methodGravatar Frederik Carlier1-0/+13
2014-10-03Avoid exporting non-public symbolsGravatar Nikias Bassen1-59/+52
2014-09-26plist.h: Move deprecation marker before function declaration to make ↵Gravatar Nikias Bassen1-1/+2
non-gcc/clang compilers happy
2014-09-26C++: Add missing cstddef include to Node.hGravatar Nikias Bassen1-0/+1
2014-09-20Added const to Array.GetSize(), and to 3 Node methods.Gravatar Aaron Burghardt2-4/+4
2014-09-20Change Clone() to be const, which required constructors with const ↵Gravatar Aaron Burghardt11-33/+34
references and a const GetValue().
2014-08-06Properly rename header guards according to C++ standardGravatar Nikias Bassen12-36/+36
2014-05-21Move deprecation marker also for C++ API for better compiler outputGravatar Martin Szulecki1-1/+1
2014-05-20Move deprecation marker after the function declaration for better compiler ↵Gravatar Nikias Bassen1-1/+1
output
2014-05-20Removed plist_set_type() as it should not be used.Gravatar Nikias Bassen1-8/+0
2014-05-20Redo PLIST_WARN_DEPRECATED macro to work with older llvm/clangGravatar Martin Szulecki2-10/+32