Fix win32 somewhat?

This commit is contained in:
2025-04-16 07:39:30 -05:00
parent c831174e18
commit bf3ae1fa02
6 changed files with 65 additions and 6 deletions

View File

@ -16,12 +16,17 @@
#include <TessesFramework/TessesFramework.hpp> #include <TessesFramework/TessesFramework.hpp>
#include <regex> #include <regex>
#include <time.h> #include <time.h>
#include <cstdbool>
#define TVM_MAJOR 1 #define TVM_MAJOR 1
#define TVM_MINOR 0 #define TVM_MINOR 0
#define TVM_PATCH 0 #define TVM_PATCH 0
#define TVM_BUILD 0 #define TVM_BUILD 0
#define TVM_VERSIONSTAGE DevVersion #define TVM_VERSIONSTAGE DevVersion
#if defined(_WIN32)
#undef Yield
#endif
namespace Tesses::CrossLang { namespace Tesses::CrossLang {
std::string EscapeString(std::string text,bool quote); std::string EscapeString(std::string text,bool quote);

View File

@ -245,7 +245,11 @@ namespace Tesses::CrossLang
size_t offset = 0; size_t offset = 0;
uint8_t buff[1024]; uint8_t buff[1024];
do { do {
#if defined(_WIN32)
read = min(min(tableLen-offset,tableLen), sizeof(buff));
#else
read = std::min(std::min(tableLen-offset,tableLen), sizeof(buff)); read = std::min(std::min(tableLen-offset,tableLen), sizeof(buff));
#endif
read = strm->Read(buff,read); read = strm->Read(buff,read);
if(read > 0) if(read > 0)
strm2->WriteBlock(buff,read); strm2->WriteBlock(buff,read);

View File

@ -2,7 +2,7 @@
#include "CrossLang.hpp" #include "CrossLang.hpp"
#include <iostream> #include <iostream>
#if defined(GEKKO) || defined(__SWITCH__) #if defined(GEKKO) || defined(__SWITCH__) || defined(_WIN32)
#undef CROSSLANG_ENABLE_TERMIOS #undef CROSSLANG_ENABLE_TERMIOS
#endif #endif

View File

@ -97,7 +97,7 @@ namespace Tesses::CrossLang
int r = subprocess_create_ex(args3,(int)options,env3,subprocess); int r = subprocess_create_ex(args3,(int)options,env3,subprocess);
if(r != 0) if(r != 0)
{ {
printf("Here2 %i\n",r);
delete[] args3; delete[] args3;
delete[] env3; delete[] env3;
delete subprocess; delete subprocess;
@ -172,4 +172,4 @@ namespace Tesses::CrossLang
env->SetVariable("Process",dict); env->SetVariable("Process",dict);
gc->BarrierEnd(); gc->BarrierEnd();
} }
} }

View File

@ -94,7 +94,11 @@ namespace Tesses::CrossLang
arr->data.resize(sz); arr->data.resize(sz);
auto res = dict->CallMethod(ls2, "Read",{arr, (int64_t)0L, (int64_t)sz}); auto res = dict->CallMethod(ls2, "Read",{arr, (int64_t)0L, (int64_t)sz});
#if defined(_WIN32)
memcpy(buff,arr->data.data(),min(sz,arr->data.size()));
#else
memcpy(buff,arr->data.data(),std::min(sz,arr->data.size())); memcpy(buff,arr->data.data(),std::min(sz,arr->data.size()));
#endif
int64_t r; int64_t r;
if(GetObject(res,r)) return r; if(GetObject(res,r)) return r;
} }

View File

@ -2969,7 +2969,12 @@ namespace Tesses::CrossLang {
uint16_t port=0; uint16_t port=0;
if(off < len) if(off < len)
#if defined(_WIN32)
len = netStrm->ReadFrom(data->data.data()+off,min(len,min(data->data.size() - off, data->data.size())),ip,port);
#else
len = netStrm->ReadFrom(data->data.data()+off,std::min(len,std::min(data->data.size() - off, data->data.size())),ip,port); len = netStrm->ReadFrom(data->data.data()+off,std::min(len,std::min(data->data.size() - off, data->data.size())),ip,port);
#endif
else else
len = 0; len = 0;
@ -3000,7 +3005,12 @@ namespace Tesses::CrossLang {
size_t len = (size_t)length; size_t len = (size_t)length;
if(off < len) if(off < len)
#if defined(_WIN32)
len = netStrm->WriteTo(data->data.data()+off,min(len, min(data->data.size() - off, data->data.size())), ip, (int64_t)port);
#else
len = netStrm->WriteTo(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size())), ip, (int64_t)port); len = netStrm->WriteTo(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size())), ip, (int64_t)port);
#endif
else else
len = 0; len = 0;
@ -3023,7 +3033,12 @@ namespace Tesses::CrossLang {
size_t len = (size_t)length; size_t len = (size_t)length;
if(off < len) if(off < len)
#if defined(_WIN32)
len = strm->stream->Read(data->data.data()+off,min(len,min(data->data.size() - off, data->data.size())));
#else
len = strm->stream->Read(data->data.data()+off,std::min(len,std::min(data->data.size() - off, data->data.size()))); len = strm->stream->Read(data->data.data()+off,std::min(len,std::min(data->data.size() - off, data->data.size())));
#endif
else else
len = 0; len = 0;
@ -3044,7 +3059,12 @@ namespace Tesses::CrossLang {
size_t len = (size_t)length; size_t len = (size_t)length;
if(off < len) if(off < len)
#if defined(_WIN32)
len = strm->stream->Write(data->data.data()+off,min(len, min(data->data.size() - off, data->data.size())));
#else
len = strm->stream->Write(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size()))); len = strm->stream->Write(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size())));
#endif
else else
len = 0; len = 0;
@ -3065,7 +3085,12 @@ namespace Tesses::CrossLang {
size_t len = (size_t)length; size_t len = (size_t)length;
if(off < len) if(off < len)
#if defined(_WIN32)
len = strm->stream->ReadBlock(data->data.data()+off,min(len, min(data->data.size() - off, data->data.size())));
#else
len = strm->stream->ReadBlock(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size()))); len = strm->stream->ReadBlock(data->data.data()+off,std::min(len, std::min(data->data.size() - off, data->data.size())));
#endif
else else
len = 0; len = 0;
@ -3098,7 +3123,11 @@ namespace Tesses::CrossLang {
size_t len = (size_t)length; size_t len = (size_t)length;
if(off < len) if(off < len)
#if defined(_WIN32)
strm->stream->WriteBlock(data->data.data()+off,min(len,min(data->data.size() - off, data->data.size())));
#else
strm->stream->WriteBlock(data->data.data()+off,std::min(len,std::min(data->data.size() - off, data->data.size()))); strm->stream->WriteBlock(data->data.data()+off,std::min(len,std::min(data->data.size() - off, data->data.size())));
#endif
} }
cse.back()->Push(gc, nullptr); cse.back()->Push(gc, nullptr);
@ -3263,7 +3292,11 @@ namespace Tesses::CrossLang {
{ {
offdest = bArray2->data.size(); offdest = bArray2->data.size();
} }
#if defined(_WIN32)
len = min(min(bArray->data.size()-offsrc,bArray2->data.size()-offdest),len);
#else
len = std::min<size_t>(std::min<size_t>(bArray->data.size()-offsrc,bArray2->data.size()-offdest),len); len = std::min<size_t>(std::min<size_t>(bArray->data.size()-offsrc,bArray2->data.size()-offdest),len);
#endif
if(len > 0) if(len > 0)
memcpy(bArray2->data.data()+offdest,bArray->data.data()+offsrc,len); memcpy(bArray2->data.data()+offdest,bArray->data.data()+offsrc,len);
cse.back()->Push(gc,bArray2); cse.back()->Push(gc,bArray2);
@ -3309,8 +3342,11 @@ namespace Tesses::CrossLang {
{ {
offdest = bArray->data.size(); offdest = bArray->data.size();
} }
#if defined(_WIN32)
len = min(len,bArray2->data.size()-offsrc);
#else
len = std::min(len,bArray2->data.size()-offsrc); len = std::min(len,bArray2->data.size()-offsrc);
#endif
bArray->data.insert(bArray->data.begin()+offdest,bArray2->data.begin()+offsrc,bArray2->data.begin()+offsrc+len); bArray->data.insert(bArray->data.begin()+offdest,bArray2->data.begin()+offsrc,bArray2->data.begin()+offsrc+len);
cse.back()->Push(gc, bArray); cse.back()->Push(gc, bArray);
@ -3344,9 +3380,11 @@ namespace Tesses::CrossLang {
{ {
off = bArray->data.size(); off = bArray->data.size();
} }
#if defined(_WIN32)
len = min(bArray->data.size() - off,len);
#else
len = std::min<size_t>(bArray->data.size() - off,len); len = std::min<size_t>(bArray->data.size() - off,len);
#endif
bArray->data.insert(bArray->data.end(),bArray2->data.begin()+off,bArray2->data.begin()+off+len); bArray->data.insert(bArray->data.end(),bArray2->data.begin()+off,bArray2->data.begin()+off+len);
cse.back()->Push(gc,bArray); cse.back()->Push(gc,bArray);
return false; return false;
@ -5078,10 +5116,18 @@ namespace Tesses::CrossLang {
{ {
if(closure->closure->args[i].find("$$") == 0) if(closure->closure->args[i].find("$$") == 0)
{ {
#if defined(_WIN32)
return min(argLen,i);
#else
return std::min(argLen,i); return std::min(argLen,i);
#endif
} }
} }
#if defined(_WIN32)
return min(argLen,closure->closure->args.size());
#else
return std::min(argLen,closure->closure->args.size()); return std::min(argLen,closure->closure->args.size());
#endif
}; };
auto trimStart = [](std::string txt)->std::string { auto trimStart = [](std::string txt)->std::string {
if(txt.empty()) return {}; if(txt.empty()) return {};