csources_v2/c_code/1_1/@m..@slib@sstd@sprivate@swin_setenv.nim.c
2022-12-16 10:54:01 +08:00

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");
}