373 lines
13 KiB
C
373 lines
13 KiB
C
/* Generated by Nim Compiler v1.9.0 */
|
|
#define NIM_INTBITS 32
|
|
|
|
#include "nimbase.h"
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <errno.h>
|
|
#undef LANGUAGE_C
|
|
#undef MIPSEB
|
|
#undef MIPSEL
|
|
#undef PPC
|
|
#undef R3000
|
|
#undef R4000
|
|
#undef i386
|
|
#undef linux
|
|
#undef mips
|
|
#undef near
|
|
#undef far
|
|
#undef powerpc
|
|
#undef unix
|
|
#define nimfr_(x, y)
|
|
#define nimln_(x, y)
|
|
typedef struct NimStrPayload NimStrPayload;
|
|
typedef struct NimStringV2 NimStringV2;
|
|
typedef struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A;
|
|
typedef struct tySequence__lBgZ7a89beZGYPl8PiANMTA tySequence__lBgZ7a89beZGYPl8PiANMTA;
|
|
typedef struct tySequence__lBgZ7a89beZGYPl8PiANMTA_Content tySequence__lBgZ7a89beZGYPl8PiANMTA_Content;
|
|
struct NimStrPayload {
|
|
NI cap;
|
|
NIM_CHAR data[SEQ_DECL_SIZE];
|
|
};
|
|
struct NimStringV2 {
|
|
NI len;
|
|
NimStrPayload* p;
|
|
};
|
|
struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A {
|
|
NI bytes;
|
|
NI16* data;
|
|
};
|
|
typedef NI16 tyUncheckedArray__Tyd4y3haUOOHTj71TPIRag[1];
|
|
struct tySequence__lBgZ7a89beZGYPl8PiANMTA {
|
|
NI len; tySequence__lBgZ7a89beZGYPl8PiANMTA_Content* p;
|
|
};
|
|
typedef N_STDCALL_PTR(NI32, tyProc__bqj9c9cp9clcknaC0kHFkuNVg) (NI16* lpName, NI16* lpValue);
|
|
|
|
|
|
#ifndef tySequence__lBgZ7a89beZGYPl8PiANMTA_Content_PP
|
|
#define tySequence__lBgZ7a89beZGYPl8PiANMTA_Content_PP
|
|
struct tySequence__lBgZ7a89beZGYPl8PiANMTA_Content { NI cap; NIM_CHAR data[SEQ_DECL_SIZE];};
|
|
#endif
|
|
|
|
static N_INLINE(void, nimZeroMem)(void* p, NI size);
|
|
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
|
|
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
|
|
N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_287)(NimStringV2 s);
|
|
static N_INLINE(NI16*, toWideCString__stdZwidestrs_41)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A x);
|
|
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZwidestrs_6)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a);
|
|
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest);
|
|
static N_INLINE(void, appendString)(NimStringV2* dest, NimStringV2 src);
|
|
static N_INLINE(void, copyMem__system_1719)(void* dest, void* source, NI size);
|
|
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space);
|
|
N_LIB_PRIVATE N_NIMCALL(tySequence__lBgZ7a89beZGYPl8PiANMTA, newSeq__stdZprivateZwin95setenv_137)(NI len);
|
|
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZprivateZwin95setenv_145)(tySequence__lBgZ7a89beZGYPl8PiANMTA* dest);
|
|
N_LIB_PRIVATE N_NIMCALL(void*, nimLoadLibrary)(NimStringV2 path);
|
|
N_LIB_PRIVATE N_NIMCALL(void, nimLoadLibraryError)(NimStringV2 path);
|
|
N_LIB_PRIVATE N_NIMCALL(void*, nimGetProcAddr)(void* lib, NCSTRING name);
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[1+1];
|
|
} TM__UOYsq9cbb0VE8vr3Xt181HA_2 = { 1 | NIM_STRLIT_FLAG, "=" };
|
|
static const NimStringV2 TM__UOYsq9cbb0VE8vr3Xt181HA_3 = {1, (NimStrPayload*)&TM__UOYsq9cbb0VE8vr3Xt181HA_2};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[3+1];
|
|
} TM__UOYsq9cbb0VE8vr3Xt181HA_4 = { 3 | NIM_STRLIT_FLAG, "= " };
|
|
static const NimStringV2 TM__UOYsq9cbb0VE8vr3Xt181HA_5 = {3, (NimStrPayload*)&TM__UOYsq9cbb0VE8vr3Xt181HA_4};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[8+1];
|
|
} TM__UOYsq9cbb0VE8vr3Xt181HA_8 = { 8 | NIM_STRLIT_FLAG, "kernel32" };
|
|
static const NimStringV2 TM__UOYsq9cbb0VE8vr3Xt181HA_9 = {8, (NimStrPayload*)&TM__UOYsq9cbb0VE8vr3Xt181HA_8};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[8+1];
|
|
} TM__UOYsq9cbb0VE8vr3Xt181HA_10 = { 8 | NIM_STRLIT_FLAG, "kernel32" };
|
|
static const NimStringV2 TM__UOYsq9cbb0VE8vr3Xt181HA_11 = {8, (NimStrPayload*)&TM__UOYsq9cbb0VE8vr3Xt181HA_10};
|
|
extern NIM_CHAR** _environ;
|
|
extern NIM_BOOL nimInErrorMode__system_3980;
|
|
static void* TM__UOYsq9cbb0VE8vr3Xt181HA_6;
|
|
tyProc__bqj9c9cp9clcknaC0kHFkuNVg Dl_1694498819_;
|
|
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
|
|
void* T1_;
|
|
T1_ = (void*)0;
|
|
T1_ = memset(a, v, ((size_t) (size)));
|
|
}
|
|
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
|
|
NIM_BOOL* result;
|
|
result = (NIM_BOOL*)0;
|
|
result = (&nimInErrorMode__system_3980);
|
|
return result;
|
|
}
|
|
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
nimSetMem__systemZmemory_7(p, ((int)0), size);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
}
|
|
static N_INLINE(NI16*, toWideCString__stdZwidestrs_41)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A x) {
|
|
NI16* result;
|
|
result = (NI16*)0;
|
|
result = x.data;
|
|
return result;
|
|
}
|
|
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
|
|
void* T1_;
|
|
T1_ = (void*)0;
|
|
T1_ = memcpy(dest, source, ((size_t) (size)));
|
|
}
|
|
static N_INLINE(void, copyMem__system_1719)(void* dest, void* source, NI size) {
|
|
nimCopyMem(dest, source, size);
|
|
}
|
|
static N_INLINE(void, appendString)(NimStringV2* dest, NimStringV2 src) {
|
|
{
|
|
if (!(((NI)0) < src.len)) goto LA3_;
|
|
copyMem__system_1719(((void*) ((&(*(*dest).p).data[(*dest).len]))), ((void*) ((&(*src.p).data[((NI)0)]))), ((NI) ((NI)(src.len + ((NI)1)))));
|
|
(*dest).len += src.len;
|
|
}
|
|
LA3_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(int, setEnvImpl__stdZprivateZwin95setenv_18)(NimStringV2 name, NimStringV2 value, int overwrite) {
|
|
int result;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A wideName;
|
|
NimStringV2 envstring;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A colontmpD_;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A colontmpD__2;
|
|
NIM_BOOL oldNimErrFin14_;
|
|
NimStringV2 T23_;
|
|
NI16* s;
|
|
NI16* T30_;
|
|
NI16* T31_;
|
|
NIM_BOOL oldNimErrFin1_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (int)0;
|
|
nimZeroMem((void*)(&wideName), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
envstring.len = 0; envstring.p = NIM_NIL;
|
|
nimZeroMem((void*)(&colontmpD_), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
nimZeroMem((void*)(&colontmpD__2), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
wideName = newWideCString__stdZwidestrs_287(name);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
{
|
|
NIM_BOOL T4_;
|
|
NI16* T6_;
|
|
NI16* T7_;
|
|
T4_ = (NIM_BOOL)0;
|
|
T4_ = (overwrite == ((NI32)0));
|
|
if (!(T4_)) goto LA5_;
|
|
T6_ = (NI16*)0;
|
|
T6_ = toWideCString__stdZwidestrs_41(wideName);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
T7_ = (NI16*)0;
|
|
T7_ = _wgetenv(T6_);
|
|
T4_ = !((T7_ == ((NI16*) NIM_NIL)));
|
|
LA5_: ;
|
|
if (!T4_) goto LA8_;
|
|
result = ((int)0);
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
}
|
|
LA8_: ;
|
|
{
|
|
NimStringV2 envstring_2;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A colontmpD__3;
|
|
NimStringV2 T15_;
|
|
int e;
|
|
NI16* T16_;
|
|
if (!!((value.len == 0))) goto LA12_;
|
|
envstring_2.len = 0; envstring_2.p = NIM_NIL;
|
|
nimZeroMem((void*)(&colontmpD__3), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
T15_.len = 0; T15_.p = NIM_NIL;
|
|
T15_ = rawNewString(name.len + value.len + 1);
|
|
appendString((&T15_), name);
|
|
appendString((&T15_), TM__UOYsq9cbb0VE8vr3Xt181HA_3);
|
|
appendString((&T15_), value);
|
|
envstring_2 = T15_;
|
|
colontmpD__3 = newWideCString__stdZwidestrs_287(envstring_2);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
|
|
T16_ = (NI16*)0;
|
|
T16_ = toWideCString__stdZwidestrs_41(colontmpD__3);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA14_;
|
|
e = _wputenv(T16_);
|
|
{
|
|
if (!!((e == ((NI32)0)))) goto LA19_;
|
|
errno = ((int)22);
|
|
result = ((int)-1);
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__3));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
eqdestroy___stdZassertions_13((&envstring_2));
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
}
|
|
LA19_: ;
|
|
result = ((int)0);
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__3));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
eqdestroy___stdZassertions_13((&envstring_2));
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
{
|
|
LA14_:;
|
|
}
|
|
{
|
|
oldNimErrFin14_ = *nimErr_; *nimErr_ = NIM_FALSE;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__3));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
eqdestroy___stdZassertions_13((&envstring_2));
|
|
*nimErr_ = oldNimErrFin14_;
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
}
|
|
LA12_: ;
|
|
T23_.len = 0; T23_.p = NIM_NIL;
|
|
T23_ = rawNewString(name.len + 3);
|
|
appendString((&T23_), name);
|
|
appendString((&T23_), TM__UOYsq9cbb0VE8vr3Xt181HA_5);
|
|
envstring = T23_;
|
|
{
|
|
NI16* T26_;
|
|
int T27_;
|
|
colontmpD_ = newWideCString__stdZwidestrs_287(envstring);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
T26_ = (NI16*)0;
|
|
T26_ = toWideCString__stdZwidestrs_41(colontmpD_);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
T27_ = (int)0;
|
|
T27_ = _wputenv(T26_);
|
|
if (!!((T27_ == ((NI32)0)))) goto LA28_;
|
|
errno = ((int)22);
|
|
result = ((int)-1);
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
}
|
|
LA28_: ;
|
|
T30_ = (NI16*)0;
|
|
T30_ = toWideCString__stdZwidestrs_41(wideName);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
s = _wgetenv(T30_);
|
|
s[((NI)0)] = ((NI16)0);
|
|
T31_ = (NI16*)0;
|
|
T31_ = toWideCString__stdZwidestrs_41(wideName);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
s = _wgetenv(T31_);
|
|
s[((NI)1)] = ((NI16)61);
|
|
{
|
|
size_t requiredSizeS;
|
|
NI16* T36_;
|
|
if (!!((_environ == ((NIM_CHAR**) NIM_NIL)))) goto LA34_;
|
|
T36_ = (NI16*)0;
|
|
T36_ = toWideCString__stdZwidestrs_41(wideName);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
requiredSizeS = wcstombs(((NIM_CHAR*) NIM_NIL), T36_, ((size_t)0));
|
|
{
|
|
tySequence__lBgZ7a89beZGYPl8PiANMTA buf;
|
|
NI requiredSize;
|
|
NIM_CHAR* buf2;
|
|
if (!!((requiredSizeS == ((size_t)IL64(4294967295))))) goto LA39_;
|
|
buf.len = 0; buf.p = NIM_NIL;
|
|
requiredSize = ((NI) (requiredSizeS));
|
|
buf = newSeq__stdZprivateZwin95setenv_137(((NI) ((NI)(requiredSize + ((NI)1)))));
|
|
buf2 = (&buf.p->data[((NI)0)]);
|
|
{
|
|
NI16* T43_;
|
|
size_t T44_;
|
|
NCSTRING ptrToEnv;
|
|
T43_ = (NI16*)0;
|
|
T43_ = toWideCString__stdZwidestrs_41(wideName);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
T44_ = (size_t)0;
|
|
T44_ = wcstombs(buf2, T43_, ((size_t) ((NI)(requiredSize + ((NI)1)))));
|
|
if (!!((T44_ == ((size_t)IL64(4294967295))))) goto LA45_;
|
|
ptrToEnv = getenv(((NCSTRING) (buf2)));
|
|
ptrToEnv[((NI)0)] = 0;
|
|
ptrToEnv = getenv(((NCSTRING) (buf2)));
|
|
ptrToEnv[((NI)1)] = 61;
|
|
}
|
|
LA45_: ;
|
|
eqdestroy___stdZprivateZwin95setenv_145((&buf));
|
|
}
|
|
LA39_: ;
|
|
}
|
|
LA34_: ;
|
|
{
|
|
NI16* T49_;
|
|
NI16* T50_;
|
|
NI32 T51_;
|
|
T49_ = (NI16*)0;
|
|
T49_ = toWideCString__stdZwidestrs_41(wideName);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
colontmpD__2 = newWideCString__stdZwidestrs_287(value);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
T50_ = (NI16*)0;
|
|
T50_ = toWideCString__stdZwidestrs_41(colontmpD__2);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
T51_ = (NI32)0;
|
|
T51_ = Dl_1694498819_(T49_, T50_);
|
|
if (!(T51_ == ((NI32)0))) goto LA52_;
|
|
errno = ((int)22);
|
|
result = ((int)-1);
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
}
|
|
LA52_: ;
|
|
result = ((int)0);
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
{
|
|
LA1_:;
|
|
}
|
|
{
|
|
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD__2));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&colontmpD_));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZassertions_13((&envstring));
|
|
eqdestroy___stdZwidestrs_6((&wideName));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
*nimErr_ = oldNimErrFin1_;
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatsstdatsprivateatswin_setenvdotnim_DatInit000)(void) {
|
|
if (!((TM__UOYsq9cbb0VE8vr3Xt181HA_6 = nimLoadLibrary(TM__UOYsq9cbb0VE8vr3Xt181HA_9))
|
|
)) nimLoadLibraryError(TM__UOYsq9cbb0VE8vr3Xt181HA_11);
|
|
Dl_1694498819_ = (tyProc__bqj9c9cp9clcknaC0kHFkuNVg) nimGetProcAddr(TM__UOYsq9cbb0VE8vr3Xt181HA_6, "SetEnvironmentVariableW");
|
|
}
|
|
|