mirror of
https://github.com/Neo-Desktop/WindowsXPKg
synced 2026-11-02 06:43:21 +02:00
* windows 98/nt4, slopped openssl away * one (1) roadblock that it can't figure out * fixed maybe * fix dos? * fix dos? (2) * ts is gonna be slow * No need to compress anymore * No need to compress anymore (2) * deslop The main problem with AI models, even today, is that they're very shortsighted. They're too focused on the thing working now than thinking about how maintainable it will be later. As such, you get duplicated code, as well as comments that are geared towards what it's doing right then and there (as if it's an advertisement of it's services) rather than improving the readability of the code. Always check your diffs. * Update workflows * Update freebsd.yml * Update README.md
30 lines
1.0 KiB
C
30 lines
1.0 KiB
C
/* This file is a part of the UMSKT Project.
|
|
*
|
|
* Copyleft (C) 2019-2026 UMSKT Contributors (et.al.)
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
*
|
|
* Walks the keys.json object shape. Strings are spans into the source buffer.
|
|
*/
|
|
|
|
#ifndef UMSKT_WIN_JSON_H
|
|
#define UMSKT_WIN_JSON_H
|
|
|
|
struct JsonSpan {
|
|
const char *p;
|
|
int n;
|
|
};
|
|
|
|
/* Find a direct child of an object. `object` includes the surrounding braces. */
|
|
int json_object_find(const char *object, int length, const char *key, JsonSpan *value);
|
|
|
|
/* If value is a JSON string, point at the unquoted bytes. They are not NUL-terminated. */
|
|
int json_unquote(const JsonSpan *value, const char **text, int *length);
|
|
|
|
/* Iterate direct children. *cursor starts at 0 and is updated. Returns 0 when finished. */
|
|
int json_object_next(const char *object, int length, int *cursor, const char **key, int *key_length, JsonSpan *value);
|
|
|
|
/* Iterate array elements. *cursor starts at 0. */
|
|
int json_array_next(const char *array, int length, int *cursor, JsonSpan *value);
|
|
|
|
#endif
|