/* * nanowasm, a tiny WebAssembly/Wasm interpreter * Copyright (C) 2023-2024 Xavier Del Campo Romero * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include #include #include #include #include #include int fstrcmp(const char *str, FILE *const f, const bool abort) { int ret = 0; for (size_t i = 0; i < strlen(str); i++) { uint8_t byte; if (!fread(&byte, sizeof byte, 1, f)) { LOG("%s: fread(3) failed, feof=%d, ferror=%d\n", __func__, feof(f), ferror(f)); return -1; } else if (byte != str[i]) { if (abort) return -1; else ret = -1; } } return ret; }