summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2025-05-13Add plist_new_unix_date, plist_get_unix_date_val, plist_set_unix_date_val ↵Gravatar Nikias Bassen3-13/+60
functions These functions work with int64_t values representing a UNIX timestamp instead of using the 'MAC epoch'. They should be used instead of plist_new_date, plist_get_date_val, and plist_set_date_val, which are now marked deprecated and might be removed in a future version of libplist.
2025-05-12Fix plist_set_date_val to use correct size for data storageGravatar Nikias Bassen1-1/+1
Otherwise the internal assertion will trigger since the incorrect size will be checked against. Thanks to @michaelwright235, @guyingzhao, and others for pointing this out!
2025-04-06C++: Data: Add const char* constructorGravatar guyingzhao1-0/+5
2025-04-06C++: Add f/Front() and b/Back() to Array to access first/last elementGravatar guyingzhao1-0/+20
2025-04-06C++: Array: Add const Node& variants to Append, InsertGravatar guyingzhao1-3/+18
2025-04-06C++: Add = operator to String classGravatar Nikias Bassen1-0/+7
2025-04-06C++: Add const char* constructor to String classGravatar guyingzhao1-0/+5
2025-04-06C++: Add new Structure::FromMemory()Gravatar Nikias Bassen1-0/+13
2025-04-06C++: Explicitly initialize base class in copy constructorGravatar Nikias Bassen2-2/+2
2025-04-06C++: Fix bug in array_fill helper functionGravatar Nikias Bassen1-1/+3
2025-03-27Fix segmentation fault when calling plist_sort() on an empty dictionaryGravatar Nikias Bassen1-0/+3
Credit to @Anza2001
2025-03-01C++: Use `free()` instead of `delete` for C thingsGravatar Nikias Bassen5-12/+8
2025-03-01C++: Add more convenience functions to the interfaceGravatar guyingzhao1-2/+8
2025-03-01C++: Fix String::GetValue memory leaking and suport assignment of const char*Gravatar guyingzhao1-3/+8
2024-12-03Remove pthread dependencyGravatar Nikias Bassen1-2/+0
2024-11-29Add missing cast in UINT_TO_HOSTGravatar Duncan Ogilvie1-2/+2
2024-11-28Fix warnings on MSVCGravatar Duncan Ogilvie2-0/+8
2024-11-28Fix compilation on MSVCGravatar Duncan Ogilvie1-9/+57
2024-11-28Switch from detecting little endian (common) to detecting big endian (rare)Gravatar Duncan Ogilvie2-16/+14
This prevents a bug class where we bswap things when __LITTLE_ENDIAN__ is not defined. Almost all modern systems are little endian, so detecting __BIG_ENDIAN__ is a better strategy.
2024-11-28Switch to more generic global initializer methodGravatar Duncan Ogilvie1-74/+41
2024-05-14json: Allow e+/E+ in exponent as per RFC 8259Gravatar Nikias Bassen1-2/+4
2024-05-13Revert "Change API around #PLIST_DATA to use uint8_t instead of char arrays"Gravatar Nikias Bassen2-11/+11
This reverts commit a91f5740d100414a76959714b819422ee5b2d8a8.
2024-04-18Add PLIST_DICT convenience functions for different queries/operationsGravatar Nikias Bassen1-0/+245
2024-04-14Change API around #PLIST_DATA to use uint8_t instead of char arraysGravatar Nikias Bassen2-11/+12
This makes it more obvious that it is arbitrary data and not necessarily a string value.
2024-02-05Add a libplist_version() function to the interfaceGravatar Nikias Bassen1-0/+8
2024-01-29Fix PLIST_API definitionsGravatar Nikias Bassen12-6/+27
2023-12-12Prevent OOB access in plist_from_memoryGravatar Nikias Bassen1-2/+14
Credit to OSS-Fuzz
2023-08-30Prevent adding NULL items to array/dictionary nodesGravatar Nikias Bassen1-0/+12
Thanks to @tihmstar for pointing this out!
2023-06-15Plug memory leak in plist_write_to_stream()Gravatar Nikias Bassen1-0/+1
Thanks @beyonik for pointing this out!
2023-05-21Add explicit casts and fix return type mismatchesGravatar Nikias Bassen10-146/+152
2023-05-20Add an explicit PLIST_FORMAT_NONE valueGravatar Nikias Bassen1-2/+2
2023-05-14bplist: Move realloc from parse_unicode_node() into plist_utf16be_to_utf8()Gravatar Nikias Bassen1-11/+12
It is very confusing to handle the reallocation (buffer shrinking) outside of the actual conversion function.
2023-05-14Make sure function signatures match their declarations in the public headerGravatar Nikias Bassen2-7/+7
2023-05-13Windows: Use winsock2.h instead of sys/time.h when using MSVCGravatar Nikias Bassen1-1/+3
2023-05-13Add space before PRI* macros, some compilers do not like itGravatar Nikias Bassen6-18/+18
2023-05-13Move PLIST_API to the headersGravatar Nikias Bassen6-101/+91
2023-05-07Silence another false 'shadows builtin function' warning on MinGWGravatar Nikias Bassen1-0/+3
2023-05-07Silence false 'shadows builtin function' warning on MinGWGravatar Nikias Bassen1-0/+3
2023-05-07Silence more compiler warning on 32bit systemsGravatar Nikias Bassen1-22/+22
2023-05-05Silence compiler warning on 32bit systemsGravatar Nikias Bassen1-1/+1
2023-04-21Remove unnecessary const to silence compiler warningGravatar Nikias Bassen2-2/+2
2023-04-21C++: Remove deprecated Insert()Gravatar Nikias Bassen1-5/+0
2023-04-21C++: Add dictionary and array size methodGravatar Nikias Bassen2-0/+8
Thanks @Cryptiiiic for the contribution.
2023-04-21bplist: Fix offset range checkGravatar Nikias Bassen1-1/+1
Credit to OSS-Fuzz
2023-04-19Remove deprecated plist_dict_insert_item()Gravatar Nikias Bassen1-5/+0
2023-04-19Add plist_read_from_file() to interface, update plist_from_memory()Gravatar Nikias Bassen1-1/+51
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 Bassen9-6/+1538
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 Bassen4-0/+8
2023-02-07Add function to interface to allow enabling/disabling error/debug output for ↵Gravatar Nikias Bassen5-0/+33
the format parses This makes the `-d` option work in plistutil that wasn't doing anything
2023-02-06libcnary: Updated typedefs of node_t and node_list_t to contain pointerGravatar Nikias Bassen5-67/+64
This makes the code more readable. Obviously all the code that uses it is also updated.