added compatibility with linux

This commit is contained in:
Timerix 2025-02-03 22:30:13 +05:00
parent 2faff91981
commit 5d275c8dd1
4 changed files with 13 additions and 5 deletions

View File

@ -77,7 +77,9 @@ i32 VM_boot(VM* vm){
bool VM_dataRead(VM* vm, void* dst, size_t pos, size_t size){ bool VM_dataRead(VM* vm, void* dst, size_t pos, size_t size){
if(pos + size >= vm->data_size){ if(pos + size >= vm->data_size){
VM_setError(vm, "can't read %lli bytes from 0x%x, because only %lli are avaliable", VM_setError(vm,
"can't read " IFWIN("%lli", "%li") " bytes from 0x%x, because only "
IFWIN("%lli", "%li") " are avaliable",
size, (u32)pos, vm->data_size - size); size, (u32)pos, vm->data_size - size);
return false; return false;
} }

View File

@ -43,7 +43,7 @@ char* NULLABLE(sprintf_malloc)(size_t buffer_size, cstr format, ...){
char* NULLABLE(vsprintf_malloc)(size_t buffer_size, cstr format, va_list argv){ char* NULLABLE(vsprintf_malloc)(size_t buffer_size, cstr format, va_list argv){
char* buf = malloc(buffer_size); char* buf = malloc(buffer_size);
int r = vsprintf_s(buf, buffer_size, format, argv); int r = vsprintf(buf, format, argv);
if(r < 0){ if(r < 0){
free(buf); free(buf);
return NULL; return NULL;

View File

@ -26,6 +26,12 @@ typedef u8 bool;
typedef const char* cstr; typedef const char* cstr;
#if defined(_WIN64) || defined(_WIN32)
#define IFWIN(YES, NO) YES
#else
#define IFWIN(YES, NO) NO
#endif
#define ARRAY_SIZE(A) (sizeof(A)/sizeof(A[0])) #define ARRAY_SIZE(A) (sizeof(A)/sizeof(A[0]))
#define ALIGN_TO(_SIZE,_ALIGN) (((_SIZE) + ((_ALIGN) - 1)) & ~((_ALIGN) - 1)) #define ALIGN_TO(_SIZE,_ALIGN) (((_SIZE) + ((_ALIGN) - 1)) & ~((_ALIGN) - 1))

View File

@ -36,18 +36,18 @@ void StringBuilder_append_cstr(StringBuilder* b, char* s){
void StringBuilder_append_i64(StringBuilder* b, i64 n){ void StringBuilder_append_i64(StringBuilder* b, i64 n){
char buf[32]; char buf[32];
sprintf_s(buf, sizeof(buf), "%llu", n); sprintf(buf, IFWIN("%lli", "%li"), n);
StringBuilder_append_cstr(b, buf); StringBuilder_append_cstr(b, buf);
} }
void StringBuilder_append_u64(StringBuilder* b, u64 n){ void StringBuilder_append_u64(StringBuilder* b, u64 n){
char buf[32]; char buf[32];
sprintf_s(buf, sizeof(buf), "%llu", n); sprintf(buf, IFWIN("%llu", "%lu"), n);
StringBuilder_append_cstr(b, buf); StringBuilder_append_cstr(b, buf);
} }
void StringBuilder_append_f64(StringBuilder* b, f64 n){ void StringBuilder_append_f64(StringBuilder* b, f64 n){
char buf[32]; char buf[32];
sprintf_s(buf, sizeof(buf), "%lf", n); sprintf(buf, "%lf", n);
StringBuilder_append_cstr(b, buf); StringBuilder_append_cstr(b, buf);
} }