- Fix `Exit` command in PlistBuddy to actually exit.
- Fix `Key:` syntax in PlistBuddy to append to arrays.
- Fix `Set Key:0` syntax in PlistBuddy to overwrite, not insert.
- Fix PlistBuddy to correctly initialize new property lists: only
write to disk on `Save` and start out with a dictionary.
- Fix crashes with out-of-bounds array indexes in PlistBuddy.
- Add `Import`, `Copy`, and `Revert` commands to PlistBuddy.
If target environment creation fails, this indicates a serious error
in the build environment. Continuing is likely to end up printing
success despite the build not finishing as expected.
When creating a gzip header, zlib adds the current operating system
to one of the fields. Overwrite that with zero to avoid creating
different serializations on different operating systems.
Do pointer arithmetic only happen on typed pointers or integer
representations of pointers, not void pointers. Cast integer and
floating point types explicitly when reducing precision.
- Move from C-style interface to C++-style interface.
- Remove unnecessary layers of indirection for reading and writing
buffers. The context is always writing to a buffer, so does not
need support for generalized input and output.
- Remove unnecessary layers of indirection for creating and writing
property list objects.
- Update test to avoid relying on literal strings using a specific
encoding. Instead, embed the encoded UTF-8 as a byte sequence.
- Include all necessary paths in tool search paths.
- Set `PATH` to match the paths searched for tools.
- Set `DEVELOPER_DIR` for all invocations to stay self-contained.
- Pass along process environment to tools rather than clearing.
Previously it was by default always set, but to an empty string.
This avoids having an empty outputBaseName later in ClangResolver,
which caused the output object files be named ".o" for all input
source files.
Asset catalog compilation now uses a custom variable to pass inputs
to the specification, and a custom grouping method to group inputs.
Does not pass sticker pack translations to asset catalog compiler,
as this seems to require parsing the asset catalog just to determine
which strings files should be used. Left as a future task.
This removes the last unsafe use of the process context and launcher
since it was only used to copy files and change file permissions.
Includes a unit test for the copy tool, now that it's self-contained.
Using a JSON parser test suite, refine number and key parsing to match
the JSON specification. Remaining issues are related to Unicode support,
escape sequences, and trailing commas.
The last of those is intentionally non-conforming for compatibility.