<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libplist/tools, branch master</title>
<subtitle>Library to handle Apple Property List format files in binary or XML</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/'/>
<entry>
<title>Fix fread() unused return values by actually handling errors</title>
<updated>2026-04-10T10:21:17+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-04-10T10:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=9dfcfe8dc22233cb08aa22ba743640d8db92c4e7'/>
<id>9dfcfe8dc22233cb08aa22ba743640d8db92c4e7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add OpenStep coercion support for non-OpenStep plist types</title>
<updated>2026-03-22T18:16:51+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-03-22T18:16:51+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=c8b36a80bad4a1fe488927af4da0ecbcf10079bb'/>
<id>c8b36a80bad4a1fe488927af4da0ecbcf10079bb</id>
<content type='text'>
- Use PLIST_OPT_COERCE option to coerce PLIST_BOOLEAN, PLIST_DATE, PLIST_UID, and PLIST_NULL to OpenStep-compatible types (1 or 0, ISO 8601 strings, integers, and 'NULL' string)
- Add plist_to_openstep_with_options() function to allow passing coercion option (and others)
- Update plist_write_to_string() and plist_write_to_stream() accordingly
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Use PLIST_OPT_COERCE option to coerce PLIST_BOOLEAN, PLIST_DATE, PLIST_UID, and PLIST_NULL to OpenStep-compatible types (1 or 0, ISO 8601 strings, integers, and 'NULL' string)
- Add plist_to_openstep_with_options() function to allow passing coercion option (and others)
- Update plist_write_to_string() and plist_write_to_stream() accordingly
</pre>
</div>
</content>
</entry>
<entry>
<title>Add JSON coercion support for non-JSON plist types</title>
<updated>2026-03-20T16:12:47+00:00</updated>
<author>
<name>Calil Khalil</name>
</author>
<published>2026-02-21T13:39:24+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=3edac28498d883f1f768699ee15ce85a82bb2a7b'/>
<id>3edac28498d883f1f768699ee15ce85a82bb2a7b</id>
<content type='text'>
- 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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
</pre>
</div>
</content>
</entry>
<entry>
<title>plistutil: Read STDIN in chunks instead of 1 byte at a time</title>
<updated>2026-02-20T04:17:32+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-02-20T04:17:32+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=3bdee70a9c1490ea011c6fb65193b2c7e242d26d'/>
<id>3bdee70a9c1490ea011c6fb65193b2c7e242d26d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>plistutil: Add a --nodepath option to allow selecting a specific node</title>
<updated>2026-02-20T02:38:36+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-02-20T02:38:36+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=e3d5bbdf1f213caafedf185251fba02558d30b98'/>
<id>e3d5bbdf1f213caafedf185251fba02558d30b98</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>plistutil: Use getopt for solid option parsing</title>
<updated>2026-02-20T01:32:19+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-02-20T01:32:19+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=30132a9e2ce44f8325d574ea7a3c28466c132f0e'/>
<id>30132a9e2ce44f8325d574ea7a3c28466c132f0e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>plistutil: Make sure to check for memory allocation failure</title>
<updated>2026-01-23T15:35:54+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-01-23T15:35:54+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=57664f6394d9f96ffd54a8bb71fafb6d01528300'/>
<id>57664f6394d9f96ffd54a8bb71fafb6d01528300</id>
<content type='text'>
Addresses #302.

Credit to @ylwango613.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Addresses #302.

Credit to @ylwango613.
</pre>
</div>
</content>
</entry>
<entry>
<title>plistutil: Use proper error description for new error codes</title>
<updated>2026-01-17T15:35:19+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-01-17T15:35:19+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=001a59eef3b2a981f28af74ea82e1fc06b0c4275'/>
<id>001a59eef3b2a981f28af74ea82e1fc06b0c4275</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>plistutil: (partially) Fix processing extremely large files</title>
<updated>2025-10-29T15:50:38+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2025-10-29T15:50:38+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=438f01bad1437a15d35fa102bcde693171f03074'/>
<id>438f01bad1437a15d35fa102bcde693171f03074</id>
<content type='text'>
Thanks to @ylwango613 for reporting.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Thanks to @ylwango613 for reporting.
</pre>
</div>
</content>
</entry>
<entry>
<title>configure: Allow building the library without tool(s)</title>
<updated>2024-12-03T01:28:15+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2024-12-03T01:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=e3ca6af2c580c0b748a5635c15b973094765abbf'/>
<id>e3ca6af2c580c0b748a5635c15b973094765abbf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
