/* Generated by Nim Compiler v1.9.0 */ #define NIM_INTBITS 32 #include "nimbase.h" #include #include #include #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"); }