Browse Source

Workaround for wrong file permissions from zstd extraction on wasm

Signed-off-by: falkTX <falktx@falktx.com>
tags/22.07
falkTX 2 years ago
parent
commit
e389ca7469
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 23 additions and 1 deletions
  1. +13
    -0
      include/common.hpp
  2. +10
    -1
      src/override/common.cpp

+ 13
- 0
include/common.hpp 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


+ 10
- 1
src/override/common.cpp 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






Loading…
Cancel
Save