csources_v2/c_code/1_2/@m..@slib@spure@sosproc.nim.c
2022-12-16 10:54:01 +08:00

2009 lines
72 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 64
#include "nimbase.h"
#include <string.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 tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg;
typedef struct NimStrPayload NimStrPayload;
typedef struct NimStringV2 NimStringV2;
typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
typedef struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A;
typedef struct tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ;
typedef struct tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg;
typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A;
typedef struct TNimTypeV2 TNimTypeV2;
typedef struct RootObj RootObj;
typedef struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ;
typedef struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ;
typedef struct tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ;
typedef struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyTuple__N4J9cV4JZGem3ljqqj5rT0Q;
typedef struct tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ;
typedef struct tyTuple__0F3Kz25HWtRatQmCDVHWEA tyTuple__0F3Kz25HWtRatQmCDVHWEA;
typedef struct tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw;
typedef struct tyTuple__0hEbbYmlam6yzyW5MFo9cjg tyTuple__0hEbbYmlam6yzyW5MFo9cjg;
typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ tySequence__xv3aaFd3JCw8NbmALHiezQ;
typedef struct tySequence__xv3aaFd3JCw8NbmALHiezQ_Content tySequence__xv3aaFd3JCw8NbmALHiezQ_Content;
typedef struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA tyTuple__sPaDkVPSC0MkcoXCxPH9ccA;
typedef struct tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ;
typedef struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA;
typedef struct tyTuple__XOVT24GHXwqiEj5GCsEGCA tyTuple__XOVT24GHXwqiEj5GCsEGCA;
typedef struct tySequence__PrBYolTs4TOSgE8v5oqDUQ tySequence__PrBYolTs4TOSgE8v5oqDUQ;
typedef struct tySequence__PrBYolTs4TOSgE8v5oqDUQ_Content tySequence__PrBYolTs4TOSgE8v5oqDUQ_Content;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content tySequence__qwqHTkRvwhrRyENtudHQ7g_Content;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
typedef NU8 tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A {
NI bytes;
NI16* data;
};
struct tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ {
NI32 cb;
NCSTRING lpReserved;
NCSTRING lpDesktop;
NCSTRING lpTitle;
NI32 dwX;
NI32 dwY;
NI32 dwXSize;
NI32 dwYSize;
NI32 dwXCountChars;
NI32 dwYCountChars;
NI32 dwFillAttribute;
NI32 dwFlags;
NI16 wShowWindow;
NI16 cbReserved2;
void* lpReserved2;
NI hStdInput;
NI hStdOutput;
NI hStdError;
};
struct tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg {
NI hProcess;
NI hThread;
NI32 dwProcessId;
NI32 dwThreadId;
};
struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A {
NI rc;
NI rootIdx;
};
struct TNimTypeV2 {
void* destructor;
NI size;
NI16 align;
NI16 depth;
NU32* display;
void* traceImpl;
void* typeInfoV1;
NI flags;
};
struct RootObj {
TNimTypeV2* m_type;
};
struct tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg {
RootObj Sup;
NI fProcessHandle;
NI fThreadHandle;
int inHandle;
int outHandle;
int errHandle;
NI id;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* inStream;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outStream;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* errStream;
int exitStatus;
NIM_BOOL exitFlag;
tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options;
};
struct tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ {
NI len;
NI cap;
tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d;
};
struct tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ {
NI len;
NI cap;
tyTuple__0F3Kz25HWtRatQmCDVHWEA* d;
};
struct tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ {
tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ traceStack;
tyObject_CellSeq__z4KasHYddby49cXX2MD4LxQ toFree;
NI freed;
NI touched;
NI edges;
NI rcSum;
NIM_BOOL keepThreshold;
};
struct tyTuple__N4J9cV4JZGem3ljqqj5rT0Q {
void** Field0;
TNimTypeV2* Field1;
};
typedef tyTuple__N4J9cV4JZGem3ljqqj5rT0Q tyUncheckedArray__72XmdLy0QAaMtx66AmNKfA[1];
typedef NU8 tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA;
struct tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw {
NI32 nLength;
void* lpSecurityDescriptor;
NI32 bInheritHandle;
};
typedef N_STDCALL_PTR(NI32, tyProc__C5kM33gEhlSKPXwfDNHofQ) (NI* hReadPipe, NI* hWritePipe, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpPipeAttributes, NI32 nSize);
typedef N_STDCALL_PTR(NI32, tyProc__mBVOPXmpGfUrrbA9a5K9cMbQ) (NI hObject, NI32 dwMask, NI32 dwFlags);
typedef N_STDCALL_PTR(NI, tyProc__IDUPJnDaqrBXTB4aj79bKLg) (NI16* lpName, NI32 dwOpenMode, NI32 dwPipeMode, NI32 nMaxInstances, NI32 nOutBufferSize, NI32 nInBufferSize, NI32 nDefaultTimeOut, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpSecurityAttributes);
typedef NI16 tyUncheckedArray__Tyd4y3haUOOHTj71TPIRag[1];
typedef N_STDCALL_PTR(NI, tyProc__Q9box9as0S1hHKH9cSO3MGDDA) (NI16* lpFileName, NI32 dwDesiredAccess, NI32 dwShareMode, void* lpSecurityAttributes, NI32 dwCreationDisposition, NI32 dwFlagsAndAttributes, NI hTemplateFile);
typedef N_STDCALL_PTR(NI, tyProc__uryidYWkntM7ddjZSyxvyQ) (void);
typedef N_STDCALL_PTR(NI32, tyProc__oew1DfaGl5XhHmnBK0HYXQ) (NI hSourceProcessHandle, NI hSourceHandle, NI hTargetProcessHandle, NI* lpTargetHandle, NI32 dwDesiredAccess, NI32 bInheritHandle, NI32 dwOptions);
typedef N_STDCALL_PTR(NI32, tyProc__P13srMBg9b3d3yEV9aW4NCoA) (NI hObject);
typedef N_STDCALL_PTR(NI, tyProc__zP2zGemcuVRvOUE82f9a0Pw) (NI32 nStdHandle);
struct tyTuple__0hEbbYmlam6yzyW5MFo9cjg {
NCSTRING Field0;
NI Field1;
};
struct tySequence__xv3aaFd3JCw8NbmALHiezQ {
NI len; tySequence__xv3aaFd3JCw8NbmALHiezQ_Content* p;
};
typedef NU8 tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ;
struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg {
RootObj Sup;
NI counter;
tySequence__xv3aaFd3JCw8NbmALHiezQ data;
tyEnum_StringTableMode__G9c4wVDFIzf0xHmQvxso9a9cQ mode;
};
struct tyTuple__sPaDkVPSC0MkcoXCxPH9ccA {
NimStringV2 Field0;
NimStringV2 Field1;
NIM_BOOL Field2;
};
typedef NimStringV2 tyArray__nHXaesL0DJZHyVS07ARPRA[1];
typedef N_STDCALL_PTR(NI32, tyProc__Ij9aBl82y9bf8kihDdsUvIEg) (NI16* lpApplicationName, NI16* lpCommandLine, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpProcessAttributes, tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw* lpThreadAttributes, NI32 bInheritHandles, NI32 dwCreationFlags, NI16* lpEnvironment, NI16* lpCurrentDirectory, tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ* lpStartupInfo, tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg* lpProcessInformation);
typedef N_NIMCALL_PTR(void, tyProc__JQrsH08b4uPTH9cyFPlVOZg) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__9bmhFrLahRsL2hltfRDVtlQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(void, tyProc__3svSoGIUJIsHkaBL7q4DAQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NI pos);
typedef N_NIMCALL_PTR(NI, tyProc__xflqkf2D1uVClg70czEDHA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
typedef N_NIMCALL_PTR(NI, tyProc__c9c0f59ak4YGQ6neEym8LPKw) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringV2* buffer, tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA slice);
typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__7jFfqMk9ajToCz6Hv9atCA4A) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringV2* line);
typedef N_NIMCALL_PTR(NI, tyProc__2VVzVL9bOnKhj1eZKkf9cEuA) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
typedef N_NIMCALL_PTR(void, tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ) (tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
struct tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ {
RootObj Sup;
tyProc__JQrsH08b4uPTH9cyFPlVOZg closeImpl;
tyProc__9bmhFrLahRsL2hltfRDVtlQ atEndImpl;
tyProc__3svSoGIUJIsHkaBL7q4DAQ setPositionImpl;
tyProc__xflqkf2D1uVClg70czEDHA getPositionImpl;
tyProc__c9c0f59ak4YGQ6neEym8LPKw readDataStrImpl;
tyProc__7jFfqMk9ajToCz6Hv9atCA4A readLineImpl;
tyProc__2VVzVL9bOnKhj1eZKkf9cEuA readDataImpl;
tyProc__2VVzVL9bOnKhj1eZKkf9cEuA peekDataImpl;
tyProc__ki6p1QyfOkJLQJ9aw5NI0AQ writeDataImpl;
tyProc__JQrsH08b4uPTH9cyFPlVOZg flushImpl;
};
struct tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ {
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ Sup;
NI handle;
NIM_BOOL atTheEnd;
};
typedef N_STDCALL_PTR(NI32, tyProc__9ajZYMGL5GqiRFqiCC367oA) (NI hFile, void* buffer, NI32 nNumberOfBytesToRead, NI32* lpNumberOfBytesRead, void* lpOverlapped);
typedef N_STDCALL_PTR(NI32, tyProc__FprzxJFfqQdWyyGxiUsmeQ) (NI hHandle, NI32 dwMilliseconds);
typedef N_STDCALL_PTR(NI32, tyProc__7S2vVNF4dlY59blFohNWnHg) (NI hProcess, NI uExitCode);
typedef N_STDCALL_PTR(NI32, tyProc__KxeGXN001TReCr89ca9c5bng) (NI hProcess, NI32* lpExitCode);
struct tyTuple__XOVT24GHXwqiEj5GCsEGCA {
NimStringV2 Field0;
NI Field1;
};
typedef NimStringV2 tyArray__8ZvwQIddfpj2THRVPsFzIQ[1];
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NI idx, void* ClE_0);
void* ClE_0;
} tyProc__SqRJqa5aOiKB4EuKlKh9asA;
typedef struct {
N_NIMCALL_PTR(void, ClP_0) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, void* ClE_0);
void* ClE_0;
} tyProc__oudJckli4GdxAXLVzBBlAw;
struct tySequence__PrBYolTs4TOSgE8v5oqDUQ {
NI len; tySequence__PrBYolTs4TOSgE8v5oqDUQ_Content* p;
};
struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
NI len; tySequence__qwqHTkRvwhrRyENtudHQ7g_Content* p;
};
typedef NI tyArray__SLBTEB08vk46ttuRaTxAYw[64];
typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_31) (NI idx);
typedef N_STDCALL_PTR(NI32, tyProc__Dx0emMHXXGxkRnYGUaFLbg) (NI32 nCount, NI* lpHandles, NI32 bWaitAll, NI32 dwMilliseconds);
typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_35) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_36) (NI idx);
typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_38) (NI idx);
typedef N_CLOSURE_PTR(void, TM__HZdw8BhppcTQo8DIK46LSg_40) (NI idx, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
#ifndef tySequence__xv3aaFd3JCw8NbmALHiezQ_Content_PP
#define tySequence__xv3aaFd3JCw8NbmALHiezQ_Content_PP
struct tySequence__xv3aaFd3JCw8NbmALHiezQ_Content { NI cap; tyTuple__sPaDkVPSC0MkcoXCxPH9ccA data[SEQ_DECL_SIZE];};
#endif
struct tyObject_HSlice__EE5dzjqoOrHT6HJhIPXAvA {
NI a;
NI b;
};
#ifndef tySequence__PrBYolTs4TOSgE8v5oqDUQ_Content_PP
#define tySequence__PrBYolTs4TOSgE8v5oqDUQ_Content_PP
struct tySequence__PrBYolTs4TOSgE8v5oqDUQ_Content { NI cap; tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* data[SEQ_DECL_SIZE];};
#endif
#ifndef tySequence__qwqHTkRvwhrRyENtudHQ7g_Content_PP
#define tySequence__qwqHTkRvwhrRyENtudHQ7g_Content_PP
struct tySequence__qwqHTkRvwhrRyENtudHQ7g_Content { NI cap; NI 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(void, eqdestroy___pureZosproc_206)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg** dest);
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p);
static N_INLINE(NI, minuspercent___system_790)(NI x, NI y);
N_LIB_PRIVATE N_NOINLINE(void, rememberCycle__system_3141)(NIM_BOOL isDestroyAction, tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* s, TNimTypeV2* desc);
N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p);
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size, NI alignment);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_219)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZosproc_228)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* dest, void* env);
static N_INLINE(void, nimTraceRefDyn)(void* q, void* env);
static N_INLINE(void, add__system_2686)(tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ* s, void** c, TNimTypeV2* t);
N_LIB_PRIVATE N_NOCONV(void*, allocImpl__system_1735)(NI size);
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_NOCONV(void, dealloc)(void* p);
N_LIB_PRIVATE N_NIMCALL(void, createPipeHandles__pureZosproc_787)(NI* rdHandle, NI* wrHandle);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__stdZoserrors_86)(NI32 errorCode, NimStringV2 additionalInfo);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__stdZoserrors_89)(void);
N_LIB_PRIVATE N_NIMCALL(void, createAllPipeHandles__pureZosproc_752)(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ* si, NI* stdin_0, NI* stdout_0, NI* stderr_0, NI hash);
N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_287)(NimStringV2 s);
static N_INLINE(void, appendString)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_3)(NI x);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space);
static N_INLINE(NI16*, toWideCString__stdZwidestrs_41)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A x);
N_LIB_PRIVATE N_NIMCALL(NI, myDup__pureZosproc_747)(NI h, NI32 inherit);
static N_INLINE(void, closeHandleCheck__pureZosproc_636)(NI handle);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZwidestrs_6)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a);
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, buildCommandLine__pureZosproc_701)(NimStringV2 a, NimStringV2* args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nospquoteShell)(NimStringV2 s);
static N_INLINE(void, nimAddCharV1)(NimStringV2* s, NIM_CHAR c);
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s, NI addlen);
N_LIB_PRIVATE N_NIMCALL(tyTuple__0hEbbYmlam6yzyW5MFo9cjg, buildEnv__pureZosproc_713)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___stdZassertions_16)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NOCONV(void*, alloc0Impl__system_1737)(NI size);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, cstrToNimstr)(NCSTRING str);
N_LIB_PRIVATE N_NIMCALL(void, echoBinSafe)(NimStringV2* args, NI argsLen_0);
N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_281)(NCSTRING s);
N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_260)(NCSTRING source, NI L);
static N_INLINE(void, fileClose__pureZosproc_643)(NI* h);
static N_INLINE(NIM_BOOL, eqeq___system_7567)(NCSTRING x, NCSTRING y);
N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
static N_INLINE(void, fileClose__pureZosproc_929)(int* h);
N_LIB_PRIVATE N_NIMCALL(void, close__pureZstreams_58)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_LIB_PRIVATE N_NIMCALL(void, closeThreadAndProcessHandle__pureZosproc_917)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, nsuFormatSingleElem)(NimStringV2 formatstr, NimStringV2 a);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZstreams_620)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ** dest, tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* src);
N_LIB_PRIVATE N_NIMCALL(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*, newFileHandleStream__pureZosproc_695)(NI handle);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_646)(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ** dest);
N_LIB_PRIVATE N_NIMCALL(void, hsClose__pureZosproc_641)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hsAtEnd__pureZosproc_677)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s);
N_LIB_PRIVATE N_NIMCALL(NI, hsReadData__pureZosproc_680)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
N_LIB_PRIVATE N_NIMCALL(void, hsWriteData__pureZosproc_688)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen);
N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZstreams_616)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ** dest, tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* src, NIM_BOOL cyclic);
N_LIB_PRIVATE N_NIMCALL(void, nospterminate)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringV2 command, NimStringV2 workingDir, NimStringV2* args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options);
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(void, write__pureZstreams_184)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringV2 x);
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZstreams_613)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ** dest);
N_NIMCALL(NimStringV2, rawNewString)(NI cap);
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__pureZstreams_543)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, NimStringV2* line);
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p);
N_LIB_PRIVATE N_NIMCALL(NI, ncpicountProcessors)(void);
N_LIB_PRIVATE N_NIMCALL(tySequence__PrBYolTs4TOSgE8v5oqDUQ, newSeq__pureZosproc_267)(NI len);
N_LIB_PRIVATE N_NIMCALL(tySequence__qwqHTkRvwhrRyENtudHQ7g, newSeq__pureZosproc_398)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZosproc_213)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg** dest, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* src);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_406)(tySequence__qwqHTkRvwhrRyENtudHQ7g* dest);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_275)(tySequence__PrBYolTs4TOSgE8v5oqDUQ* dest);
N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout);
N_LIB_PRIVATE TNimTypeV2 NTIv2__2rGNQnv9bU4hanI2g3svReg_;
static const struct {
NI cap; NIM_CHAR data[0+1];
} TM__HZdw8BhppcTQo8DIK46LSg_3 = { 0 | NIM_STRLIT_FLAG, "" };
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_4 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_5 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_6 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_7 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const struct {
NI cap; NIM_CHAR data[15+1];
} TM__HZdw8BhppcTQo8DIK46LSg_8 = { 15 | NIM_STRLIT_FLAG, "\\\\.\\pipe\\stdout" };
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_9 = {15, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_8};
static const struct {
NI cap; NIM_CHAR data[14+1];
} TM__HZdw8BhppcTQo8DIK46LSg_10 = { 14 | NIM_STRLIT_FLAG, "\\\\.\\pipe\\stdin" };
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_11 = {14, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_10};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_12 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_13 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_14 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_15 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_16 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_17 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__HZdw8BhppcTQo8DIK46LSg_19 = { 1 | NIM_STRLIT_FLAG, "=" };
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_20 = {1, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_19};
static const struct {
NI cap; NIM_CHAR data[44+1];
} TM__HZdw8BhppcTQo8DIK46LSg_21 = { 44 | NIM_STRLIT_FLAG, "Requested command not found: \'$1\'. OS error:" };
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_22 = {44, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_21};
N_LIB_PRIVATE TNimTypeV2 NTIv2__Uwf6VGZy4JPKquxCiOCalQ_;
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_24 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_25 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_26 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const struct {
NI cap; NIM_CHAR data[1+1];
} TM__HZdw8BhppcTQo8DIK46LSg_27 = { 1 | NIM_STRLIT_FLAG, "\012" };
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_28 = {1, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_27};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_29 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static NIM_CONST tyProc__SqRJqa5aOiKB4EuKlKh9asA TM__HZdw8BhppcTQo8DIK46LSg_30 = {NIM_NIL,NIM_NIL};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_32 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_33 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static NIM_CONST tyProc__oudJckli4GdxAXLVzBBlAw TM__HZdw8BhppcTQo8DIK46LSg_34 = {NIM_NIL,NIM_NIL};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_37 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static const NimStringV2 TM__HZdw8BhppcTQo8DIK46LSg_39 = {0, (NimStrPayload*)&TM__HZdw8BhppcTQo8DIK46LSg_3};
static NIM_CONST tyTuple__0hEbbYmlam6yzyW5MFo9cjg TM__HZdw8BhppcTQo8DIK46LSg_18 = {((NCSTRING) NIM_NIL),
((NI)-1)}
;
extern NIM_BOOL nimInErrorMode__system_3980;
static NIM_CONST NU32 TM__HZdw8BhppcTQo8DIK46LSg_2[2] = {3701606400, 2978824704};
N_LIB_PRIVATE TNimTypeV2 NTIv2__2rGNQnv9bU4hanI2g3svReg_ = {.destructor = (void*)eqdestroy___pureZosproc_219, .size = sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg), .align = (NI16) NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg), .depth = 1, .display = TM__HZdw8BhppcTQo8DIK46LSg_2, .traceImpl = (void*)eqtrace___pureZosproc_228, .flags = 0};
extern tyProc__C5kM33gEhlSKPXwfDNHofQ Dl_1442840696_;
extern tyProc__mBVOPXmpGfUrrbA9a5K9cMbQ Dl_1442841175_;
extern tyProc__IDUPJnDaqrBXTB4aj79bKLg Dl_1442840701_;
extern tyProc__Q9box9as0S1hHKH9cSO3MGDDA Dl_1442841180_;
extern tyProc__uryidYWkntM7ddjZSyxvyQ Dl_1442841179_;
extern tyProc__oew1DfaGl5XhHmnBK0HYXQ Dl_1442841164_;
extern tyProc__P13srMBg9b3d3yEV9aW4NCoA Dl_1442840682_;
extern tyProc__zP2zGemcuVRvOUE82f9a0Pw Dl_1442840741_;
extern tyProc__Ij9aBl82y9bf8kihDdsUvIEg Dl_1442840717_;
static NIM_CONST NU32 TM__HZdw8BhppcTQo8DIK46LSg_23[3] = {3701606400, 1981855744, 133846016};
N_LIB_PRIVATE TNimTypeV2 NTIv2__Uwf6VGZy4JPKquxCiOCalQ_ = {.destructor = (void*)NIM_NIL, .size = sizeof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ), .align = (NI16) NIM_ALIGNOF(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ), .depth = 2, .display = TM__HZdw8BhppcTQo8DIK46LSg_23, .traceImpl = (void*)NIM_NIL, .flags = 0};
extern tyProc__9ajZYMGL5GqiRFqiCC367oA Dl_1442840684_;
extern tyProc__9ajZYMGL5GqiRFqiCC367oA Dl_1442840690_;
extern tyProc__FprzxJFfqQdWyyGxiUsmeQ Dl_1442840732_;
extern tyProc__7S2vVNF4dlY59blFohNWnHg Dl_1442840735_;
extern tyProc__KxeGXN001TReCr89ca9c5bng Dl_1442840738_;
extern tyProc__Dx0emMHXXGxkRnYGUaFLbg Dl_1442841126_;
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(NI, minuspercent___system_790)(NI x, NI y) {
NI result;
result = (NI)0;
result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y))))));
return result;
}
static N_INLINE(NIM_BOOL, nimDecRefIsLastCyclicDyn)(void* p) {
NIM_BOOL result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NIM_BOOL)0;
{
tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* cell;
NI T5_;
if (!!((p == NIM_NIL))) goto LA3_;
T5_ = (NI)0;
T5_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)16));
cell = ((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T5_));
{
if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_;
result = NIM_TRUE;
}
goto LA6_;
LA8_: ;
{
(*cell).rc -= ((NI)16);
}
LA6_: ;
rememberCycle__system_3141(result, cell, (*((TNimTypeV2**) (p))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_206)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg** dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest));
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest));
}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_219)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest).inStream);
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest).inStream);
}
LA4_: ;
{
NIM_BOOL T8_;
T8_ = (NIM_BOOL)0;
T8_ = nimDecRefIsLastCyclicDyn((*dest).outStream);
if (!T8_) goto LA9_;
nimDestroyAndDispose((*dest).outStream);
}
LA9_: ;
{
NIM_BOOL T13_;
T13_ = (NIM_BOOL)0;
T13_ = nimDecRefIsLastCyclicDyn((*dest).errStream);
if (!T13_) goto LA14_;
nimDestroyAndDispose((*dest).errStream);
}
LA14_: ;
}
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, add__system_2686)(tyObject_CellSeq__sGle0igznE2T7vk4dBh5SQ* s, void** c, TNimTypeV2* t) {
void** colontmp_;
TNimTypeV2* colontmp__2;
{
tyTuple__N4J9cV4JZGem3ljqqj5rT0Q* d;
void* T5_;
if (!((*s).cap <= (*s).len)) goto LA3_;
(*s).cap = (NI)((NI)((*s).cap * ((NI)3)) / ((NI)2));
T5_ = (void*)0;
T5_ = allocImpl__system_1735(((NI) ((NI)((*s).cap * ((NI)16)))));
d = ((tyTuple__N4J9cV4JZGem3ljqqj5rT0Q*) (T5_));
copyMem__system_1719(((void*) (d)), ((void*) ((*s).d)), ((NI) ((NI)((*s).len * ((NI)16)))));
dealloc(((void*) ((*s).d)));
(*s).d = d;
}
LA3_: ;
colontmp_ = c;
colontmp__2 = t;
(*s).d[(*s).len].Field0 = colontmp_;
(*s).d[(*s).len].Field1 = colontmp__2;
(*s).len += ((NI)1);
}
static N_INLINE(void, nimTraceRefDyn)(void* q, void* env) {
void** p;
p = ((void**) (q));
{
tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ* j;
if (!!(((*p) == NIM_NIL))) goto LA3_;
j = ((tyObject_GcEnv__g0b9ao2MXcYnUpu9b4I8eP9bQ*) (env));
add__system_2686((&(*j).traceStack), p, (*((TNimTypeV2**) ((*p)))));
}
LA3_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, eqtrace___pureZosproc_228)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* dest, void* env) {
nimTraceRefDyn(&(*dest).inStream, env);
nimTraceRefDyn(&(*dest).outStream, env);
nimTraceRefDyn(&(*dest).errStream, env);
}
N_LIB_PRIVATE N_NIMCALL(void, createPipeHandles__pureZosproc_787)(NI* rdHandle, NI* wrHandle) {
tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw sa;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&sa), sizeof(tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw));
sa.nLength = ((int)24);
sa.lpSecurityDescriptor = NIM_NIL;
sa.bInheritHandle = ((NI32)1);
{
NI32 T3_;
NI32 T6_;
T3_ = (NI32)0;
T3_ = Dl_1442840696_(rdHandle, wrHandle, (&sa), ((NI32)0));
if (!(T3_ == ((NI32)0))) goto LA4_;
T6_ = (NI32)0;
T6_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
raiseOSError__stdZoserrors_86(T6_, TM__HZdw8BhppcTQo8DIK46LSg_4);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA4_: ;
}BeforeRet_: ;
}
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_: ;
}
static N_INLINE(NI16*, toWideCString__stdZwidestrs_41)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A x) {
NI16* result;
result = (NI16*)0;
result = x.data;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, myDup__pureZosproc_747)(NI h, NI32 inherit) {
NI result;
NI thisProc;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
thisProc = Dl_1442841179_();
{
NI32 T3_;
NI32 T6_;
T3_ = (NI32)0;
T3_ = Dl_1442841164_(thisProc, h, thisProc, (&result), ((NI32)0), inherit, ((NI32)2));
if (!(T3_ == ((NI32)0))) goto LA4_;
T6_ = (NI32)0;
T6_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
raiseOSError__stdZoserrors_86(T6_, TM__HZdw8BhppcTQo8DIK46LSg_15);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA4_: ;
}BeforeRet_: ;
return result;
}
static N_INLINE(void, closeHandleCheck__pureZosproc_636)(NI handle) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
NI32 T3_;
NI32 T6_;
T3_ = (NI32)0;
T3_ = Dl_1442840682_(handle);
if (!(T3_ == ((NI32)0))) goto LA4_;
T6_ = (NI32)0;
T6_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
raiseOSError__stdZoserrors_86(T6_, TM__HZdw8BhppcTQo8DIK46LSg_17);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA4_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, createAllPipeHandles__pureZosproc_752)(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ* si, NI* stdin_0, NI* stdout_0, NI* stderr_0, NI hash) {
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A pipeOutName;
NimStringV2 colontmpD_;
NimStringV2 colontmpD__2;
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A pipeInName;
NimStringV2 colontmpD__3;
NimStringV2 colontmpD__4;
tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw sa;
NimStringV2 T2_;
NimStringV2 T3_;
NI pipeOut;
NI16* T4_;
NI pipeIn;
NI16* T10_;
NI16* T16_;
NI T22_;
NI16* T23_;
NI T29_;
NI T30_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&pipeOutName), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
nimZeroMem((void*)(&pipeInName), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
colontmpD__4.len = 0; colontmpD__4.p = NIM_NIL;
nimZeroMem((void*)(&sa), sizeof(tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw));
sa.nLength = ((int)24);
sa.lpSecurityDescriptor = NIM_NIL;
sa.bInheritHandle = ((NI32)1);
T2_.len = 0; T2_.p = NIM_NIL;
colontmpD_ = dollar___systemZdollars_3(hash);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T2_ = rawNewString(colontmpD_.len + 15);
appendString((&T2_), TM__HZdw8BhppcTQo8DIK46LSg_9);
appendString((&T2_), colontmpD_);
colontmpD__2 = T2_;
pipeOutName = newWideCString__stdZwidestrs_287(colontmpD__2);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T3_.len = 0; T3_.p = NIM_NIL;
colontmpD__3 = dollar___systemZdollars_3(hash);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T3_ = rawNewString(colontmpD__3.len + 14);
appendString((&T3_), TM__HZdw8BhppcTQo8DIK46LSg_11);
appendString((&T3_), colontmpD__3);
colontmpD__4 = T3_;
pipeInName = newWideCString__stdZwidestrs_287(colontmpD__4);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T4_ = (NI16*)0;
T4_ = toWideCString__stdZwidestrs_41(pipeOutName);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
pipeOut = Dl_1442840701_(T4_, ((NI32)-2147483647), ((NI32)1), ((NI32)1), ((NI32)1024), ((NI32)1024), ((NI32)0), (&sa));
{
NI32 T9_;
if (!(pipeOut == ((NI)-1))) goto LA7_;
T9_ = (NI32)0;
T9_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T9_, TM__HZdw8BhppcTQo8DIK46LSg_12);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA7_: ;
T10_ = (NI16*)0;
T10_ = toWideCString__stdZwidestrs_41(pipeInName);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
pipeIn = Dl_1442840701_(T10_, ((NI32)-2147483646), ((NI32)1), ((NI32)1), ((NI32)1024), ((NI32)1024), ((NI32)0), (&sa));
{
NI32 T15_;
if (!(pipeIn == ((NI)-1))) goto LA13_;
T15_ = (NI32)0;
T15_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T15_, TM__HZdw8BhppcTQo8DIK46LSg_13);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA13_: ;
T16_ = (NI16*)0;
T16_ = toWideCString__stdZwidestrs_41(pipeOutName);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*si).hStdOutput = Dl_1442841180_(T16_, ((NI32)1048578), ((NI32)0), ((void*) ((&sa))), ((NI32)3), ((NI32)128), ((NI)0));
{
NI32 T21_;
if (!((*si).hStdOutput == ((NI)-1))) goto LA19_;
T21_ = (NI32)0;
T21_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T21_, TM__HZdw8BhppcTQo8DIK46LSg_14);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA19_: ;
T22_ = (NI)0;
T22_ = myDup__pureZosproc_747((*si).hStdOutput, ((NI32)1));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*si).hStdError = T22_;
T23_ = (NI16*)0;
T23_ = toWideCString__stdZwidestrs_41(pipeInName);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*si).hStdInput = Dl_1442841180_(T23_, ((NI32)1048577), ((NI32)0), ((void*) ((&sa))), ((NI32)3), ((NI32)128), ((NI)0));
{
NI32 T28_;
if (!((*si).hStdInput == ((NI)-1))) goto LA26_;
T28_ = (NI32)0;
T28_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T28_, TM__HZdw8BhppcTQo8DIK46LSg_16);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA26_: ;
T29_ = (NI)0;
T29_ = myDup__pureZosproc_747(pipeIn, ((NI32)0));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*stdin_0) = T29_;
T30_ = (NI)0;
T30_ = myDup__pureZosproc_747(pipeOut, ((NI32)0));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*stdout_0) = T30_;
closeHandleCheck__pureZosproc_636(pipeIn);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
closeHandleCheck__pureZosproc_636(pipeOut);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
(*stderr_0) = (*stdout_0);
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___stdZassertions_13((&colontmpD__4));
eqdestroy___stdZassertions_13((&colontmpD__3));
eqdestroy___stdZwidestrs_6((&pipeInName));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___stdZassertions_13((&colontmpD__2));
eqdestroy___stdZassertions_13((&colontmpD_));
eqdestroy___stdZwidestrs_6((&pipeOutName));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s) {
NCSTRING result;
result = (NCSTRING)0;
{
if (!(s.len == ((NI)0))) goto LA3_;
result = "";
}
goto LA1_;
LA3_: ;
{
result = ((NCSTRING) ((*s.p).data));
}
LA1_: ;
return result;
}
static N_INLINE(void, nimAddCharV1)(NimStringV2* s, NIM_CHAR c) {
prepareAdd(s, ((NI)1));
(*(*s).p).data[(*s).len] = c;
(*(*s).p).data[(NI)((*s).len + ((NI)1))] = 0;
(*s).len += ((NI)1);
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, buildCommandLine__pureZosproc_701)(NimStringV2 a, NimStringV2* args, NI argsLen_0) {
NimStringV2 result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result.len = 0; result.p = NIM_NIL;
result = nospquoteShell(a);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
{
NI i;
NI colontmp_;
NI res;
i = (NI)0;
colontmp_ = (NI)0;
colontmp_ = (argsLen_0-1);
res = ((NI)0);
{
while (1) {
NimStringV2 colontmpD_;
if (!(res <= colontmp_)) goto LA3 ;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
i = res;
nimAddCharV1((&result), 32);
colontmpD_ = nospquoteShell(args[i]);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
prepareAdd((&result), colontmpD_.len + 0);
appendString((&result), colontmpD_);
res += ((NI)1);
eqdestroy___stdZassertions_13((&colontmpD_));
} LA3: ;
}
}
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__0hEbbYmlam6yzyW5MFo9cjg, buildEnv__pureZosproc_713)(tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env) {
tyTuple__0hEbbYmlam6yzyW5MFo9cjg result;
NI L;
NCSTRING str;
void* T10_;
nimZeroMem((void*)(&result), sizeof(tyTuple__0hEbbYmlam6yzyW5MFo9cjg));
L = ((NI)0);
{
NimStringV2 key;
NimStringV2 val;
key.len = 0; key.p = NIM_NIL;
val.len = 0; val.p = NIM_NIL;
{
NI h;
NI colontmp_;
NI T3_;
NI res;
h = (NI)0;
colontmp_ = (NI)0;
T3_ = ((*env).data.len-1);
colontmp_ = T3_;
res = ((NI)0);
{
while (1) {
if (!(res <= colontmp_)) goto LA5 ;
h = res;
{
if (!(*env).data.p->data[h].Field2) goto LA8_;
eqcopy___stdZassertions_16((&key), (*env).data.p->data[h].Field0);
eqcopy___stdZassertions_16((&val), (*env).data.p->data[h].Field1);
L += (NI)((NI)(key.len + val.len) + ((NI)2));
}
LA8_: ;
res += ((NI)1);
} LA5: ;
}
}
eqdestroy___stdZassertions_13((&val));
eqdestroy___stdZassertions_13((&key));
}
T10_ = (void*)0;
T10_ = alloc0Impl__system_1737(((NI) ((NI)(L + ((NI)2)))));
str = ((NCSTRING) (T10_));
L = ((NI)0);
{
NimStringV2 key_2;
NimStringV2 val_2;
key_2.len = 0; key_2.p = NIM_NIL;
val_2.len = 0; val_2.p = NIM_NIL;
{
NI h_2;
NI colontmp__2;
NI T13_;
NI res_2;
h_2 = (NI)0;
colontmp__2 = (NI)0;
T13_ = ((*env).data.len-1);
colontmp__2 = T13_;
res_2 = ((NI)0);
{
while (1) {
if (!(res_2 <= colontmp__2)) goto LA15 ;
h_2 = res_2;
{
NimStringV2 x;
NimStringV2 T20_;
if (!(*env).data.p->data[h_2].Field2) goto LA18_;
x.len = 0; x.p = NIM_NIL;
eqcopy___stdZassertions_16((&key_2), (*env).data.p->data[h_2].Field0);
eqcopy___stdZassertions_16((&val_2), (*env).data.p->data[h_2].Field1);
T20_.len = 0; T20_.p = NIM_NIL;
T20_ = rawNewString(key_2.len + val_2.len + 1);
appendString((&T20_), key_2);
appendString((&T20_), TM__HZdw8BhppcTQo8DIK46LSg_20);
appendString((&T20_), val_2);
x = T20_;
copyMem__system_1719(((void*) ((&str[L]))), ((void*) (nimToCStringConv(x))), ((NI) ((NI)(x.len + ((NI)1)))));
L += (NI)(x.len + ((NI)1));
eqdestroy___stdZassertions_13((&x));
}
LA18_: ;
res_2 += ((NI)1);
} LA15: ;
}
}
eqdestroy___stdZassertions_13((&val_2));
eqdestroy___stdZassertions_13((&key_2));
}
result.Field0 = str;
result.Field1 = L;
return result;
}
static N_INLINE(void, fileClose__pureZosproc_643)(NI* h) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
if (!(((NI)4) < (*h))) goto LA3_;
closeHandleCheck__pureZosproc_636((*h));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
(*h) = ((NI)-1);
}
LA3_: ;
}BeforeRet_: ;
}
static N_INLINE(NIM_BOOL, eqeq___system_7567)(NCSTRING x, NCSTRING y) {
NIM_BOOL result;
result = (NIM_BOOL)0;
{
if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
result = NIM_TRUE;
}
goto LA1_;
LA3_: ;
{
NIM_BOOL T6_;
T6_ = (NIM_BOOL)0;
T6_ = (x == 0);
if (T6_) goto LA7_;
T6_ = (y == 0);
LA7_: ;
if (!T6_) goto LA8_;
result = NIM_FALSE;
}
goto LA1_;
LA8_: ;
{
int T11_;
T11_ = (int)0;
T11_ = strcmp(x, y);
result = (T11_ == ((NI32)0));
}
LA1_: ;
return result;
}
static N_INLINE(void, fileClose__pureZosproc_929)(int* h) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
if (!(((NI32)4) < (*h))) goto LA3_;
closeHandleCheck__pureZosproc_636(((NI) ((*h))));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
(*h) = ((int)-1);
}
LA3_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, closeThreadAndProcessHandle__pureZosproc_917)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
if (!!(((*p).fThreadHandle == ((NI)0)))) goto LA3_;
closeHandleCheck__pureZosproc_636((*p).fThreadHandle);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
(*p).fThreadHandle = ((NI)0);
}
LA3_: ;
{
if (!!(((*p).fProcessHandle == ((NI)0)))) goto LA7_;
closeHandleCheck__pureZosproc_636((*p).fProcessHandle);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
(*p).fProcessHandle = ((NI)0);
}
LA7_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, nospclose)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
if (!!((((*p).options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)4)))&7U)))!=0))) goto LA3_;
{
if (!((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA7_;
fileClose__pureZosproc_929((&(*p).inHandle));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
goto LA5_;
LA7_: ;
{
close__pureZstreams_58((*p).inStream);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA5_: ;
{
if (!!(((*p).outHandle == (*p).errHandle))) goto LA12_;
fileClose__pureZosproc_929((&(*p).errHandle));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA12_: ;
fileClose__pureZosproc_929((&(*p).outHandle));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
closeThreadAndProcessHandle__pureZosproc_917(p);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*, nospstartProcess)(NimStringV2 command, NimStringV2 workingDir, NimStringV2* args, NI argsLen_0, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options) {
tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* result;
NimStringV2 cmdRoot;
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A tmp;
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A ee;
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A wwd;
tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ si;
tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg procInfo;
NI success;
NI hi;
NI ho;
NI he;
NCSTRING cmdl;
NCSTRING wd;
tyTuple__0hEbbYmlam6yzyW5MFo9cjg e;
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A T56_;
NI32 flags;
NI16* T66_;
NI16* T67_;
NI16* T68_;
NI32 T69_;
NI32 lastError;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = NIM_NIL;
cmdRoot.len = 0; cmdRoot.p = NIM_NIL;
nimZeroMem((void*)(&tmp), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
nimZeroMem((void*)(&ee), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
nimZeroMem((void*)(&wwd), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
nimZeroMem((void*)(&si), sizeof(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ));
nimZeroMem((void*)(&procInfo), sizeof(tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg));
success = (NI)0;
hi = (NI)0;
ho = (NI)0;
he = (NI)0;
eqdestroy___pureZosproc_206(&result);
result = (tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) nimNewObj(sizeof(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg), NIM_ALIGNOF(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg));
(*result).Sup.m_type = (&NTIv2__2rGNQnv9bU4hanI2g3svReg_);
(*result).options = options;
(*result).exitFlag = NIM_TRUE;
si.cb = ((int)104);
{
if (!!(((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)4)))&7U)))!=0))) goto LA4_;
si.dwFlags = ((NI32)256);
{
if (!!(((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)5)))&7U)))!=0))) goto LA8_;
createPipeHandles__pureZosproc_787((&si.hStdInput), (&hi));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
createPipeHandles__pureZosproc_787((&ho), (&si.hStdOutput));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
if (!((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)3)))&7U)))!=0)) goto LA12_;
si.hStdError = si.hStdOutput;
he = ho;
}
goto LA10_;
LA12_: ;
{
createPipeHandles__pureZosproc_787((&he), (&si.hStdError));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
NI32 T17_;
NI32 T20_;
T17_ = (NI32)0;
T17_ = Dl_1442841175_(he, ((NI32)1), ((NI32)0));
if (!(T17_ == ((NI32)0))) goto LA18_;
T20_ = (NI32)0;
T20_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T20_, TM__HZdw8BhppcTQo8DIK46LSg_5);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA18_: ;
}
LA10_: ;
{
NI32 T23_;
NI32 T26_;
T23_ = (NI32)0;
T23_ = Dl_1442841175_(hi, ((NI32)1), ((NI32)0));
if (!(T23_ == ((NI32)0))) goto LA24_;
T26_ = (NI32)0;
T26_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T26_, TM__HZdw8BhppcTQo8DIK46LSg_6);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA24_: ;
{
NI32 T29_;
NI32 T32_;
T29_ = (NI32)0;
T29_ = Dl_1442841175_(ho, ((NI32)1), ((NI32)0));
if (!(T29_ == ((NI32)0))) goto LA30_;
T32_ = (NI32)0;
T32_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T32_, TM__HZdw8BhppcTQo8DIK46LSg_7);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA30_: ;
}
goto LA6_;
LA8_: ;
{
createAllPipeHandles__pureZosproc_752((&si), (&hi), (&ho), (&he), ((NI) (result)));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA6_: ;
(*result).inHandle = ((int) (hi));
(*result).outHandle = ((int) (ho));
(*result).errHandle = ((int) (he));
}
goto LA2_;
LA4_: ;
{
si.hStdError = Dl_1442840741_(((NI32)-12));
si.hStdInput = Dl_1442840741_(((NI32)-10));
si.hStdOutput = Dl_1442840741_(((NI32)-11));
(*result).inHandle = ((int) (si.hStdInput));
(*result).outHandle = ((int) (si.hStdOutput));
(*result).errHandle = ((int) (si.hStdError));
}
LA2_: ;
cmdl = (NCSTRING)0;
{
if (!((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)2)))&7U)))!=0)) goto LA37_;
cmdl = nimToCStringConv(command);
}
goto LA35_;
LA37_: ;
{
cmdRoot = buildCommandLine__pureZosproc_701(command, args, argsLen_0);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
cmdl = nimToCStringConv(cmdRoot);
}
LA35_: ;
wd = ((NCSTRING) NIM_NIL);
e = TM__HZdw8BhppcTQo8DIK46LSg_18;
{
if (!(((NI)0) < workingDir.len)) goto LA42_;
wd = nimToCStringConv(workingDir);
}
LA42_: ;
{
if (!!((env == ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL)))) goto LA46_;
e = buildEnv__pureZosproc_713(env);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA46_: ;
{
NimStringV2 colontmpD_;
tyArray__nHXaesL0DJZHyVS07ARPRA T53_;
if (!((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)0)))&7U)))!=0)) goto LA50_;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
colontmpD_ = cstrToNimstr(cmdl);
T53_[0] = colontmpD_;
echoBinSafe(T53_, 1);
{
LA52_:;
}
{
eqdestroy___stdZassertions_13((&colontmpD_));
}
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA50_: ;
tmp = newWideCString__stdZwidestrs_281(cmdl);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
if (!(e.Field0 == 0)) goto LA59_;
ee = newWideCString__stdZwidestrs_281(((NCSTRING) NIM_NIL));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
goto LA57_;
LA59_: ;
{
ee = newWideCString__stdZwidestrs_260(e.Field0, e.Field1);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA57_: ;
wwd = newWideCString__stdZwidestrs_281(wd);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
flags = ((NI32)1056);
{
if (!((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)6)))&7U)))!=0)) goto LA64_;
flags = (NI32)(flags | ((NI32)134217728));
}
LA64_: ;
T66_ = (NI16*)0;
T66_ = toWideCString__stdZwidestrs_41(tmp);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T67_ = (NI16*)0;
T67_ = toWideCString__stdZwidestrs_41(ee);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T68_ = (NI16*)0;
T68_ = toWideCString__stdZwidestrs_41(wwd);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T69_ = (NI32)0;
T69_ = Dl_1442840717_(((NI16*) NIM_NIL), T66_, ((tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw*) NIM_NIL), ((tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw*) NIM_NIL), ((NI32)1), flags, T67_, T68_, (&si), (&procInfo));
success = ((NI) (T69_));
lastError = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
if (!!(((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)4)))&7U)))!=0))) goto LA72_;
fileClose__pureZosproc_643((&si.hStdInput));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
fileClose__pureZosproc_643((&si.hStdOutput));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
if (!!(((options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)3)))&7U)))!=0))) goto LA76_;
fileClose__pureZosproc_643((&si.hStdError));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA76_: ;
}
LA72_: ;
{
NIM_BOOL T80_;
T80_ = (NIM_BOOL)0;
T80_ = eqeq___system_7567(e.Field0, ((NCSTRING) NIM_NIL));
if (!!(T80_)) goto LA81_;
dealloc(((void*) (e.Field0)));
}
LA81_: ;
{
if (!(success == ((NI)0))) goto LA85_;
{
if (!(((*result).options &((NU8)1<<((NU)((((tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA)5)))&7U)))!=0)) goto LA89_;
nospclose(result);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA89_: ;
{
NimStringV2 colontmpD__2;
NimStringV2 colontmpD__3;
if (!(((NI) (lastError)) == ((NI)87) || ((NI) (lastError)) == ((NI)2))) goto LA93_;
colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
colontmpD__3.len = 0; colontmpD__3.p = NIM_NIL;
colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
eqcopy___stdZassertions_16((&colontmpD__2), command);
colontmpD__3 = nsuFormatSingleElem(TM__HZdw8BhppcTQo8DIK46LSg_22, colontmpD__2);
if (NIM_UNLIKELY(*nimErr_)) goto LA95_;
raiseOSError__stdZoserrors_86(lastError, colontmpD__3);
if (NIM_UNLIKELY(*nimErr_)) goto LA95_;
{
LA95_:;
}
{
eqdestroy___stdZassertions_13((&colontmpD__3));
}
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
goto LA91_;
LA93_: ;
{
raiseOSError__stdZoserrors_86(lastError, command);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA91_: ;
}
LA85_: ;
(*result).fProcessHandle = procInfo.hProcess;
(*result).fThreadHandle = procInfo.hThread;
(*result).id = ((NI) (procInfo.dwProcessId));
(*result).exitFlag = NIM_FALSE;
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___stdZwidestrs_6((&wwd));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___stdZwidestrs_6((&ee));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___stdZwidestrs_6((&tmp));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqdestroy___stdZassertions_13((&cmdRoot));
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_646)(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ** dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest));
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest));
}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(void, hsClose__pureZosproc_641)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
fileClose__pureZosproc_643((&(*((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s))).handle));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hsAtEnd__pureZosproc_677)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s) {
NIM_BOOL result;
{ result = (NIM_BOOL)0;
result = (*((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s))).atTheEnd;
goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, hsReadData__pureZosproc_680)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
NI result;
tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* s_2;
NI32 br;
NI32 a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
s_2 = NIM_NIL;
s_2 = ((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s));
{
if (!(*s_2).atTheEnd) goto LA3_;
result = ((NI)0);
goto BeforeRet_;
}
LA3_: ;
br = (NI32)0;
a = Dl_1442840684_((*s_2).handle, buffer, ((int) (bufLen)), (&br), NIM_NIL);
{
NIM_BOOL T7_;
NI32 T11_;
T7_ = (NIM_BOOL)0;
T7_ = (a == ((NI32)0));
if (!(T7_)) goto LA8_;
T7_ = !((br == ((NI32)0)));
LA8_: ;
if (!T7_) goto LA9_;
T11_ = (NI32)0;
T11_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
raiseOSError__stdZoserrors_86(T11_, TM__HZdw8BhppcTQo8DIK46LSg_24);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA9_: ;
(*s_2).atTheEnd = (br == ((NI32)0));
result = ((NI) (br));
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, hsWriteData__pureZosproc_688)(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* s, void* buffer, NI bufLen) {
tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* s_2;
NI32 bytesWritten;
NI32 a;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
s_2 = NIM_NIL;
s_2 = ((tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) (s));
bytesWritten = (NI32)0;
a = Dl_1442840690_((*s_2).handle, buffer, ((int) (bufLen)), (&bytesWritten), NIM_NIL);
{
NI32 T5_;
if (!(a == ((NI32)0))) goto LA3_;
T5_ = (NI32)0;
T5_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
raiseOSError__stdZoserrors_86(T5_, TM__HZdw8BhppcTQo8DIK46LSg_25);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*, newFileHandleStream__pureZosproc_695)(NI handle) {
tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* result;
result = NIM_NIL;
eqdestroy___pureZosproc_646(&result);
result = (tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ*) nimNewObj(sizeof(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ), NIM_ALIGNOF(tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ));
(*result).Sup.Sup.m_type = (&NTIv2__Uwf6VGZy4JPKquxCiOCalQ_);
(*result).handle = handle;
(*result).Sup.closeImpl = hsClose__pureZosproc_641;
(*result).Sup.atEndImpl = hsAtEnd__pureZosproc_677;
(*result).Sup.readDataImpl = hsReadData__pureZosproc_680;
(*result).Sup.writeDataImpl = hsWriteData__pureZosproc_688;
return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospinputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = NIM_NIL;
{
tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* T5_;
if (!((*p).inStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
T5_ = NIM_NIL;
T5_ = newFileHandleStream__pureZosproc_695(((NI) ((*p).inHandle)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqsink___pureZstreams_620(&(*p).inStream, &T5_->Sup);
}
LA3_: ;
eqcopy___pureZstreams_616(&result, (*p).inStream, NIM_FALSE);
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*, nospoutputStream)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = NIM_NIL;
{
tyObject_FileHandleStreamcolonObjectType___Uwf6VGZy4JPKquxCiOCalQ* T5_;
if (!((*p).outStream == ((tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ*) NIM_NIL))) goto LA3_;
T5_ = NIM_NIL;
T5_ = newFileHandleStream__pureZosproc_695(((NI) ((*p).outHandle)));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
eqsink___pureZstreams_620(&(*p).outStream, &T5_->Sup);
}
LA3_: ;
eqcopy___pureZstreams_616(&result, (*p).outStream, NIM_FALSE);
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, nosprunning)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
NIM_BOOL result;
{ result = (NIM_BOOL)0;
{
if (!(*p).exitFlag) goto LA3_;
result = NIM_FALSE;
goto BeforeRet_;
}
goto LA1_;
LA3_: ;
{
NI32 x;
x = Dl_1442840732_((*p).fProcessHandle, ((NI32)0));
result = (x == ((NI32)258));
goto BeforeRet_;
}
LA1_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, nospterminate)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
NIM_BOOL T3_;
NI32 T6_;
T3_ = (NIM_BOOL)0;
T3_ = nosprunning(p);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
if (!T3_) goto LA4_;
T6_ = (NI32)0;
T6_ = Dl_1442840735_((*p).fProcessHandle, ((NI)0));
(void)(T6_);
}
LA4_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, nospwaitForExit)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p, NI timeout) {
NI result;
NI32 res;
NI32 status;
NI32 T9_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
{
if (!(*p).exitFlag) goto LA3_;
result = ((NI) ((*p).exitStatus));
goto BeforeRet_;
}
LA3_: ;
res = Dl_1442840732_((*p).fProcessHandle, ((NI32) (timeout)));
{
if (!(res == ((NI32)258))) goto LA7_;
nospterminate(p);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA7_: ;
status = (NI32)0;
T9_ = (NI32)0;
T9_ = Dl_1442840738_((*p).fProcessHandle, (&status));
(void)(T9_);
{
if (!!((status == ((NI32)259)))) goto LA12_;
(*p).exitFlag = NIM_TRUE;
(*p).exitStatus = status;
closeThreadAndProcessHandle__pureZosproc_917(p);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
result = ((NI) (status));
}
goto LA10_;
LA12_: ;
{
result = ((NI)-1);
}
LA10_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_1482)(tyTuple__XOVT24GHXwqiEj5GCsEGCA* dest) {
eqdestroy___stdZassertions_13((&(*dest).Field0));
}
N_LIB_PRIVATE N_NIMCALL(NI, nosppeekExitCode)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p) {
NI result;
NIM_BOOL b;
NI32 T5_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
{
if (!(*p).exitFlag) goto LA3_;
result = ((NI) ((*p).exitStatus));
goto BeforeRet_;
}
LA3_: ;
result = ((NI)-1);
T5_ = (NI32)0;
T5_ = Dl_1442840732_((*p).fProcessHandle, ((NI32)0));
b = (T5_ == ((NI32)258));
{
NI32 status;
NI32 T10_;
if (!!(b)) goto LA8_;
status = (NI32)0;
T10_ = (NI32)0;
T10_ = Dl_1442840738_((*p).fProcessHandle, (&status));
(void)(T10_);
(*p).exitFlag = NIM_TRUE;
(*p).exitStatus = status;
closeThreadAndProcessHandle__pureZosproc_917(p);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
result = ((NI) (status));
}
LA8_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(tyTuple__XOVT24GHXwqiEj5GCsEGCA, execCmdEx__pureZosproc_1441)(NimStringV2 command, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* env, NimStringV2 workingDir, NimStringV2 input) {
tyTuple__XOVT24GHXwqiEj5GCsEGCA result;
tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* outp;
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* colontmpD_;
NimStringV2 colontmp_;
NimStringV2 line;
tyArray__8ZvwQIddfpj2THRVPsFzIQ T2_;
NI colontmp__2;
NimStringV2 blitTmp;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
nimZeroMem((void*)(&result), sizeof(tyTuple__XOVT24GHXwqiEj5GCsEGCA));
p = NIM_NIL;
outp = NIM_NIL;
colontmpD_ = NIM_NIL;
colontmp_.len = 0; colontmp_.p = NIM_NIL;
line.len = 0; line.p = NIM_NIL;
p = nospstartProcess(command, workingDir, T2_, 0, env, (options | 4));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
outp = nospoutputStream(p);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
tyObject_StreamObj__THYguAi9bSgidczZ3ywEIMQ* colontmpD__2;
if (!(((NI)0) < input.len)) goto LA5_;
colontmpD__2 = NIM_NIL;
colontmpD__2 = nospinputStream(p);
if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
write__pureZstreams_184(colontmpD__2, input);
if (NIM_UNLIKELY(*nimErr_)) goto LA7_;
{
LA7_:;
}
{
eqdestroy___pureZstreams_613(&colontmpD__2);
}
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
LA5_: ;
colontmpD_ = nospinputStream(p);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
close__pureZstreams_58(colontmpD_);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
colontmp_ = TM__HZdw8BhppcTQo8DIK46LSg_26;
colontmp__2 = ((NI)-1);
blitTmp = colontmp_;
colontmp_.len = 0; colontmp_.p = NIM_NIL;
result.Field0 = blitTmp;
result.Field1 = colontmp__2;
line = rawNewString(((NI)120));
{
while (1) {
{
NIM_BOOL T14_;
T14_ = (NIM_BOOL)0;
T14_ = readLine__pureZstreams_543(outp, (&line));
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
if (!T14_) goto LA15_;
prepareAdd((&result.Field0), line.len + 0);
appendString((&result.Field0), line);
prepareAdd((&result.Field0), 1);
appendString((&result.Field0), TM__HZdw8BhppcTQo8DIK46LSg_28);
}
goto LA12_;
LA15_: ;
{
NI T18_;
T18_ = (NI)0;
T18_ = nosppeekExitCode(p);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
result.Field1 = T18_;
{
if (!!((result.Field1 == ((NI)-1)))) goto LA21_;
goto LA10;
}
LA21_: ;
}
LA12_: ;
}
} LA10: ;
nospclose(p);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
{
LA1_:;
}
{
eqdestroy___stdZassertions_13((&line));
eqdestroy___stdZassertions_13((&colontmp_));
eqdestroy___pureZstreams_613(&colontmpD_);
eqdestroy___pureZstreams_613(&outp);
eqdestroy___pureZosproc_206(&p);
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(NI, nospexecCmd)(NimStringV2 command) {
NI result;
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A c;
tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ si;
tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg procInfo;
NI process;
NI32 L;
NI32 res;
NI16* T2_;
NIM_BOOL oldNimErrFin1_;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
nimZeroMem((void*)(&c), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
nimZeroMem((void*)(&si), sizeof(tyObject_STARTUPINFO__WGlpKvY9cdd69bAwMQMNLYoQ));
nimZeroMem((void*)(&procInfo), sizeof(tyObject_PROCESS_INFORMATION__rpgAdaffN9b79bo2kEQiFsMg));
process = (NI)0;
L = (NI32)0;
si.cb = ((int)104);
si.hStdError = Dl_1442840741_(((NI32)-12));
si.hStdInput = Dl_1442840741_(((NI32)-10));
si.hStdOutput = Dl_1442840741_(((NI32)-11));
c = newWideCString__stdZwidestrs_287(command);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
T2_ = (NI16*)0;
T2_ = toWideCString__stdZwidestrs_41(c);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
res = Dl_1442840717_(((NI16*) NIM_NIL), T2_, ((tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw*) NIM_NIL), ((tyObject_SECURITY_ATTRIBUTES__P4HW9ceaevTBZ5O3kGC8yyw*) NIM_NIL), ((NI32)0), ((NI32)32), ((NI16*) NIM_NIL), ((NI16*) NIM_NIL), (&si), (&procInfo));
{
NI32 T7_;
if (!(res == ((NI32)0))) goto LA5_;
T7_ = (NI32)0;
T7_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
raiseOSError__stdZoserrors_86(T7_, TM__HZdw8BhppcTQo8DIK46LSg_29);
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
}
goto LA3_;
LA5_: ;
{
NI32 T9_;
NI32 T17_;
process = procInfo.hProcess;
T9_ = (NI32)0;
T9_ = Dl_1442840682_(procInfo.hThread);
(void)(T9_);
{
NI32 T12_;
NI32 T15_;
T12_ = (NI32)0;
T12_ = Dl_1442840732_(process, ((NI32)-1));
if (!!((T12_ == ((NI32)-1)))) goto LA13_;
T15_ = (NI32)0;
T15_ = Dl_1442840738_(process, (&L));
(void)(T15_);
result = ((NI) (L));
}
goto LA10_;
LA13_: ;
{
result = ((NI)-1);
}
LA10_: ;
T17_ = (NI32)0;
T17_ = Dl_1442840682_(process);
(void)(T17_);
}
LA3_: ;
{
LA1_:;
}
{
oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE;
eqdestroy___stdZwidestrs_6((&c));
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
*nimErr_ = oldNimErrFin1_;
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZosproc_1488)(tyTuple__XOVT24GHXwqiEj5GCsEGCA* dest, tyTuple__XOVT24GHXwqiEj5GCsEGCA src) {
if ((*dest).Field0.p != src.Field0.p) { eqdestroy___stdZassertions_13((&(*dest).Field0));
}
(*dest).Field0.len = src.Field0.len; (*dest).Field0.p = src.Field0.p;
(*dest).Field1 = src.Field1;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_559)(tyProc__SqRJqa5aOiKB4EuKlKh9asA* dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest).ClE_0);
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest).ClE_0);
}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, nospcountProcessors)(void) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
result = ncpicountProcessors();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqsink___pureZosproc_213)(tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg** dest, tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* src) {
tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* colontmp_;
colontmp_ = (*dest);
(*dest) = src;
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn(colontmp_);
if (!T3_) goto LA4_;
nimDestroyAndDispose(colontmp_);
}
LA4_: ;
}
N_LIB_PRIVATE N_NIMCALL(NI, nospexecProcesses)(NimStringV2* cmds, NI cmdsLen_0, tySet_tyEnum_ProcessOption__bnU6W8LhTMnT4JaSWtGlSA options, NI n, tyProc__SqRJqa5aOiKB4EuKlKh9asA beforeRunEvent, tyProc__oudJckli4GdxAXLVzBBlAw afterRunEvent) {
NI result;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result = (NI)0;
{
tySequence__PrBYolTs4TOSgE8v5oqDUQ q;
tySequence__qwqHTkRvwhrRyENtudHQ7g idxs;
NI i;
tyArray__SLBTEB08vk46ttuRaTxAYw w;
NI m;
NI wcount;
NI ecount;
if (!(((NI)1) < n)) goto LA3_;
q.len = 0; q.p = NIM_NIL;
idxs.len = 0; idxs.p = NIM_NIL;
i = ((NI)0);
q = newSeq__pureZosproc_267(((NI) (n)));
idxs = newSeq__pureZosproc_398(((NI) (n)));
nimZeroMem((void*)w, sizeof(tyArray__SLBTEB08vk46ttuRaTxAYw));
m = ((((n <= ((NI)64)) ? n : ((NI)64)) <= cmdsLen_0) ? ((n <= ((NI)64)) ? n : ((NI)64)) : cmdsLen_0);
wcount = m;
{
while (1) {
tyArray__8ZvwQIddfpj2THRVPsFzIQ T12_;
tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* T13_;
if (!(i < m)) goto LA7 ;
{
if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_30.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_30.ClE_0))) goto LA10_;
beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_31)(beforeRunEvent.ClP_0))(i);
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
}
LA10_: ;
T13_ = NIM_NIL;
T13_ = nospstartProcess(cmds[i], TM__HZdw8BhppcTQo8DIK46LSg_32, T12_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
eqsink___pureZosproc_213(&q.p->data[i], T13_);
idxs.p->data[i] = i;
w[(i)- 0] = (*q.p->data[i]).fProcessHandle;
i += ((NI)1);
} LA7: ;
}
ecount = cmdsLen_0;
{
while (1) {
NI rexit;
NI32 ret;
if (!(((NI)0) < ecount)) goto LA15 ;
rexit = ((NI)-1);
ret = Dl_1442841126_(((NI32) (wcount)), w, ((NI32)0), ((NI32)-1));
{
if (!(ret == ((NI32)258))) goto LA18_;
}
goto LA16_;
LA18_: ;
{
NI32 T23_;
if (!(ret == ((NI32)-1))) goto LA21_;
T23_ = (NI32)0;
T23_ = osLastError__stdZoserrors_89();
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
raiseOSError__stdZoserrors_86(T23_, TM__HZdw8BhppcTQo8DIK46LSg_33);
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
}
goto LA16_;
LA21_: ;
{
NI32 status;
status = (NI32)0;
{
NI r;
NI colontmp_;
NI res;
r = (NI)0;
colontmp_ = (NI)0;
colontmp_ = (NI)(m - ((NI)1));
res = ((NI)0);
{
while (1) {
if (!(res <= colontmp_)) goto LA27 ;
r = res;
{
NIM_BOOL T30_;
NI32 T34_;
T30_ = (NIM_BOOL)0;
T30_ = !((q.p->data[r] == 0));
if (!(T30_)) goto LA31_;
T30_ = ((*q.p->data[r]).fProcessHandle == w[(ret)- 0]);
LA31_: ;
if (!T30_) goto LA32_;
T34_ = (NI32)0;
T34_ = Dl_1442840738_((*q.p->data[r]).fProcessHandle, (&status));
(void)(T34_);
(*q.p->data[r]).exitFlag = NIM_TRUE;
(*q.p->data[r]).exitStatus = status;
rexit = r;
goto LA25;
}
LA32_: ;
res += ((NI)1);
} LA27: ;
}
} LA25: ;
}
LA16_: ;
{
NI processHandle;
NI T39_;
if (!(((NI)0) <= rexit)) goto LA37_;
processHandle = (*q.p->data[rexit]).fProcessHandle;
T39_ = (NI)0;
T39_ = nosppeekExitCode(q.p->data[rexit]);
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
result = ((result >= (T39_ > 0? (T39_) : -(T39_))) ? result : (T39_ > 0? (T39_) : -(T39_)));
{
if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_34.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_34.ClE_0))) goto LA42_;
afterRunEvent.ClE_0? afterRunEvent.ClP_0(idxs.p->data[rexit], q.p->data[rexit], afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_35)(afterRunEvent.ClP_0))(idxs.p->data[rexit], q.p->data[rexit]);
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
}
LA42_: ;
nospclose(q.p->data[rexit]);
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
{
tyArray__8ZvwQIddfpj2THRVPsFzIQ T52_;
tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* T53_;
if (!(i < cmdsLen_0)) goto LA46_;
{
if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_30.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_30.ClE_0))) goto LA50_;
beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_36)(beforeRunEvent.ClP_0))(i);
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
}
LA50_: ;
T53_ = NIM_NIL;
T53_ = nospstartProcess(cmds[i], TM__HZdw8BhppcTQo8DIK46LSg_37, T52_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
if (NIM_UNLIKELY(*nimErr_)) goto LA5_;
eqsink___pureZosproc_213(&q.p->data[rexit], T53_);
idxs.p->data[rexit] = i;
w[(rexit)- 0] = (*q.p->data[rexit]).fProcessHandle;
i += ((NI)1);
}
goto LA44_;
LA46_: ;
{
{
NI k;
NI colontmp__2;
NI res_2;
k = (NI)0;
colontmp__2 = (NI)0;
colontmp__2 = (NI)(wcount - ((NI)1));
res_2 = ((NI)0);
{
while (1) {
if (!(res_2 <= colontmp__2)) goto LA57 ;
k = res_2;
{
if (!(w[(k)- 0] == processHandle)) goto LA60_;
w[(k)- 0] = w[((NI)(wcount - ((NI)1)))- 0];
w[((NI)(wcount - ((NI)1)))- 0] = ((NI)0);
wcount -= ((NI)1);
goto LA55;
}
LA60_: ;
res_2 += ((NI)1);
} LA57: ;
}
} LA55: ;
eqsink___pureZosproc_213(&q.p->data[rexit], ((tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg*) NIM_NIL));
}
LA44_: ;
ecount -= ((NI)1);
}
LA37_: ;
} LA15: ;
}
{
LA5_:;
}
{
eqdestroy___pureZosproc_406((&idxs));
eqdestroy___pureZosproc_275((&q));
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
goto LA1_;
LA3_: ;
{
{
NI i_2;
NI colontmp__3;
NI res_3;
i_2 = (NI)0;
colontmp__3 = (NI)0;
colontmp__3 = (cmdsLen_0-1);
res_3 = ((NI)0);
{
while (1) {
tyObject_ProcessObj__2rGNQnv9bU4hanI2g3svReg* p;
tyArray__8ZvwQIddfpj2THRVPsFzIQ T73_;
NI T74_;
if (!(res_3 <= colontmp__3)) goto LA67 ;
p = NIM_NIL;
i_2 = res_3;
{
if (!!((beforeRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_30.ClP_0 && beforeRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_30.ClE_0))) goto LA71_;
beforeRunEvent.ClE_0? beforeRunEvent.ClP_0(i_2, beforeRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_38)(beforeRunEvent.ClP_0))(i_2);
if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
}
LA71_: ;
p = nospstartProcess(cmds[i_2], TM__HZdw8BhppcTQo8DIK46LSg_39, T73_, 0, ((tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg*) NIM_NIL), (options | 4));
if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
T74_ = (NI)0;
T74_ = nospwaitForExit(p, ((NI)-1));
if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
result = (((T74_ > 0? (T74_) : -(T74_)) >= result) ? (T74_ > 0? (T74_) : -(T74_)) : result);
{
if (!!((afterRunEvent.ClP_0 == TM__HZdw8BhppcTQo8DIK46LSg_34.ClP_0 && afterRunEvent.ClE_0 == TM__HZdw8BhppcTQo8DIK46LSg_34.ClE_0))) goto LA77_;
afterRunEvent.ClE_0? afterRunEvent.ClP_0(i_2, p, afterRunEvent.ClE_0):((TM__HZdw8BhppcTQo8DIK46LSg_40)(afterRunEvent.ClP_0))(i_2, p);
if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
}
LA77_: ;
nospclose(p);
if (NIM_UNLIKELY(*nimErr_)) goto LA68_;
res_3 += ((NI)1);
{
LA68_:;
}
{
eqdestroy___pureZosproc_206(&p);
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
} LA67: ;
}
}
}
LA1_: ;
}BeforeRet_: ;
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZosproc_579)(tyProc__oudJckli4GdxAXLVzBBlAw* dest) {
{
NIM_BOOL T3_;
T3_ = (NIM_BOOL)0;
T3_ = nimDecRefIsLastCyclicDyn((*dest).ClE_0);
if (!T3_) goto LA4_;
nimDestroyAndDispose((*dest).ClE_0);
}
LA4_: ;
}