From 3edac28498d883f1f768699ee15ce85a82bb2a7b Mon Sep 17 00:00:00 2001 From: Calil Khalil Date: Sat, 21 Feb 2026 10:39:24 -0300 Subject: Add JSON coercion support for non-JSON plist types - Add PLIST_OPT_COERCE option to coerce PLIST_DATE, PLIST_DATA, and PLIST_UID to JSON-compatible types (ISO 8601 strings, Base64 strings, and integers) - Add plist_to_json_with_options() function to allow passing coercion options (and others) - Update plist_write_to_string() and plist_write_to_stream() to support coercion option - Add --coerce flag to plistutil for JSON output - Create plist2json symlink that automatically enables coercion when invoked --- src/plist.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/plist.c') diff --git a/src/plist.c b/src/plist.c index 7697a75..a6d3547 100644 --- a/src/plist.c +++ b/src/plist.c @@ -2404,7 +2404,7 @@ plist_err_t plist_write_to_string(plist_t plist, char **output, uint32_t* length err = plist_to_xml(plist, output, length); break; case PLIST_FORMAT_JSON: - err = plist_to_json(plist, output, length, ((options & PLIST_OPT_COMPACT) == 0)); + err = plist_to_json_with_options(plist, output, length, options); break; case PLIST_FORMAT_OSTEP: err = plist_to_openstep(plist, output, length, ((options & PLIST_OPT_COMPACT) == 0)); @@ -2442,7 +2442,7 @@ plist_err_t plist_write_to_stream(plist_t plist, FILE *stream, plist_format_t fo err = plist_to_xml(plist, &output, &length); break; case PLIST_FORMAT_JSON: - err = plist_to_json(plist, &output, &length, ((options & PLIST_OPT_COMPACT) == 0)); + err = plist_to_json_with_options(plist, &output, &length, options); break; case PLIST_FORMAT_OSTEP: err = plist_to_openstep(plist, &output, &length, ((options & PLIST_OPT_COMPACT) == 0)); -- cgit v1.1-32-gdbae