Workaround for wrong file permissions from zstd extraction on wasm

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2022-07-09 00:00:49 +01:00
parent 97a2d5935a
commit e389ca7469
No known key found for this signature in database
GPG key ID: CDBAA37ABC74FBA0
2 changed files with 23 additions and 1 deletions

View file

@ -30,6 +30,19 @@
#include_next "common.hpp" #include_next "common.hpp"
// Workaround for wrong file permissions from zstd extraction
#ifdef __EMSCRIPTEN__
#define fopen fopen_wasm
extern "C" {
FILE* fopen_wasm(const char* filename, const char* mode);
}
namespace std {
using ::fopen_wasm;
}
#endif
// Make binary resources work the same no matter the OS // Make binary resources work the same no matter the OS
#undef BINARY #undef BINARY
#undef BINARY_START #undef BINARY_START

View file

@ -34,7 +34,7 @@
#include "DistrhoPluginUtils.hpp" #include "DistrhoPluginUtils.hpp"
#if defined ARCH_WIN #if defined(ARCH_WIN)
#include <windows.h> #include <windows.h>
FILE* fopen_u8(const char* filename, const char* mode) { FILE* fopen_u8(const char* filename, const char* mode) {
@ -43,6 +43,15 @@ FILE* fopen_u8(const char* filename, const char* mode) {
return _wfopen(rack::string::UTF8toUTF16(filename).c_str(), rack::string::UTF8toUTF16(mode).c_str()); return _wfopen(rack::string::UTF8toUTF16(filename).c_str(), rack::string::UTF8toUTF16(mode).c_str());
} }
#elif defined(DISTRHO_OS_WASM)
#include <sys/stat.h>
#undef fopen
FILE* fopen_wasm(const char* filename, const char* mode) {
chmod(filename, 0777);
return std::fopen(filename, mode);
}
#endif #endif