build: finish cross-platform release tooling
This commit is contained in:
+8
-2
@@ -28,11 +28,17 @@ int cst_settings_load(cst_settings_t *s) {
|
||||
FILE *fp = fopen(path, "rb");
|
||||
if (!fp)
|
||||
return -1;
|
||||
static _Thread_local char buf[65536];
|
||||
size_t n = fread(buf, 1, sizeof(buf) - 1, fp);
|
||||
enum { SETTINGS_MAX = 65536 };
|
||||
char *buf = malloc(SETTINGS_MAX);
|
||||
if (!buf) {
|
||||
fclose(fp);
|
||||
return -1;
|
||||
}
|
||||
size_t n = fread(buf, 1, SETTINGS_MAX - 1, fp);
|
||||
fclose(fp);
|
||||
buf[n] = 0;
|
||||
cJSON *root = cJSON_Parse(buf + cst_bom_len(buf, n));
|
||||
free(buf);
|
||||
if (!cJSON_IsObject(root)) {
|
||||
cJSON_Delete(root);
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user