/* Generated by Nim Compiler v0.16.0 */ /* (c) 2017 Andreas Rumpf */ /* The generated code is subject to the original license. */ #define NIM_INTBITS 32 #include "nimbase.h" #include #include #include #include #undef linux typedef struct TY_sM4lkSb7zS6F7OVMvW9cffQ TY_sM4lkSb7zS6F7OVMvW9cffQ; typedef struct NimStringDesc NimStringDesc; typedef struct TGenericSeq TGenericSeq; typedef struct TNimType TNimType; typedef struct TNimNode TNimNode; typedef struct TY_UV3llMMYFckfui8YMBuUZA TY_UV3llMMYFckfui8YMBuUZA; typedef struct Oserror_3XwRQvmzCEOC4QnT706q1g Oserror_3XwRQvmzCEOC4QnT706q1g; typedef struct Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg; typedef struct Exception Exception; typedef struct TNimObject TNimObject; typedef struct Cell_1zcF9cV8XIAtbN8h5HRUB8g Cell_1zcF9cV8XIAtbN8h5HRUB8g; typedef struct Cellseq_Axo1XVm9aaQueTOldv8le5w Cellseq_Axo1XVm9aaQueTOldv8le5w; typedef struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ Gcheap_1TRH1TZMaVZTnLNcIHuNFQ; typedef struct Gcstack_7fytPA5bBsob6See21YMRA Gcstack_7fytPA5bBsob6See21YMRA; typedef struct Memregion_x81NhDv59b8ercDZ9bi85jyg Memregion_x81NhDv59b8ercDZ9bi85jyg; typedef struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ Smallchunk_tXn60W2f8h3jgAYdEmy5NQ; typedef struct Llchunk_XsENErzHIZV9bhvyJx56wGw Llchunk_XsENErzHIZV9bhvyJx56wGw; typedef struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg Bigchunk_Rv9c70Uhp2TytkX7eH78qEg; typedef struct Intset_EZObFrE3NC9bIb3YMkY9crZA Intset_EZObFrE3NC9bIb3YMkY9crZA; typedef struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw Trunk_W0r8S0Y3UGke6T9bIUWnnuw; typedef struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw Avlnode_IaqjtwKhxLEpvDS9bct9blEw; typedef struct Gcstat_0RwLoVBHZPfUAcLczmfQAg Gcstat_0RwLoVBHZPfUAcLczmfQAg; typedef struct Cellset_jG87P0AI9aZtss9ccTYBIISQ Cellset_jG87P0AI9aZtss9ccTYBIISQ; typedef struct Pagedesc_fublkgIY4LG3mT51LU2WHg Pagedesc_fublkgIY4LG3mT51LU2WHg; typedef struct Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA; typedef struct TY_7q7q3E6Oj24ZNVJb9aonhAg TY_7q7q3E6Oj24ZNVJb9aonhAg; typedef struct Ioerror_9czoZw3pzPyrBmb5zTHY1OQ Ioerror_9czoZw3pzPyrBmb5zTHY1OQ; typedef struct Filetime_bs4NMleDDVF7xsEK0SGLBw Filetime_bs4NMleDDVF7xsEK0SGLBw; typedef struct TSafePoint TSafePoint; typedef struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w Basechunk_Sdq7WpT6qAH858F5ZEdG3w; typedef struct Freecell_u6M5LHprqzkn9axr04yg9bGQ Freecell_u6M5LHprqzkn9axr04yg9bGQ; struct TGenericSeq { NI len; NI reserved; }; struct NimStringDesc { TGenericSeq Sup; NIM_CHAR data[SEQ_DECL_SIZE]; }; typedef NU8 Tnimkind_jIBKr1ejBgsfM33Kxw4j7A; typedef NU8 Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set; typedef N_NIMCALL_PTR(void, TY_ojoeKfW4VYIm36I9cpDTQIg) (void* p0, NI op0); typedef N_NIMCALL_PTR(void*, TY_WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p0); struct TNimType { NI size; Tnimkind_jIBKr1ejBgsfM33Kxw4j7A kind; Tnimtypeflag_v8QUszD1sWlSIWZz7mC4bQ_Set flags; TNimType* base; TNimNode* node; void* finalizer; TY_ojoeKfW4VYIm36I9cpDTQIg marker; TY_WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy; }; typedef NU8 Tnimnodekind_unfNsxrcATrufDZmpBq4HQ; struct TNimNode { Tnimnodekind_unfNsxrcATrufDZmpBq4HQ kind; NI offset; TNimType* typ; NCSTRING name; NI len; TNimNode** sons; }; typedef N_NIMCALL_PTR(void, TY_T4eqaYlFJYZUv9aG9b1TV0bQ) (void); struct TY_UV3llMMYFckfui8YMBuUZA { NimStringDesc* Field0; NimStringDesc* Field1; }; struct TNimObject { TNimType* m_type; }; struct Exception { TNimObject Sup; Exception* parent; NCSTRING name; NimStringDesc* message; NimStringDesc* trace; }; struct Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg { Exception Sup; }; struct Oserror_3XwRQvmzCEOC4QnT706q1g { Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Sup; NI32 errorcode; }; typedef N_STDCALL_PTR(NI32, TY_aO673xGTLLxou7P7GxoCXA) (NI32 dwflags0, void* lpsource0, NI32 dwmessageid0, NI32 dwlanguageid0, void* lpbuffer0, NI32 nsize0, void* Arguments0); typedef N_STDCALL_PTR(void, TY_im9buRnIvptJfzdASYMEbBA) (void* p0); struct Cell_1zcF9cV8XIAtbN8h5HRUB8g { NI refcount; TNimType* typ; }; struct Cellseq_Axo1XVm9aaQueTOldv8le5w { NI len; NI cap; Cell_1zcF9cV8XIAtbN8h5HRUB8g** d; }; typedef Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* TY_SiRwrEKZdLgxqz9a9aoVBglg[512]; typedef Trunk_W0r8S0Y3UGke6T9bIUWnnuw* TY_lh2A89ahMmYg9bCmpVaplLbA[256]; struct Intset_EZObFrE3NC9bIb3YMkY9crZA { TY_lh2A89ahMmYg9bCmpVaplLbA data; }; struct Memregion_x81NhDv59b8ercDZ9bi85jyg { NI minlargeobj; NI maxlargeobj; TY_SiRwrEKZdLgxqz9a9aoVBglg freesmallchunks; Llchunk_XsENErzHIZV9bhvyJx56wGw* llmem; NI currmem; NI maxmem; NI freemem; NI lastsize; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* freechunkslist; Intset_EZObFrE3NC9bIb3YMkY9crZA chunkstarts; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* root; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* deleted; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* last; Avlnode_IaqjtwKhxLEpvDS9bct9blEw* freeavlnodes; NIM_BOOL locked; NIM_BOOL blockchunksizeincrease; NI nextchunksize; }; struct Gcstat_0RwLoVBHZPfUAcLczmfQAg { NI stackscans; NI cyclecollections; NI maxthreshold; NI maxstacksize; NI maxstackcells; NI cycletablesize; NI64 maxpause; }; struct Cellset_jG87P0AI9aZtss9ccTYBIISQ { NI counter; NI max; Pagedesc_fublkgIY4LG3mT51LU2WHg* head; Pagedesc_fublkgIY4LG3mT51LU2WHg** data; }; struct Gcheap_1TRH1TZMaVZTnLNcIHuNFQ { Gcstack_7fytPA5bBsob6See21YMRA* stack; void* stackbottom; NI cyclethreshold; Cellseq_Axo1XVm9aaQueTOldv8le5w zct; Cellseq_Axo1XVm9aaQueTOldv8le5w decstack; Cellseq_Axo1XVm9aaQueTOldv8le5w tempstack; NI recgclock; Memregion_x81NhDv59b8ercDZ9bi85jyg region; Gcstat_0RwLoVBHZPfUAcLczmfQAg stat; Cellset_jG87P0AI9aZtss9ccTYBIISQ marked; Cellseq_Axo1XVm9aaQueTOldv8le5w additionalroots; }; typedef N_STDCALL_PTR(NI32, TY_9bXer9a4ps9aSGctILcxWReVw) (void); typedef N_STDCALL_PTR(NI32, TY_W1Y0YSv0z9cf3pqKJgjGdqQ) (NI16* lpfilename0, NI32 nbufferlength0, NI16* lpbuffer0, NI16** lpfilepart0); typedef N_STDCALL_PTR(NI, TY_YTOHOMfxh6yqeIrwoF3EQw) (NI16* lpfilename0, Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA* lpfindfiledata0); struct TY_7q7q3E6Oj24ZNVJb9aonhAg { NimStringDesc* Field0; NimStringDesc* Field1; NimStringDesc* Field2; }; typedef N_STDCALL_PTR(NI32, TY_2xBzxeMx4l7D6jwHak3G2g) (NI handle0, NI16* buf0, NI32 size0); typedef N_STDCALL_PTR(NI32, TY_SQvdXqIshqDsOrj27LgeLQ) (NI16* pathname0, void* security0); typedef N_STDCALL_PTR(NI32, TY_fRm1QK2sgVg9aFiEV5T74jA) (NI16* lpfilename0); struct Ioerror_9czoZw3pzPyrBmb5zTHY1OQ { Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Sup; }; typedef N_STDCALL_PTR(NI16*, TY_C6bRt4Mqo6LDqlyl9bIOYWQ) (void); typedef N_STDCALL_PTR(NI32, TY_l1Nv6c9cTPsVTSfpp9bI8Q7Q) (NI16* lpname0, NI16* lpvalue0); typedef N_STDCALL_PTR(NI32, TY_UWgwsOCvecqqlVsXbs132A) (NI32 nbufferlength0, NI16* lpbuffer0); typedef NimStringDesc* TY_24KAM9afIUgUaqBaEBB6r9bg[3]; typedef NU8 Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg; struct Filetime_bs4NMleDDVF7xsEK0SGLBw { NI32 dwlowdatetime; NI32 dwhighdatetime; }; typedef NI16 TY_EKfNt9b8uxndgFbu2Ky3XAQ[260]; typedef NI16 TY_Get9cpRTS5VjGKP6CDsI9bYA[14]; struct Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA { NI32 dwfileattributes; Filetime_bs4NMleDDVF7xsEK0SGLBw ftcreationtime; Filetime_bs4NMleDDVF7xsEK0SGLBw ftlastaccesstime; Filetime_bs4NMleDDVF7xsEK0SGLBw ftlastwritetime; NI32 nfilesizehigh; NI32 nfilesizelow; NI32 dwreserved0; NI32 dwreserved1; TY_EKfNt9b8uxndgFbu2Ky3XAQ cfilename; TY_Get9cpRTS5VjGKP6CDsI9bYA calternatefilename; }; typedef struct { N_NIMCALL_PTR(NIM_BOOL, ClPrc) (Exception* e0, void* ClEnv); void* ClEnv; } TY_KeeAOYBd84Ofsw6Y7LizaQ; struct TSafePoint { TSafePoint* prev; NI status; jmp_buf context; NIM_BOOL hasRaiseAction; TY_KeeAOYBd84Ofsw6Y7LizaQ raiseAction; }; typedef N_STDCALL_PTR(NI32, TY_VxkwbRWIB7oY6WmptBE73A) (NI16* lpfilename0, NI32 dwfileattributes0); typedef N_STDCALL_PTR(NI32, TY_jwEWAkul5J6p6K0UfXa1tw) (NI hfindfile0, Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA* lpfindfiledata0); typedef N_STDCALL_PTR(void, TY_ofoySXaAAlxxs9bQS9a1etlg) (NI hfindfile0); typedef N_STDCALL_PTR(NI32, TY_UVtmMfBlnKqZ4ulTGMgcRw) (NI16* lpexistingfilename0, NI16* lpnewfilename0, NI32 bfailifexists0); typedef N_STDCALL_PTR(void, TY_Tjolzh1w2dIIpj3oCDGPFw) (NI32 dwmilliseconds0); struct Gcstack_7fytPA5bBsob6See21YMRA { Gcstack_7fytPA5bBsob6See21YMRA* prev; Gcstack_7fytPA5bBsob6See21YMRA* next; void* starts; void* pos; NI maxstacksize; }; struct Basechunk_Sdq7WpT6qAH858F5ZEdG3w { NI prevsize; NI size; NIM_BOOL used; }; struct Smallchunk_tXn60W2f8h3jgAYdEmy5NQ { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* next; Smallchunk_tXn60W2f8h3jgAYdEmy5NQ* prev; Freecell_u6M5LHprqzkn9axr04yg9bGQ* freelist; NI free; NI acc; NF data; }; struct Llchunk_XsENErzHIZV9bhvyJx56wGw { NI size; NI acc; Llchunk_XsENErzHIZV9bhvyJx56wGw* next; }; struct Bigchunk_Rv9c70Uhp2TytkX7eH78qEg { Basechunk_Sdq7WpT6qAH858F5ZEdG3w Sup; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* next; Bigchunk_Rv9c70Uhp2TytkX7eH78qEg* prev; NI align; NF data; }; typedef NI TY_9agrCtWKhCnWWMJpKKugJag[16]; struct Trunk_W0r8S0Y3UGke6T9bIUWnnuw { Trunk_W0r8S0Y3UGke6T9bIUWnnuw* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; typedef Avlnode_IaqjtwKhxLEpvDS9bct9blEw* TY_0aOLqZchNi8nWtMTi8ND8w[2]; struct Avlnode_IaqjtwKhxLEpvDS9bct9blEw { TY_0aOLqZchNi8nWtMTi8ND8w link; NI key; NI upperbound; NI level; }; struct Pagedesc_fublkgIY4LG3mT51LU2WHg { Pagedesc_fublkgIY4LG3mT51LU2WHg* next; NI key; TY_9agrCtWKhCnWWMJpKKugJag bits; }; struct Freecell_u6M5LHprqzkn9axr04yg9bGQ { Freecell_u6M5LHprqzkn9axr04yg9bGQ* next; NI zerofield; }; struct TY_sM4lkSb7zS6F7OVMvW9cffQ { TGenericSeq Sup; NimStringDesc* data[SEQ_DECL_SIZE]; }; N_NIMCALL(void, nimGCvisit)(void* d0, NI op0); static N_NIMCALL(void, Marker_TY_sM4lkSb7zS6F7OVMvW9cffQ)(void* p, NI op); static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_2)(void); N_NIMCALL(void, nimRegisterGlobalMarker)(TY_T4eqaYlFJYZUv9aG9b1TV0bQ markerproc0); static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_3)(void); N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src0); N_NIMCALL(void, nossplitPath)(NimStringDesc* path0, TY_UV3llMMYFckfui8YMBuUZA* Result); N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI start_WPWyPKk58Cr5a6XFFviMjg, NI last0); N_NIMCALL(NimStringDesc*, copyStrLast)(NimStringDesc* s0, NI first0, NI last0); N_NIMCALL(void, unsureAsgnRef)(void** dest0, void* src0); N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI start0); N_NIMCALL(NimStringDesc*, copyStr)(NimStringDesc* s0, NI first0); N_NIMCALL(NI, searchextpos_AlmWoA52oxWnFTorxtz9caA)(NimStringDesc* s0); static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0); static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0); N_NIMCALL(NimStringDesc*, normext_g9aFI0nT0uI8DMfFxBPaZZg)(NimStringDesc* ext0); static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0); N_NIMCALL(NimStringDesc*, rawNewString)(NI space0); N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0); N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0); N_NIMCALL(NimStringDesc*, HEX24_QjWkJEdnPpNzR7KF7dYIoQ)(NI16* s0); static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0); static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0); static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NOINLINE(void, addzct_fCDI7oO1NNVXXURtxSzsRw)(Cellseq_Axo1XVm9aaQueTOldv8le5w* s0, Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0); N_NIMCALL(NimStringDesc*, copyStringRC1)(NimStringDesc* src0); static N_INLINE(void, nimGCunrefNoCycle)(void* p0); N_NIMCALL(void, raiseException)(Exception* e0, NCSTRING ename0); N_NIMCALL(NI16*, newwidecstring_b3CORJA07cGvZB3j3M3bqQ)(NCSTRING source0, NI L0); N_NIMCALL(NI16*, newwidecstring_kxipuF9cNh6r2grKDcLjFuw)(NimStringDesc* s0); N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0); N_NIMCALL(NI32, oslasterror_6wyvsbJUteIgEY9cC5BVJZQ)(void); N_NIMCALL(NimStringDesc*, HEX24_GUT0CpACeWzt9cO6i89asYdw)(NI16* w0, NI estimate0, NI replacement0); N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0); N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY_7q7q3E6Oj24ZNVJb9aonhAg* Result); N_NIMCALL(NimStringDesc*, nosgetAppFilename)(void); N_NIMCALL(NI, parentdirpos_DqTO9byr8jfMuX9cD2FnlVFQ)(NimStringDesc* path0); N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path0); N_NIMCALL(NIM_BOOL, existsorcreatedir_45Xwkpg5BatjRqUBSXvMTQ)(NimStringDesc* dir0); N_NIMCALL(NIM_BOOL, rawcreatedir_45Xwkpg5BatjRqUBSXvMTQ_2)(NimStringDesc* dir0); N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0); N_NIMCALL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, nosparseCmdLine)(NimStringDesc* c0); N_NIMCALL(void*, newSeq)(TNimType* typ0, NI len0); N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0); N_NIMCALL(NimStringDesc*, addChar)(NimStringDesc* s0, NIM_CHAR c0); N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0); N_NIMCALL(NimStringDesc*, resizeString)(NimStringDesc* dest0, NI addlen0); N_NIMCALL(NimStringDesc*, getenv_8zNgT9bxx7m9cTt2TeVdTdIw)(NimStringDesc* key0); N_NIMCALL(NI, findenvvar_cmJJ3H7KloA4DztTvzWyCw)(NimStringDesc* key0); N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void); N_NIMCALL(void*, newSeqRC1)(TNimType* typ0, NI len0); N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s0, NimStringDesc* prefix0); N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s0, NIM_CHAR sub0, NI start0); static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos)(NCSTRING x0, NCSTRING y0); N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0); N_NIMCALL(NI, cmp_xEnKsp9cfvO7Do9cTYXo8eJw)(NimStringDesc* x0, NimStringDesc* y0); N_NIMCALL(NI, nsuCmpIgnoreCase)(NimStringDesc* a0, NimStringDesc* b0); N_NIMCALL(NimStringDesc*, nosaddFileExt)(NimStringDesc* filename0, NimStringDesc* ext0); N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0); N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0); N_NIMCALL(NI, findfirstfile_9cPKjuaUWDYlrzWunhDgNng)(NimStringDesc* a0, Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA* b0); static N_INLINE(void, pushSafePoint)(TSafePoint* s0); static N_INLINE(NIM_BOOL, skipfinddata_Paqclu9aSY8chOSEIvA5ZoAoptions)(Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA* f0); N_NIMCALL(NimStringDesc*, nosextractFilename)(NimStringDesc* path0); N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0); N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0); static N_INLINE(void, popSafePoint)(void); N_NIMCALL(void, reraiseException)(void); N_NIMCALL(void, rawremovedir_UW75XKQJ2RK9bO3MFFoDxTw)(NimStringDesc* dir0); N_NIMCALL(time_t, wintimetounixtime_Roh6mgu3pw5hYGgivhSNGw)(NI64 t0); N_NIMCALL(NI64, rdfiletime_8xfVp1z4bc5fRCRgoEFhIQ)(Filetime_bs4NMleDDVF7xsEK0SGLBw f0); N_NIMCALL(NI64, ntDiffTime)(time_t a0, time_t b0); N_NIMCALL(time_t, nosgetLastModificationTime)(NimStringDesc* file0); N_NIMCALL(NimStringDesc*, nosgetHomeDir)(void); NIM_BOOL envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ; TY_sM4lkSb7zS6F7OVMvW9cffQ* environment_mlhK49b6YMgc9cgrcYkKq9a3g; extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg; TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ; TY_sM4lkSb7zS6F7OVMvW9cffQ* ownargv_WVJ54JSHy7VxacV39bwBPFA; extern TNimType NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA; extern TNimType NTI_3XwRQvmzCEOC4QnT706q1g; extern TY_aO673xGTLLxou7P7GxoCXA Dl_119835; extern TY_im9buRnIvptJfzdASYMEbBA Dl_120001; extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; extern TY_9bXer9a4ps9aSGctILcxWReVw Dl_119830; extern TY_W1Y0YSv0z9cf3pqKJgjGdqQ Dl_120604; extern TY_YTOHOMfxh6yqeIrwoF3EQw Dl_120432; extern TY_2xBzxeMx4l7D6jwHak3G2g Dl_120022; extern TY_SQvdXqIshqDsOrj27LgeLQ Dl_120011; extern TY_fRm1QK2sgVg9aFiEV5T74jA Dl_120611; extern TNimType NTI_HX2M9cQhE3jaovp9aYJDdslA; extern TNimType NTI_9czoZw3pzPyrBmb5zTHY1OQ; extern TY_C6bRt4Mqo6LDqlyl9bIOYWQ Dl_120632; extern TY_C6bRt4Mqo6LDqlyl9bIOYWQ Dl_120627; extern TY_fRm1QK2sgVg9aFiEV5T74jA Dl_120629; extern TY_l1Nv6c9cTPsVTSfpp9bI8Q7Q Dl_120018; extern TY_UWgwsOCvecqqlVsXbs132A Dl_120004; extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g; extern TY_fRm1QK2sgVg9aFiEV5T74jA Dl_121430; extern TY_VxkwbRWIB7oY6WmptBE73A Dl_120614; extern TY_jwEWAkul5J6p6K0UfXa1tw Dl_120437; extern TY_ofoySXaAAlxxs9bQS9a1etlg Dl_120601; extern TY_fRm1QK2sgVg9aFiEV5T74jA Dl_120015; extern TY_l1Nv6c9cTPsVTSfpp9bI8Q7Q Dl_120623; extern TY_UVtmMfBlnKqZ4ulTGMgcRw Dl_120618; extern TY_Tjolzh1w2dIIpj3oCDGPFw Dl_120831; STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_4, "", 0); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_5, "\015\012Additional info: ", 19); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_6, "unknown OS error", 16); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_7, "Failed to create the directory", 30); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_8, ":\\", 2); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_9, "\\", 1); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_10, ".", 1); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_11, "..\\", 3); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_12, "USERPROFILE", 11); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_13, "PATH", 4); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_14, "exe", 3); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_15, "cmd", 3); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_16, "bat", 3); NIM_CONST TY_24KAM9afIUgUaqBaEBB6r9bg Exeexts_ONrgkgAZ9bh6KVTWl4XeOSw = {((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_14), ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_15), ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_16)} ; STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_17, "APPDATA", 7); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_18, "*", 1); static N_NIMCALL(void, Marker_TY_sM4lkSb7zS6F7OVMvW9cffQ)(void* p, NI op) { TY_sM4lkSb7zS6F7OVMvW9cffQ* a; NI LOC1; a = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)p; LOC1 = (NI)0; for (LOC1 = 0; LOC1 < a->Sup.len; LOC1++) { nimGCvisit((void*)a->data[LOC1], op); } } static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_2)(void) { nimGCvisit((void*)environment_mlhK49b6YMgc9cgrcYkKq9a3g, 0); } static N_NIMCALL(void, T_yu6cxgKBBXbNsTkT9cyMd4g_3)(void) { nimGCvisit((void*)ownargv_WVJ54JSHy7VxacV39bwBPFA, 0); } N_NIMCALL(void, nossplitPath)(NimStringDesc* path0, TY_UV3llMMYFckfui8YMBuUZA* Result) { NI seppos0; seppos0 = ((NI) -1); { NI i_PU9a9a9b9ayxLUu9czuig0ggZVg; NI HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg; NI res_mg8ARupfA5R2j58N4jwiiA; i_PU9a9a9b9ayxLUu9czuig0ggZVg = (NI)0; HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg = (NI)0; HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg = (NI)((path0 ? path0->Sup.len : 0) - ((NI) 1)); res_mg8ARupfA5R2j58N4jwiiA = HEX3Atmp_qi0JGA3QNuBuU7hHq9aaCAg; { while (1) { if (!(((NI) 0) <= res_mg8ARupfA5R2j58N4jwiiA)) goto LA3; i_PU9a9a9b9ayxLUu9czuig0ggZVg = res_mg8ARupfA5R2j58N4jwiiA; { if (!(((NU8)(path0->data[i_PU9a9a9b9ayxLUu9czuig0ggZVg])) == ((NU8)(92)) || ((NU8)(path0->data[i_PU9a9a9b9ayxLUu9czuig0ggZVg])) == ((NU8)(47)))) goto LA6; seppos0 = i_PU9a9a9b9ayxLUu9czuig0ggZVg; goto LA1; } LA6: ; res_mg8ARupfA5R2j58N4jwiiA -= ((NI) 1); } LA3: ; } } LA1: ; { if (!(((NI) 0) <= seppos0)) goto LA10; unsureAsgnRef((void**) (&(*Result).Field0), copyStrLast(path0, ((NI) 0), (NI)(seppos0 - ((NI) 1)))); unsureAsgnRef((void**) (&(*Result).Field1), copyStr(path0, (NI)(seppos0 + ((NI) 1)))); } goto LA8; LA10: ; { unsureAsgnRef((void**) (&(*Result).Field0), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4))); unsureAsgnRef((void**) (&(*Result).Field1), copyString(path0)); } LA8: ; } N_NIMCALL(NimStringDesc*, nosextractFilename)(NimStringDesc* path0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((path0 ? path0->Sup.len : 0) == ((NI) 0)); if (LOC3) goto LA4; LOC3 = (((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(92)) || ((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47))); LA4: ; if (!LOC3) goto LA5; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } goto LA1; LA5: ; { TY_UV3llMMYFckfui8YMBuUZA LOC8; memset((void*)(&LOC8), 0, sizeof(LOC8)); nossplitPath(path0, (&LOC8)); result0 = copyString(LOC8.Field1); } LA1: ; return result0; } N_NIMCALL(NI, searchextpos_AlmWoA52oxWnFTorxtz9caA)(NimStringDesc* s0) { NI result0; result0 = (NI)0; result0 = ((NI) -1); { NI i_XQE9aiUWOFdx4JhYiIhgMdQ; NI HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ; NI res_c104hbjlw03oZVhljBpoGA; i_XQE9aiUWOFdx4JhYiIhgMdQ = (NI)0; HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ = (NI)0; HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ = (NI)((s0 ? s0->Sup.len : 0) - ((NI) 1)); res_c104hbjlw03oZVhljBpoGA = HEX3Atmp_wwRFqz9cAap5nYm4hxa9a9cyQ; { while (1) { if (!(((NI) 1) <= res_c104hbjlw03oZVhljBpoGA)) goto LA3; i_XQE9aiUWOFdx4JhYiIhgMdQ = res_c104hbjlw03oZVhljBpoGA; { if (!((NU8)(s0->data[i_XQE9aiUWOFdx4JhYiIhgMdQ]) == (NU8)(46))) goto LA6; result0 = i_XQE9aiUWOFdx4JhYiIhgMdQ; goto LA1; } goto LA4; LA6: ; { if (!(((NU8)(s0->data[i_XQE9aiUWOFdx4JhYiIhgMdQ])) == ((NU8)(92)) || ((NU8)(s0->data[i_XQE9aiUWOFdx4JhYiIhgMdQ])) == ((NU8)(47)))) goto LA9; goto LA1; } goto LA4; LA9: ; LA4: ; res_c104hbjlw03oZVhljBpoGA -= ((NI) 1); } LA3: ; } } LA1: ; return result0; } static N_INLINE(void, copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem)(void* dest0, void* source0, NI size0) { void* LOC1; LOC1 = (void*)0; LOC1 = memcpy(dest0, source0, ((size_t) (size0))); } static N_INLINE(void, appendString)(NimStringDesc* dest0, NimStringDesc* src0) { copymem_fPlwH3r9agN9aEHB6yCPMh0wsystem(((void*) ((&(*dest0).data[((*dest0).Sup.len)- 0]))), ((void*) ((*src0).data)), ((NI) ((NI)((*src0).Sup.len + ((NI) 1))))); (*dest0).Sup.len += (*src0).Sup.len; } static N_INLINE(void, appendChar)(NimStringDesc* dest0, NIM_CHAR c0) { (*dest0).data[((*dest0).Sup.len)- 0] = c0; (*dest0).data[((NI)((*dest0).Sup.len + ((NI) 1)))- 0] = 0; (*dest0).Sup.len += ((NI) 1); } N_NIMCALL(NimStringDesc*, normext_g9aFI0nT0uI8DMfFxBPaZZg)(NimStringDesc* ext0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((ext0) && (ext0)->Sup.len == 0); if (LOC3) goto LA4; LOC3 = ((NU8)(ext0->data[((NI) 0)]) == (NU8)(46)); LA4: ; if (!LOC3) goto LA5; result0 = copyString(ext0); } goto LA1; LA5: ; { NimStringDesc* LOC8; LOC8 = (NimStringDesc*)0; LOC8 = rawNewString(ext0->Sup.len + 1); appendChar(LOC8, 46); appendString(LOC8, ext0); result0 = LOC8; } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, noschangeFileExt)(NimStringDesc* filename0, NimStringDesc* ext0) { NimStringDesc* result0; NI extpos0; result0 = (NimStringDesc*)0; extpos0 = searchextpos_AlmWoA52oxWnFTorxtz9caA(filename0); { NimStringDesc* LOC5; NimStringDesc* LOC6; if (!(extpos0 < ((NI) 0))) goto LA3; LOC5 = (NimStringDesc*)0; LOC6 = (NimStringDesc*)0; LOC6 = normext_g9aFI0nT0uI8DMfFxBPaZZg(ext0); LOC5 = rawNewString(filename0->Sup.len + LOC6->Sup.len + 0); appendString(LOC5, filename0); appendString(LOC5, LOC6); result0 = LOC5; } goto LA1; LA3: ; { NimStringDesc* LOC8; NimStringDesc* LOC9; NimStringDesc* LOC10; LOC8 = (NimStringDesc*)0; LOC9 = (NimStringDesc*)0; LOC9 = copyStrLast(filename0, ((NI) 0), (NI)(extpos0 - ((NI) 1))); LOC10 = (NimStringDesc*)0; LOC10 = normext_g9aFI0nT0uI8DMfFxBPaZZg(ext0); LOC8 = rawNewString(LOC9->Sup.len + LOC10->Sup.len + 0); appendString(LOC8, LOC9); appendString(LOC8, LOC10); result0 = LOC8; } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); { NI16* msgbuf0; if (!!((errorcode0 == ((NI32) 0)))) goto LA3; msgbuf0 = (NI16*)0; { NI32 LOC7; LOC7 = (NI32)0; LOC7 = Dl_119835(((NI32) 4864), NIM_NIL, errorcode0, ((NI32) 0), ((void*) (&msgbuf0)), ((NI32) 0), NIM_NIL); if (!!((LOC7 == ((NI32) 0)))) goto LA8; result0 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(msgbuf0); { if (!!((msgbuf0 == NIM_NIL))) goto LA12; Dl_120001(((void*) (msgbuf0))); } LA12: ; } LA8: ; } LA3: ; return result0; } static N_INLINE(Cell_1zcF9cV8XIAtbN8h5HRUB8g*, usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem)(void* usr0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* result0; result0 = (Cell_1zcF9cV8XIAtbN8h5HRUB8g*)0; result0 = ((Cell_1zcF9cV8XIAtbN8h5HRUB8g*) ((NI)((NU32)(((NI) (usr0))) - (NU32)(((NI)sizeof(Cell_1zcF9cV8XIAtbN8h5HRUB8g)))))); return result0; } static N_INLINE(void, rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system)(Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0) { addzct_fCDI7oO1NNVXXURtxSzsRw((&gch_IcYaEuuWivYAS86vFMTS3Q.zct), c0); } static N_INLINE(void, asgnRefNoCycle)(void** dest0, void* src0) { { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; if (!!((src0 == NIM_NIL))) goto LA3; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(src0); (*c0).refcount += ((NI) 8); } LA3: ; { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; if (!!(((*dest0) == NIM_NIL))) goto LA7; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem((*dest0)); { (*c0).refcount -= ((NI) 8); if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA11; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA11: ; } LA7: ; (*dest0) = src0; } static N_INLINE(void, nimGCunrefNoCycle)(void* p0) { Cell_1zcF9cV8XIAtbN8h5HRUB8g* c0; c0 = usrtocell_yB9aH5WIlwd0xkYrcdPeXrQsystem(p0); { (*c0).refcount -= ((NI) 8); if (!((NU32)((*c0).refcount) < (NU32)(((NI) 8)))) goto LA3; rtladdzct_MV4BBk6J1qu70IbBxwEn4w_2system(c0); } LA3: ; } N_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0) { Oserror_3XwRQvmzCEOC4QnT706q1g* e0; e0 = (Oserror_3XwRQvmzCEOC4QnT706q1g*)0; e0 = (Oserror_3XwRQvmzCEOC4QnT706q1g*) newObj((&NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA), sizeof(Oserror_3XwRQvmzCEOC4QnT706q1g)); (*e0).Sup.Sup.Sup.m_type = (&NTI_3XwRQvmzCEOC4QnT706q1g); (*e0).errorcode = errorcode0; { if (!((additionalinfo0 ? additionalinfo0->Sup.len : 0) == ((NI) 0))) goto LA3; asgnRefNoCycle((void**) (&(*e0).Sup.Sup.message), oserrormsg_9cO757MdTrYxfurMy5qIoAg(errorcode0)); } goto LA1; LA3: ; { NimStringDesc* LOC6; NimStringDesc* LOC7; LOC6 = (NimStringDesc*)0; LOC7 = (NimStringDesc*)0; LOC7 = oserrormsg_9cO757MdTrYxfurMy5qIoAg(errorcode0); LOC6 = rawNewString(LOC7->Sup.len + additionalinfo0->Sup.len + 19); appendString(LOC6, LOC7); appendString(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_5)); appendString(LOC6, additionalinfo0); asgnRefNoCycle((void**) (&(*e0).Sup.Sup.message), LOC6); } LA1: ; { NimStringDesc* LOC12; if (!(((*e0).Sup.Sup.message) && ((*e0).Sup.Sup.message)->Sup.len == 0)) goto LA10; LOC12 = (NimStringDesc*)0; LOC12 = (*e0).Sup.Sup.message; (*e0).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_6)); if (LOC12) nimGCunrefNoCycle(LOC12); } LA10: ; raiseException((Exception*)e0, "OSError"); } N_NIMCALL(NI32, oslasterror_6wyvsbJUteIgEY9cC5BVJZQ)(void) { NI32 result0; result0 = (NI32)0; result0 = Dl_119830(); return result0; } N_NIMCALL(NimStringDesc*, nosexpandFilename)(NimStringDesc* filename0) { NimStringDesc* result0; NI32 bufsize0; NI16* unused0; NI16* res0; result0 = (NimStringDesc*)0; bufsize0 = ((NI32) 260); unused0 = NIM_NIL; res0 = newwidecstring_b3CORJA07cGvZB3j3M3bqQ("", ((NI) (bufsize0))); { while (1) { NI32 L0; NI16* LOC3; LOC3 = (NI16*)0; LOC3 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(filename0); L0 = Dl_120604(LOC3, bufsize0, res0, &unused0); { NI32 LOC8; if (!(L0 == ((NI32) 0))) goto LA6; LOC8 = (NI32)0; LOC8 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC8, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } goto LA4; LA6: ; { if (!(bufsize0 < L0)) goto LA10; res0 = newwidecstring_b3CORJA07cGvZB3j3M3bqQ("", ((NI) (L0))); bufsize0 = L0; } goto LA4; LA10: ; { result0 = HEX24_GUT0CpACeWzt9cO6i89asYdw(res0, ((NI) (L0)), ((NI) 65533)); goto LA1; } LA4: ; } } LA1: ; return result0; } N_NIMCALL(NI, findfirstfile_9cPKjuaUWDYlrzWunhDgNng)(NimStringDesc* a0, Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA* b0) { NI result0; NI16* LOC1; result0 = (NI)0; LOC1 = (NI16*)0; LOC1 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(a0); result0 = Dl_120432(LOC1, b0); return result0; } N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; { if (!((head0 ? head0->Sup.len : 0) == ((NI) 0))) goto LA3; result0 = copyString(tail0); } goto LA1; LA3: ; { if (!(((NU8)(head0->data[(NI)((head0 ? head0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(92)) || ((NU8)(head0->data[(NI)((head0 ? head0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47)))) goto LA6; { NimStringDesc* LOC12; NimStringDesc* LOC13; if (!(((NU8)(tail0->data[((NI) 0)])) == ((NU8)(92)) || ((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)))) goto LA10; LOC12 = (NimStringDesc*)0; LOC13 = (NimStringDesc*)0; LOC13 = copyStr(tail0, ((NI) 1)); LOC12 = rawNewString(head0->Sup.len + LOC13->Sup.len + 0); appendString(LOC12, head0); appendString(LOC12, LOC13); result0 = LOC12; } goto LA8; LA10: ; { NimStringDesc* LOC15; LOC15 = (NimStringDesc*)0; LOC15 = rawNewString(head0->Sup.len + tail0->Sup.len + 0); appendString(LOC15, head0); appendString(LOC15, tail0); result0 = LOC15; } LA8: ; } goto LA1; LA6: ; { { NimStringDesc* LOC21; if (!(((NU8)(tail0->data[((NI) 0)])) == ((NU8)(92)) || ((NU8)(tail0->data[((NI) 0)])) == ((NU8)(47)))) goto LA19; LOC21 = (NimStringDesc*)0; LOC21 = rawNewString(head0->Sup.len + tail0->Sup.len + 0); appendString(LOC21, head0); appendString(LOC21, tail0); result0 = LOC21; } goto LA17; LA19: ; { NimStringDesc* LOC23; LOC23 = (NimStringDesc*)0; LOC23 = rawNewString(head0->Sup.len + tail0->Sup.len + 1); appendString(LOC23, head0); appendChar(LOC23, 92); appendString(LOC23, tail0); result0 = LOC23; } LA17: ; } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ)(NimStringDesc* head0, NimStringDesc* tail0) { NimStringDesc* result0; { result0 = (NimStringDesc*)0; result0 = nosjoinPath(head0, tail0); goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY_7q7q3E6Oj24ZNVJb9aonhAg* Result) { { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = ((path0 ? path0->Sup.len : 0) == ((NI) 0)); if (LOC3) goto LA4; LOC3 = (((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(92)) || ((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47))); LA4: ; if (!LOC3) goto LA5; unsureAsgnRef((void**) (&(*Result).Field0), copyString(path0)); unsureAsgnRef((void**) (&(*Result).Field1), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4))); unsureAsgnRef((void**) (&(*Result).Field2), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4))); } goto LA1; LA5: ; { NI seppos0; NI dotpos0; seppos0 = ((NI) -1); dotpos0 = (path0 ? path0->Sup.len : 0); { NI i_RvAXC8pcRrjQVcLzMy7Fhw; NI HEX3Atmp_yDPmQODHSEiGYJLOLrehCg; NI res_FD5o2nBImp9bjBTg5egPNBA; i_RvAXC8pcRrjQVcLzMy7Fhw = (NI)0; HEX3Atmp_yDPmQODHSEiGYJLOLrehCg = (NI)0; HEX3Atmp_yDPmQODHSEiGYJLOLrehCg = (NI)((path0 ? path0->Sup.len : 0) - ((NI) 1)); res_FD5o2nBImp9bjBTg5egPNBA = HEX3Atmp_yDPmQODHSEiGYJLOLrehCg; { while (1) { if (!(((NI) 0) <= res_FD5o2nBImp9bjBTg5egPNBA)) goto LA10; i_RvAXC8pcRrjQVcLzMy7Fhw = res_FD5o2nBImp9bjBTg5egPNBA; { if (!((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw]) == (NU8)(46))) goto LA13; { NIM_BOOL LOC17; NIM_BOOL LOC18; LOC17 = (NIM_BOOL)0; LOC18 = (NIM_BOOL)0; LOC18 = (dotpos0 == (path0 ? path0->Sup.len : 0)); if (!(LOC18)) goto LA19; LOC18 = (((NI) 0) < i_RvAXC8pcRrjQVcLzMy7Fhw); LA19: ; LOC17 = LOC18; if (!(LOC17)) goto LA20; LOC17 = !((((NU8)(path0->data[(NI)(i_RvAXC8pcRrjQVcLzMy7Fhw - ((NI) 1))])) == ((NU8)(92)) || ((NU8)(path0->data[(NI)(i_RvAXC8pcRrjQVcLzMy7Fhw - ((NI) 1))])) == ((NU8)(47)))); LA20: ; if (!LOC17) goto LA21; dotpos0 = i_RvAXC8pcRrjQVcLzMy7Fhw; } LA21: ; } goto LA11; LA13: ; { if (!(((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw])) == ((NU8)(92)) || ((NU8)(path0->data[i_RvAXC8pcRrjQVcLzMy7Fhw])) == ((NU8)(47)))) goto LA24; seppos0 = i_RvAXC8pcRrjQVcLzMy7Fhw; goto LA8; } goto LA11; LA24: ; LA11: ; res_FD5o2nBImp9bjBTg5egPNBA -= ((NI) 1); } LA10: ; } } LA8: ; unsureAsgnRef((void**) (&(*Result).Field0), copyStrLast(path0, ((NI) 0), (NI)(seppos0 - ((NI) 1)))); unsureAsgnRef((void**) (&(*Result).Field1), copyStrLast(path0, (NI)(seppos0 + ((NI) 1)), (NI)(dotpos0 - ((NI) 1)))); unsureAsgnRef((void**) (&(*Result).Field2), copyStr(path0, dotpos0)); } LA1: ; } N_NIMCALL(NimStringDesc*, nosgetAppFilename)(void) { NimStringDesc* result0; NI32 bufsize0; NI16* buf0; result0 = (NimStringDesc*)0; bufsize0 = ((NI32) 260); buf0 = newwidecstring_b3CORJA07cGvZB3j3M3bqQ("", ((NI) (bufsize0))); { while (1) { NI32 L0; L0 = Dl_120022(((NI) 0), buf0, bufsize0); { if (!(L0 == ((NI32) 0))) goto LA5; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); goto LA1; } goto LA3; LA5: ; { if (!(bufsize0 < L0)) goto LA8; buf0 = newwidecstring_b3CORJA07cGvZB3j3M3bqQ("", ((NI) (L0))); bufsize0 = L0; } goto LA3; LA8: ; { result0 = HEX24_GUT0CpACeWzt9cO6i89asYdw(buf0, ((NI) (L0)), ((NI) 65533)); goto LA1; } LA3: ; } } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, nosgetAppDir)(void) { NimStringDesc* result0; NimStringDesc* LOC1; TY_7q7q3E6Oj24ZNVJb9aonhAg LOC2; result0 = (NimStringDesc*)0; LOC1 = (NimStringDesc*)0; LOC1 = nosgetAppFilename(); memset((void*)(&LOC2), 0, sizeof(LOC2)); nossplitFile(LOC1, (&LOC2)); result0 = copyString(LOC2.Field0); return result0; } N_NIMCALL(NI, parentdirpos_DqTO9byr8jfMuX9cD2FnlVFQ)(NimStringDesc* path0) { NI result0; NI q0; { result0 = (NI)0; q0 = ((NI) 1); { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = (((NI) 1) <= (path0 ? path0->Sup.len : 0)); if (!(LOC3)) goto LA4; LOC3 = (((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(92)) || ((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47))); LA4: ; if (!LOC3) goto LA5; q0 = ((NI) 2); } LA5: ; { NI i_WxgcWd2Exz8KkJdIEhEwag; NI HEX3Atmp_svAarcCWD8m2rrDIUxDWRQ; NI res_ZbndgrJU9c18Iu9c5JbbaFxA; i_WxgcWd2Exz8KkJdIEhEwag = (NI)0; HEX3Atmp_svAarcCWD8m2rrDIUxDWRQ = (NI)0; HEX3Atmp_svAarcCWD8m2rrDIUxDWRQ = (NI)((path0 ? path0->Sup.len : 0) - q0); res_ZbndgrJU9c18Iu9c5JbbaFxA = HEX3Atmp_svAarcCWD8m2rrDIUxDWRQ; { while (1) { if (!(((NI) 0) <= res_ZbndgrJU9c18Iu9c5JbbaFxA)) goto LA9; i_WxgcWd2Exz8KkJdIEhEwag = res_ZbndgrJU9c18Iu9c5JbbaFxA; { if (!(((NU8)(path0->data[i_WxgcWd2Exz8KkJdIEhEwag])) == ((NU8)(92)) || ((NU8)(path0->data[i_WxgcWd2Exz8KkJdIEhEwag])) == ((NU8)(47)))) goto LA12; result0 = i_WxgcWd2Exz8KkJdIEhEwag; goto BeforeRet; } LA12: ; res_ZbndgrJU9c18Iu9c5JbbaFxA -= ((NI) 1); } LA9: ; } } result0 = ((NI) -1); }BeforeRet: ; return result0; } N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path0) { NimStringDesc* result0; NI seppos0; result0 = (NimStringDesc*)0; seppos0 = parentdirpos_DqTO9byr8jfMuX9cD2FnlVFQ(path0); { if (!(((NI) 0) <= seppos0)) goto LA3; result0 = copyStrLast(path0, ((NI) 0), (NI)(seppos0 - ((NI) 1))); } goto LA1; LA3: ; { result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA1: ; return result0; } N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path0) { NIM_BOOL result0; NI len0; NIM_BOOL LOC1; NIM_BOOL LOC2; NIM_BOOL LOC5; NIM_BOOL LOC6; result0 = (NIM_BOOL)0; len0 = (path0 ? path0->Sup.len : 0); LOC1 = (NIM_BOOL)0; LOC2 = (NIM_BOOL)0; LOC2 = (((NI) 0) < len0); if (!(LOC2)) goto LA3; LOC2 = (((NU8)(path0->data[((NI) 0)])) == ((NU8)(47)) || ((NU8)(path0->data[((NI) 0)])) == ((NU8)(92))); LA3: ; LOC1 = LOC2; if (LOC1) goto LA4; LOC5 = (NIM_BOOL)0; LOC6 = (NIM_BOOL)0; LOC6 = (((NI) 1) < len0); if (!(LOC6)) goto LA7; LOC6 = (((NU8)(path0->data[((NI) 0)])) >= ((NU8)(97)) && ((NU8)(path0->data[((NI) 0)])) <= ((NU8)(122)) || ((NU8)(path0->data[((NI) 0)])) >= ((NU8)(65)) && ((NU8)(path0->data[((NI) 0)])) <= ((NU8)(90))); LA7: ; LOC5 = LOC6; if (!(LOC5)) goto LA8; LOC5 = ((NU8)(path0->data[((NI) 1)]) == (NU8)(58)); LA8: ; LOC1 = LOC5; LA4: ; result0 = LOC1; return result0; } N_NIMCALL(NIM_BOOL, rawcreatedir_45Xwkpg5BatjRqUBSXvMTQ_2)(NimStringDesc* dir0) { NIM_BOOL result0; NI32 res0; NI16* LOC1; result0 = (NIM_BOOL)0; LOC1 = (NI16*)0; LOC1 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(dir0); res0 = Dl_120011(LOC1, NIM_NIL); { if (!!((res0 == ((NI32) 0)))) goto LA4; result0 = NIM_TRUE; } goto LA2; LA4: ; { NI32 LOC7; LOC7 = (NI32)0; LOC7 = Dl_119830(); if (!(LOC7 == ((NI32) 183))) goto LA8; result0 = NIM_FALSE; } goto LA2; LA8: ; { NI32 LOC11; LOC11 = (NI32)0; LOC11 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC11, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA2: ; return result0; } N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0) { NIM_BOOL result0; NI32 a0; NI16* LOC1; result0 = (NIM_BOOL)0; LOC1 = (NI16*)0; LOC1 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(dir0); a0 = Dl_120611(LOC1); { if (!!((a0 == ((NI32) -1)))) goto LA4; result0 = !(((NI32)(a0 & ((NI32) 16)) == ((NI32) 0))); } LA4: ; return result0; } N_NIMCALL(NIM_BOOL, existsorcreatedir_45Xwkpg5BatjRqUBSXvMTQ)(NimStringDesc* dir0) { NIM_BOOL result0; NIM_BOOL LOC1; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = rawcreatedir_45Xwkpg5BatjRqUBSXvMTQ_2(dir0); result0 = !(LOC1); { if (!result0) goto LA4; { NIM_BOOL LOC8; Ioerror_9czoZw3pzPyrBmb5zTHY1OQ* e_4he5nelRQAcl1XtPfaowrQ; NimStringDesc* LOC11; LOC8 = (NIM_BOOL)0; LOC8 = nosexistsDir(dir0); if (!!(LOC8)) goto LA9; e_4he5nelRQAcl1XtPfaowrQ = (Ioerror_9czoZw3pzPyrBmb5zTHY1OQ*)0; e_4he5nelRQAcl1XtPfaowrQ = (Ioerror_9czoZw3pzPyrBmb5zTHY1OQ*) newObj((&NTI_HX2M9cQhE3jaovp9aYJDdslA), sizeof(Ioerror_9czoZw3pzPyrBmb5zTHY1OQ)); (*e_4he5nelRQAcl1XtPfaowrQ).Sup.Sup.Sup.m_type = (&NTI_9czoZw3pzPyrBmb5zTHY1OQ); LOC11 = (NimStringDesc*)0; LOC11 = (*e_4he5nelRQAcl1XtPfaowrQ).Sup.Sup.message; (*e_4he5nelRQAcl1XtPfaowrQ).Sup.Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_7)); if (LOC11) nimGCunrefNoCycle(LOC11); raiseException((Exception*)e_4he5nelRQAcl1XtPfaowrQ, "IOError"); } LA9: ; } LA4: ; return result0; } N_NIMCALL(void, noscreateDir)(NimStringDesc* dir0) { NIM_BOOL omitnext0; omitnext0 = NIM_FALSE; omitnext0 = nosisAbsolute(dir0); { NI i_Qc01IR3dOH3flfNCE6VLpw; NI HEX3Atmp_ywziRWYrreLWHtJ4hoirLA; NI res_9bWCBWZ3aqeaop9bwMLK1Y7A; i_Qc01IR3dOH3flfNCE6VLpw = (NI)0; HEX3Atmp_ywziRWYrreLWHtJ4hoirLA = (NI)0; HEX3Atmp_ywziRWYrreLWHtJ4hoirLA = (NI)((dir0 ? dir0->Sup.len : 0) - ((NI) 1)); res_9bWCBWZ3aqeaop9bwMLK1Y7A = ((NI) 1); { while (1) { if (!(res_9bWCBWZ3aqeaop9bwMLK1Y7A <= HEX3Atmp_ywziRWYrreLWHtJ4hoirLA)) goto LA3; i_Qc01IR3dOH3flfNCE6VLpw = res_9bWCBWZ3aqeaop9bwMLK1Y7A; { if (!(((NU8)(dir0->data[i_Qc01IR3dOH3flfNCE6VLpw])) == ((NU8)(92)) || ((NU8)(dir0->data[i_Qc01IR3dOH3flfNCE6VLpw])) == ((NU8)(47)))) goto LA6; { if (!omitnext0) goto LA10; omitnext0 = NIM_FALSE; } goto LA8; LA10: ; { NimStringDesc* LOC13; NIM_BOOL LOC14; LOC13 = (NimStringDesc*)0; LOC13 = copyStrLast(dir0, ((NI) 0), (NI)(i_Qc01IR3dOH3flfNCE6VLpw - ((NI) 1))); LOC14 = (NIM_BOOL)0; LOC14 = existsorcreatedir_45Xwkpg5BatjRqUBSXvMTQ(LOC13); } LA8: ; } LA6: ; res_9bWCBWZ3aqeaop9bwMLK1Y7A += ((NI) 1); } LA3: ; } } { NIM_BOOL LOC17; NIM_BOOL LOC18; NIM_BOOL LOC23; LOC17 = (NIM_BOOL)0; LOC18 = (NIM_BOOL)0; LOC18 = (((NI) 0) < (dir0 ? dir0->Sup.len : 0)); if (!(LOC18)) goto LA19; LOC18 = !(omitnext0); LA19: ; LOC17 = LOC18; if (!(LOC17)) goto LA20; LOC17 = !((((NU8)(dir0->data[(NI)((dir0 ? dir0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(92)) || ((NU8)(dir0->data[(NI)((dir0 ? dir0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47)))); LA20: ; if (!LOC17) goto LA21; LOC23 = (NIM_BOOL)0; LOC23 = existsorcreatedir_45Xwkpg5BatjRqUBSXvMTQ(dir0); } LA21: ; } N_NIMCALL(NimStringDesc*, nosjoinPathOpenArray)(NimStringDesc** parts0, NI parts0Len0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; result0 = copyString(parts0[((NI) 0)]); { NI i_uRpZpRasd2AS4VVcmkOdEQ; NI HEX3Atmp_SDwb5ajFd20DU9b0F06Tbwg; NI res_PQctTd1UoEHQ9cP9bv9cBWHpQ; i_uRpZpRasd2AS4VVcmkOdEQ = (NI)0; HEX3Atmp_SDwb5ajFd20DU9b0F06Tbwg = (NI)0; HEX3Atmp_SDwb5ajFd20DU9b0F06Tbwg = (parts0Len0-1); res_PQctTd1UoEHQ9cP9bv9cBWHpQ = ((NI) 1); { while (1) { if (!(res_PQctTd1UoEHQ9cP9bv9cBWHpQ <= HEX3Atmp_SDwb5ajFd20DU9b0F06Tbwg)) goto LA3; i_uRpZpRasd2AS4VVcmkOdEQ = res_PQctTd1UoEHQ9cP9bv9cBWHpQ; result0 = nosjoinPath(result0, parts0[i_uRpZpRasd2AS4VVcmkOdEQ]); res_PQctTd1UoEHQ9cP9bv9cBWHpQ += ((NI) 1); } LA3: ; } } return result0; } N_NIMCALL(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0) { NIM_BOOL result0; NI32 a0; NI16* LOC1; result0 = (NIM_BOOL)0; LOC1 = (NI16*)0; LOC1 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(filename0); a0 = Dl_120611(LOC1); { if (!!((a0 == ((NI32) -1)))) goto LA4; result0 = ((NI32)(a0 & ((NI32) 16)) == ((NI32) 0)); } LA4: ; return result0; } N_NIMCALL(NimStringDesc*, nosaddFileExt)(NimStringDesc* filename0, NimStringDesc* ext0) { NimStringDesc* result0; NI extpos0; result0 = (NimStringDesc*)0; extpos0 = searchextpos_AlmWoA52oxWnFTorxtz9caA(filename0); { NimStringDesc* LOC5; NimStringDesc* LOC6; if (!(extpos0 < ((NI) 0))) goto LA3; LOC5 = (NimStringDesc*)0; LOC6 = (NimStringDesc*)0; LOC6 = normext_g9aFI0nT0uI8DMfFxBPaZZg(ext0); LOC5 = rawNewString(filename0->Sup.len + LOC6->Sup.len + 0); appendString(LOC5, filename0); appendString(LOC5, LOC6); result0 = LOC5; } goto LA1; LA3: ; { result0 = copyString(filename0); } LA1: ; return result0; } N_NIMCALL(TY_sM4lkSb7zS6F7OVMvW9cffQ*, nosparseCmdLine)(NimStringDesc* c0) { TY_sM4lkSb7zS6F7OVMvW9cffQ* result0; NI i0; NimStringDesc* a0; result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*)0; result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeq((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0); i0 = ((NI) 0); a0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); { while (1) { NIM_BOOL inquote0; NimStringDesc* LOC49; a0 = setLengthStr(a0, ((NI) 0)); { while (1) { NIM_BOOL LOC5; NIM_BOOL LOC6; NIM_BOOL LOC7; LOC5 = (NIM_BOOL)0; LOC6 = (NIM_BOOL)0; LOC7 = (NIM_BOOL)0; LOC7 = ((NU8)(c0->data[i0]) == (NU8)(32)); if (LOC7) goto LA8; LOC7 = ((NU8)(c0->data[i0]) == (NU8)(9)); LA8: ; LOC6 = LOC7; if (LOC6) goto LA9; LOC6 = ((NU8)(c0->data[i0]) == (NU8)(10)); LA9: ; LOC5 = LOC6; if (LOC5) goto LA10; LOC5 = ((NU8)(c0->data[i0]) == (NU8)(13)); LA10: ; if (!LOC5) goto LA4; i0 += ((NI) 1); } LA4: ; } { if (!((NU8)(c0->data[i0]) == (NU8)(0))) goto LA13; goto LA1; } LA13: ; inquote0 = NIM_FALSE; { while (1) { switch (((NU8)(c0->data[i0]))) { case 0: { goto LA15; } break; case 92: { NI j0; j0 = i0; { while (1) { if (!((NU8)(c0->data[j0]) == (NU8)(92))) goto LA20; j0 += ((NI) 1); } LA20: ; } { if (!((NU8)(c0->data[j0]) == (NU8)(34))) goto LA23; { NI k_BonEd5J21PmVJFYOTh6IEw; NI HEX3Atmp_rOnm6pzkk8TUZWAo8ShBWQ; NI res_Wy66IaQGzq8QrpopI4Uvzw; k_BonEd5J21PmVJFYOTh6IEw = (NI)0; HEX3Atmp_rOnm6pzkk8TUZWAo8ShBWQ = (NI)0; HEX3Atmp_rOnm6pzkk8TUZWAo8ShBWQ = (NI)((NI)(j0 - i0) / ((NI) 2)); res_Wy66IaQGzq8QrpopI4Uvzw = ((NI) 1); { while (1) { if (!(res_Wy66IaQGzq8QrpopI4Uvzw <= HEX3Atmp_rOnm6pzkk8TUZWAo8ShBWQ)) goto LA27; k_BonEd5J21PmVJFYOTh6IEw = res_Wy66IaQGzq8QrpopI4Uvzw; a0 = addChar(a0, 92); res_Wy66IaQGzq8QrpopI4Uvzw += ((NI) 1); } LA27: ; } } { if (!(((NI) ((NI)((NI)(j0 - i0) % ((NI) 2)))) == ((NI) 0))) goto LA30; i0 = j0; } goto LA28; LA30: ; { a0 = addChar(a0, 34); i0 = (NI)(j0 + ((NI) 1)); } LA28: ; } goto LA21; LA23: ; { a0 = addChar(a0, c0->data[i0]); i0 += ((NI) 1); } LA21: ; } break; case 34: { i0 += ((NI) 1); { if (!!(inquote0)) goto LA37; inquote0 = NIM_TRUE; } goto LA35; LA37: ; { if (!((NU8)(c0->data[i0]) == (NU8)(34))) goto LA40; a0 = addChar(a0, c0->data[i0]); i0 += ((NI) 1); } goto LA35; LA40: ; { inquote0 = NIM_FALSE; goto LA15; } LA35: ; } break; case 32: case 9: { { if (!!(inquote0)) goto LA46; goto LA15; } LA46: ; a0 = addChar(a0, c0->data[i0]); i0 += ((NI) 1); } break; default: { a0 = addChar(a0, c0->data[i0]); i0 += ((NI) 1); } break; } } } LA15: ; result0 = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(result0)->Sup, sizeof(NimStringDesc*)); LOC49 = (NimStringDesc*)0; LOC49 = result0->data[result0->Sup.len]; result0->data[result0->Sup.len] = copyStringRC1(a0); if (LOC49) nimGCunrefNoCycle(LOC49); ++result0->Sup.len; } } LA1: ; return result0; } N_NIMCALL(NI, nosparamCount)(void) { NI result0; result0 = (NI)0; { NI16* LOC5; NimStringDesc* LOC6; if (!(ownargv_WVJ54JSHy7VxacV39bwBPFA == 0)) goto LA3; LOC5 = (NI16*)0; LOC5 = Dl_120632(); LOC6 = (NimStringDesc*)0; LOC6 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(LOC5); asgnRefNoCycle((void**) (&ownargv_WVJ54JSHy7VxacV39bwBPFA), nosparseCmdLine(LOC6)); } LA3: ; result0 = (NI)((ownargv_WVJ54JSHy7VxacV39bwBPFA ? ownargv_WVJ54JSHy7VxacV39bwBPFA->Sup.len : 0) - ((NI) 1)); return result0; } N_NIMCALL(NimStringDesc*, nosparamStr)(NI i0) { NimStringDesc* result0; { result0 = (NimStringDesc*)0; { NI16* LOC5; NimStringDesc* LOC6; if (!(ownargv_WVJ54JSHy7VxacV39bwBPFA == 0)) goto LA3; LOC5 = (NI16*)0; LOC5 = Dl_120632(); LOC6 = (NimStringDesc*)0; LOC6 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(LOC5); asgnRefNoCycle((void**) (&ownargv_WVJ54JSHy7VxacV39bwBPFA), nosparseCmdLine(LOC6)); } LA3: ; result0 = copyString(ownargv_WVJ54JSHy7VxacV39bwBPFA->data[i0]); goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(NimStringDesc*, nosunixToNativePath)(NimStringDesc* path0, NimStringDesc* drive0) { NimStringDesc* result0; NI start0; NI i0; result0 = (NimStringDesc*)0; start0 = (NI)0; { if (!((NU8)(path0->data[((NI) 0)]) == (NU8)(47))) goto LA3; { NimStringDesc* LOC9; if (!!(((drive0) && (drive0)->Sup.len == 0))) goto LA7; LOC9 = (NimStringDesc*)0; LOC9 = rawNewString(drive0->Sup.len + 2); appendString(LOC9, drive0); appendString(LOC9, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_8)); result0 = LOC9; } goto LA5; LA7: ; { result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); } LA5: ; start0 = ((NI) 1); } goto LA1; LA3: ; { NIM_BOOL LOC12; LOC12 = (NIM_BOOL)0; LOC12 = ((NU8)(path0->data[((NI) 0)]) == (NU8)(46)); if (!(LOC12)) goto LA13; LOC12 = ((NU8)(path0->data[((NI) 1)]) == (NU8)(47)); LA13: ; if (!LOC12) goto LA14; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_10)); start0 = ((NI) 2); } goto LA1; LA14: ; { result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); start0 = ((NI) 0); } LA1: ; i0 = start0; { while (1) { if (!(i0 < (path0 ? path0->Sup.len : 0))) goto LA18; { NIM_BOOL LOC21; NIM_BOOL LOC22; LOC21 = (NIM_BOOL)0; LOC22 = (NIM_BOOL)0; LOC22 = ((NU8)(path0->data[i0]) == (NU8)(46)); if (!(LOC22)) goto LA23; LOC22 = ((NU8)(path0->data[(NI)(i0 + ((NI) 1))]) == (NU8)(46)); LA23: ; LOC21 = LOC22; if (!(LOC21)) goto LA24; LOC21 = ((NU8)(path0->data[(NI)(i0 + ((NI) 2))]) == (NU8)(47)); LA24: ; if (!LOC21) goto LA25; result0 = resizeString(result0, 3); appendString(result0, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_11)); i0 += ((NI) 3); } goto LA19; LA25: ; { if (!((NU8)(path0->data[i0]) == (NU8)(47))) goto LA28; result0 = addChar(result0, 92); i0 += ((NI) 1); } goto LA19; LA28: ; { result0 = addChar(result0, path0->data[i0]); i0 += ((NI) 1); } LA19: ; } LA18: ; } return result0; } N_NIMCALL(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void) { { { NI16* env0; NI16* e0; NI32 LOC17; if (!!(envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ)) goto LA3; if (environment_mlhK49b6YMgc9cgrcYkKq9a3g) nimGCunrefNoCycle(environment_mlhK49b6YMgc9cgrcYkKq9a3g); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeqRC1((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0); env0 = Dl_120627(); e0 = env0; { if (!(e0 == NIM_NIL)) goto LA7; goto BeforeRet; } LA7: ; { while (1) { NI16* eend0; NimStringDesc* LOC11; NimStringDesc* LOC12; eend0 = wcschr(e0, ((NI32) 0)); LOC11 = (NimStringDesc*)0; LOC11 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(e0); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(environment_mlhK49b6YMgc9cgrcYkKq9a3g)->Sup, sizeof(NimStringDesc*)); LOC12 = (NimStringDesc*)0; LOC12 = environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len]; environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len] = copyStringRC1(LOC11); if (LOC12) nimGCunrefNoCycle(LOC12); ++environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len; e0 = ((NI16*) ((NI)(((NI) (eend0)) + ((NI) 2)))); { if (!(((NI) (eend0[(((NI) 1))- 0])) == ((NI) 0))) goto LA15; goto LA9; } LA15: ; } } LA9: ; LOC17 = (NI32)0; LOC17 = Dl_120629(env0); envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ = NIM_TRUE; } LA3: ; }BeforeRet: ; } N_NIMCALL(NI, findenvvar_cmJJ3H7KloA4DztTvzWyCw)(NimStringDesc* key0) { NI result0; NimStringDesc* temp0; NimStringDesc* LOC1; { result0 = (NI)0; getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA(); LOC1 = (NimStringDesc*)0; LOC1 = rawNewString(key0->Sup.len + 1); appendString(LOC1, key0); appendChar(LOC1, 61); temp0 = LOC1; { NI i_QFpQyCBMTAf3RQiHRTCtRA; NI HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA; NI res_9cO4Qfuzy9c4z8ih7joizeqg; i_QFpQyCBMTAf3RQiHRTCtRA = (NI)0; HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA = (NI)0; HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1); res_9cO4Qfuzy9c4z8ih7joizeqg = ((NI) 0); { while (1) { if (!(res_9cO4Qfuzy9c4z8ih7joizeqg <= HEX3Atmp_8z2i61QBqrTxJYp9bXCSF9aA)) goto LA4; i_QFpQyCBMTAf3RQiHRTCtRA = res_9cO4Qfuzy9c4z8ih7joizeqg; { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = nsuStartsWith(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i_QFpQyCBMTAf3RQiHRTCtRA], temp0); if (!LOC7) goto LA8; result0 = i_QFpQyCBMTAf3RQiHRTCtRA; goto BeforeRet; } LA8: ; res_9cO4Qfuzy9c4z8ih7joizeqg += ((NI) 1); } LA4: ; } } result0 = ((NI) -1); goto BeforeRet; }BeforeRet: ; return result0; } static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos)(NCSTRING x0, NCSTRING y0) { NIM_BOOL result0; result0 = (NIM_BOOL)0; { if (!(((void*) (x0)) == ((void*) (y0)))) goto LA3; result0 = NIM_TRUE; } goto LA1; LA3: ; { NIM_BOOL LOC6; LOC6 = (NIM_BOOL)0; LOC6 = (x0 == 0); if (LOC6) goto LA7; LOC6 = (y0 == 0); LA7: ; if (!LOC6) goto LA8; result0 = NIM_FALSE; } goto LA1; LA8: ; { int LOC11; LOC11 = (int)0; LOC11 = strcmp(x0, y0); result0 = (LOC11 == ((NI32) 0)); } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, getenv_8zNgT9bxx7m9cTt2TeVdTdIw)(NimStringDesc* key0) { NimStringDesc* result0; NI i0; { result0 = (NimStringDesc*)0; i0 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0); { NI LOC5; if (!(((NI) 0) <= i0)) goto LA3; LOC5 = (NI)0; LOC5 = nsuFindChar(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i0], 61, ((NI) 0)); result0 = copyStr(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[i0], (NI)(LOC5 + ((NI) 1))); goto BeforeRet; } goto LA1; LA3: ; { NCSTRING env0; env0 = getenv(key0->data); { NIM_BOOL LOC9; LOC9 = (NIM_BOOL)0; LOC9 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos(env0, NIM_NIL); if (!LOC9) goto LA10; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); goto BeforeRet; } LA10: ; result0 = cstrToNimstr(env0); } LA1: ; }BeforeRet: ; return result0; } N_NIMCALL(NimStringDesc*, nosgetHomeDir)(void) { NimStringDesc* result0; NimStringDesc* LOC1; NimStringDesc* LOC2; { result0 = (NimStringDesc*)0; LOC1 = (NimStringDesc*)0; LOC2 = (NimStringDesc*)0; LOC2 = getenv_8zNgT9bxx7m9cTt2TeVdTdIw(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_12)); LOC1 = rawNewString(LOC2->Sup.len + 1); appendString(LOC1, LOC2); appendString(LOC1, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); result0 = LOC1; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(NI, noscmpPaths)(NimStringDesc* patha0, NimStringDesc* pathb0) { NI result0; result0 = (NI)0; { if (!NIM_FALSE) goto LA3; result0 = cmp_xEnKsp9cfvO7Do9cTYXo8eJw(patha0, pathb0); } goto LA1; LA3: ; { result0 = nsuCmpIgnoreCase(patha0, pathb0); } LA1: ; return result0; } N_NIMCALL(void, putenv_Ewmee2rKQBhOdwD9bJ4Lh8A)(NimStringDesc* key0, NimStringDesc* val0) { NI indx0; NI16* k0; NI16* v0; indx0 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0); { NimStringDesc* LOC5; if (!(((NI) 0) <= indx0)) goto LA3; LOC5 = (NimStringDesc*)0; LOC5 = rawNewString(key0->Sup.len + val0->Sup.len + 1); appendString(LOC5, key0); appendChar(LOC5, 61); appendString(LOC5, val0); asgnRefNoCycle((void**) (&environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[indx0]), LOC5); } goto LA1; LA3: ; { NimStringDesc* LOC7; NimStringDesc* LOC8; LOC7 = (NimStringDesc*)0; LOC7 = rawNewString(key0->Sup.len + val0->Sup.len + 1); appendString(LOC7, key0); appendChar(LOC7, 61); appendString(LOC7, val0); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(environment_mlhK49b6YMgc9cgrcYkKq9a3g)->Sup, sizeof(NimStringDesc*)); LOC8 = (NimStringDesc*)0; LOC8 = environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len]; environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len] = copyStringRC1(LOC7); if (LOC8) nimGCunrefNoCycle(LOC8); ++environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len; indx0 = (environment_mlhK49b6YMgc9cgrcYkKq9a3g ? (environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len-1) : -1); } LA1: ; k0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(key0); v0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(val0); { NI32 LOC11; NI32 LOC14; LOC11 = (NI32)0; LOC11 = Dl_120018(k0, v0); if (!(LOC11 == ((NI32) 0))) goto LA12; LOC14 = (NI32)0; LOC14 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC14, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA12: ; } N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void) { NimStringDesc* result0; NI32 bufsize0; NI16* res0; result0 = (NimStringDesc*)0; bufsize0 = ((NI32) 260); res0 = newwidecstring_b3CORJA07cGvZB3j3M3bqQ("", ((NI) (bufsize0))); { while (1) { NI32 L0; L0 = Dl_120004(bufsize0, res0); { NI32 LOC7; if (!(L0 == ((NI32) 0))) goto LA5; LOC7 = (NI32)0; LOC7 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC7, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } goto LA3; LA5: ; { if (!(bufsize0 < L0)) goto LA9; res0 = newwidecstring_b3CORJA07cGvZB3j3M3bqQ("", ((NI) (L0))); bufsize0 = L0; } goto LA3; LA9: ; { result0 = HEX24_GUT0CpACeWzt9cO6i89asYdw(res0, ((NI) (L0)), ((NI) 65533)); goto LA1; } LA3: ; } } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, findexe_NQz9bqtJ8Yukg6trpGym2NQ)(NimStringDesc* exe0, NIM_BOOL followsymlinks0, TY_24KAM9afIUgUaqBaEBB6r9bg extensions0) { NimStringDesc* result0; NimStringDesc* path0; { result0 = (NimStringDesc*)0; { NimStringDesc* ext_OPvsxUJH2BMqmTeWesXT9cQ; NI i_ZiZQ0BrOOFRx4PwT9ahXHww; ext_OPvsxUJH2BMqmTeWesXT9cQ = (NimStringDesc*)0; i_ZiZQ0BrOOFRx4PwT9ahXHww = ((NI) 0); { if (!(((NI) (i_ZiZQ0BrOOFRx4PwT9ahXHww)) <= ((NI) 2))) goto LA4; { while (1) { ext_OPvsxUJH2BMqmTeWesXT9cQ = extensions0[(i_ZiZQ0BrOOFRx4PwT9ahXHww)- 0]; result0 = nosaddFileExt(exe0, ext_OPvsxUJH2BMqmTeWesXT9cQ); { NIM_BOOL LOC10; LOC10 = (NIM_BOOL)0; LOC10 = nosexistsFile(result0); if (!LOC10) goto LA11; goto BeforeRet; } LA11: ; { if (!(((NI) 2) <= ((NI) (i_ZiZQ0BrOOFRx4PwT9ahXHww)))) goto LA15; goto LA6; } LA15: ; i_ZiZQ0BrOOFRx4PwT9ahXHww += ((NI) 1); } } LA6: ; } LA4: ; } path0 = getenv_8zNgT9bxx7m9cTt2TeVdTdIw(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_13)); { NimStringDesc* candidate_UCy6ZV9aetVL3IB59cKQ4cGg; NI last_3fEEWoI2EjAM6VEbXEXPpw; NI splits_CKAYEyOxVf7nwPkm8GYNOw; candidate_UCy6ZV9aetVL3IB59cKQ4cGg = (NimStringDesc*)0; last_3fEEWoI2EjAM6VEbXEXPpw = ((NI) 0); splits_CKAYEyOxVf7nwPkm8GYNOw = ((NI) -1); { if (!(((NI) 0) < (path0 ? path0->Sup.len : 0))) goto LA20; { while (1) { NI first_qu3LctVkQb4nzpkeLTYj3w; NimStringDesc* x_Hlylti1YCPff0zaqS9c7zjg; NimStringDesc* LOC32; if (!(last_3fEEWoI2EjAM6VEbXEXPpw <= (path0 ? path0->Sup.len : 0))) goto LA23; first_qu3LctVkQb4nzpkeLTYj3w = last_3fEEWoI2EjAM6VEbXEXPpw; { while (1) { NIM_BOOL LOC26; LOC26 = (NIM_BOOL)0; LOC26 = (last_3fEEWoI2EjAM6VEbXEXPpw < (path0 ? path0->Sup.len : 0)); if (!(LOC26)) goto LA27; LOC26 = !(((NU8)(path0->data[last_3fEEWoI2EjAM6VEbXEXPpw]) == (NU8)(59))); LA27: ; if (!LOC26) goto LA25; last_3fEEWoI2EjAM6VEbXEXPpw += ((NI) 1); } LA25: ; } { if (!(splits_CKAYEyOxVf7nwPkm8GYNOw == ((NI) 0))) goto LA30; last_3fEEWoI2EjAM6VEbXEXPpw = (path0 ? path0->Sup.len : 0); } LA30: ; candidate_UCy6ZV9aetVL3IB59cKQ4cGg = copyStrLast(path0, first_qu3LctVkQb4nzpkeLTYj3w, (NI)(last_3fEEWoI2EjAM6VEbXEXPpw - ((NI) 1))); LOC32 = (NimStringDesc*)0; { NIM_BOOL LOC35; LOC35 = (NIM_BOOL)0; LOC35 = ((NU8)(candidate_UCy6ZV9aetVL3IB59cKQ4cGg->data[((NI) 0)]) == (NU8)(34)); if (!(LOC35)) goto LA36; LOC35 = ((NU8)(candidate_UCy6ZV9aetVL3IB59cKQ4cGg->data[(NI)((candidate_UCy6ZV9aetVL3IB59cKQ4cGg ? candidate_UCy6ZV9aetVL3IB59cKQ4cGg->Sup.len : 0) - ((NI) 1))]) == (NU8)(34)); LA36: ; if (!LOC35) goto LA37; LOC32 = copyStrLast(candidate_UCy6ZV9aetVL3IB59cKQ4cGg, ((NI) 1), (NI)((candidate_UCy6ZV9aetVL3IB59cKQ4cGg ? candidate_UCy6ZV9aetVL3IB59cKQ4cGg->Sup.len : 0) - ((NI) 2))); } goto LA33; LA37: ; { LOC32 = copyString(candidate_UCy6ZV9aetVL3IB59cKQ4cGg); } LA33: ; x_Hlylti1YCPff0zaqS9c7zjg = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(LOC32, exe0); { NimStringDesc* ext_OPvsxUJH2BMqmTeWesXT9cQ_2; NI i_ZiZQ0BrOOFRx4PwT9ahXHww_2; ext_OPvsxUJH2BMqmTeWesXT9cQ_2 = (NimStringDesc*)0; i_ZiZQ0BrOOFRx4PwT9ahXHww_2 = ((NI) 0); { if (!(((NI) (i_ZiZQ0BrOOFRx4PwT9ahXHww_2)) <= ((NI) 2))) goto LA43; { while (1) { NimStringDesc* x0; ext_OPvsxUJH2BMqmTeWesXT9cQ_2 = extensions0[(i_ZiZQ0BrOOFRx4PwT9ahXHww_2)- 0]; x0 = nosaddFileExt(x_Hlylti1YCPff0zaqS9c7zjg, ext_OPvsxUJH2BMqmTeWesXT9cQ_2); { NIM_BOOL LOC49; LOC49 = (NIM_BOOL)0; LOC49 = nosexistsFile(x0); if (!LOC49) goto LA50; result0 = copyString(x0); goto BeforeRet; } LA50: ; { if (!(((NI) 2) <= ((NI) (i_ZiZQ0BrOOFRx4PwT9ahXHww_2)))) goto LA54; goto LA45; } LA54: ; i_ZiZQ0BrOOFRx4PwT9ahXHww_2 += ((NI) 1); } } LA45: ; } LA43: ; } { if (!(splits_CKAYEyOxVf7nwPkm8GYNOw == ((NI) 0))) goto LA58; goto LA22; } LA58: ; splits_CKAYEyOxVf7nwPkm8GYNOw -= ((NI) 1); last_3fEEWoI2EjAM6VEbXEXPpw += ((NI) 1); } LA23: ; } LA22: ; } LA20: ; } result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); }BeforeRet: ; return result0; } N_NIMCALL(NimStringDesc*, nosgetConfigDir)(void) { NimStringDesc* result0; NimStringDesc* LOC1; NimStringDesc* LOC2; { result0 = (NimStringDesc*)0; LOC1 = (NimStringDesc*)0; LOC2 = (NimStringDesc*)0; LOC2 = getenv_8zNgT9bxx7m9cTt2TeVdTdIw(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_17)); LOC1 = rawNewString(LOC2->Sup.len + 1); appendString(LOC1, LOC2); appendString(LOC1, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); result0 = LOC1; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(NIM_BOOL, nosisRootDir)(NimStringDesc* path0) { NIM_BOOL result0; NI LOC1; result0 = (NIM_BOOL)0; LOC1 = (NI)0; LOC1 = parentdirpos_DqTO9byr8jfMuX9cD2FnlVFQ(path0); result0 = (LOC1 < ((NI) 0)); return result0; } N_NIMCALL(NIM_BOOL, existsenv_ahpnHkfRE9cLlJNaRpEL7Vw)(NimStringDesc* key0) { NIM_BOOL result0; { result0 = (NIM_BOOL)0; { NCSTRING LOC3; NIM_BOOL LOC4; LOC3 = (NCSTRING)0; LOC3 = getenv(key0->data); LOC4 = (NIM_BOOL)0; LOC4 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos(LOC3, NIM_NIL); if (!!(LOC4)) goto LA5; result0 = NIM_TRUE; goto BeforeRet; } goto LA1; LA5: ; { NI LOC8; LOC8 = (NI)0; LOC8 = findenvvar_cmJJ3H7KloA4DztTvzWyCw(key0); result0 = (((NI) 0) <= LOC8); goto BeforeRet; } LA1: ; }BeforeRet: ; return result0; } static N_INLINE(void, pushSafePoint)(TSafePoint* s0) { (*s0).hasRaiseAction = NIM_FALSE; (*s0).prev = exchandler_rqLlY5bs9atDw2OXYqJEn5g; exchandler_rqLlY5bs9atDw2OXYqJEn5g = s0; } static N_INLINE(NIM_BOOL, skipfinddata_Paqclu9aSY8chOSEIvA5ZoAoptions)(Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA* f0) { NIM_BOOL result0; NIM_BOOL LOC1; NIM_BOOL LOC3; NIM_BOOL LOC5; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = (((NI) ((*f0).cfilename[(((NI) 0))- 0])) == ((NI) 46)); if (!(LOC1)) goto LA2; LOC3 = (NIM_BOOL)0; LOC3 = (((NI) ((*f0).cfilename[(((NI) 1))- 0])) == ((NI) 0)); if (LOC3) goto LA4; LOC5 = (NIM_BOOL)0; LOC5 = (((NI) ((*f0).cfilename[(((NI) 1))- 0])) == ((NI) 46)); if (!(LOC5)) goto LA6; LOC5 = (((NI) ((*f0).cfilename[(((NI) 2))- 0])) == ((NI) 0)); LA6: ; LOC3 = LOC5; LA4: ; LOC1 = LOC3; LA2: ; result0 = LOC1; return result0; } N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0) { NI16* f0; f0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(file0); { NI32 LOC3; LOC3 = (NI32)0; LOC3 = Dl_121430(f0); if (!(LOC3 == ((NI32) 0))) goto LA4; { NI32 LOC8; LOC8 = (NI32)0; LOC8 = Dl_119830(); if (!(LOC8 == ((NI32) 5))) goto LA9; { NI32 LOC13; NI32 LOC16; LOC13 = (NI32)0; LOC13 = Dl_120614(f0, ((NI32) 128)); if (!(LOC13 == ((NI32) 0))) goto LA14; LOC16 = (NI32)0; LOC16 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC16, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA14: ; { NI32 LOC19; NI32 LOC22; LOC19 = (NI32)0; LOC19 = Dl_121430(f0); if (!(LOC19 == ((NI32) 0))) goto LA20; LOC22 = (NI32)0; LOC22 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC22, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA20: ; } LA9: ; } LA4: ; } static N_INLINE(void, popSafePoint)(void) { exchandler_rqLlY5bs9atDw2OXYqJEn5g = (*exchandler_rqLlY5bs9atDw2OXYqJEn5g).prev; } N_NIMCALL(void, rawremovedir_UW75XKQJ2RK9bO3MFFoDxTw)(NimStringDesc* dir0) { NI32 res0; NI16* LOC1; NI32 lasterror0; LOC1 = (NI16*)0; LOC1 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(dir0); res0 = Dl_120015(LOC1); lasterror0 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); { NIM_BOOL LOC4; NIM_BOOL LOC5; NIM_BOOL LOC6; LOC4 = (NIM_BOOL)0; LOC5 = (NIM_BOOL)0; LOC6 = (NIM_BOOL)0; LOC6 = (res0 == ((NI32) 0)); if (!(LOC6)) goto LA7; LOC6 = !((lasterror0 == ((NI32) 3))); LA7: ; LOC5 = LOC6; if (!(LOC5)) goto LA8; LOC5 = !((lasterror0 == ((NI32) 18))); LA8: ; LOC4 = LOC5; if (!(LOC4)) goto LA9; LOC4 = !((lasterror0 == ((NI32) 2))); LA9: ; if (!LOC4) goto LA10; raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(lasterror0, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA10: ; } N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0) { { Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg kind_CgYWYOGBi9cm9cxet9aP24amQ; NimStringDesc* path_PjxD5WVfFUdiLYTKKL9acYg; Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA f_1cZYtEmexm1RTlmNW9aLikg; NI h_JJQNr70NTJzS5UNyFdTpBw; NimStringDesc* LOC2; kind_CgYWYOGBi9cm9cxet9aP24amQ = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0; path_PjxD5WVfFUdiLYTKKL9acYg = (NimStringDesc*)0; memset((void*)(&f_1cZYtEmexm1RTlmNW9aLikg), 0, sizeof(f_1cZYtEmexm1RTlmNW9aLikg)); LOC2 = (NimStringDesc*)0; LOC2 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_18)); h_JJQNr70NTJzS5UNyFdTpBw = findfirstfile_9cPKjuaUWDYlrzWunhDgNng(LOC2, (&f_1cZYtEmexm1RTlmNW9aLikg)); { TSafePoint T_yu6cxgKBBXbNsTkT9cyMd4g_19; if (!!((h_JJQNr70NTJzS5UNyFdTpBw == ((NI) -1)))) goto LA5; pushSafePoint(&T_yu6cxgKBBXbNsTkT9cyMd4g_19); T_yu6cxgKBBXbNsTkT9cyMd4g_19.status = setjmp(T_yu6cxgKBBXbNsTkT9cyMd4g_19.context); if (T_yu6cxgKBBXbNsTkT9cyMd4g_19.status == 0) { { while (1) { Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg volatile k_3L6up3asmYrsS0W9b26IJmg; k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0); { NIM_BOOL LOC12; NimStringDesc* xx_dEAndDFRegsTFsbHpNqH9cg; LOC12 = (NIM_BOOL)0; LOC12 = skipfinddata_Paqclu9aSY8chOSEIvA5ZoAoptions((&f_1cZYtEmexm1RTlmNW9aLikg)); if (!!(LOC12)) goto LA13; { if (!!(((NI32)(f_1cZYtEmexm1RTlmNW9aLikg.dwfileattributes & ((NI32) 16)) == ((NI32) 0)))) goto LA17; k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2); } LA17: ; { if (!!(((NI32)(f_1cZYtEmexm1RTlmNW9aLikg.dwfileattributes & ((NI32) 1024)) == ((NI32) 0)))) goto LA21; k_3L6up3asmYrsS0W9b26IJmg = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)(k_3L6up3asmYrsS0W9b26IJmg + ((NI) 1)); } LA21: ; { NimStringDesc* LOC27; if (!NIM_FALSE) goto LA25; LOC27 = (NimStringDesc*)0; LOC27 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(((NI16*) ((&f_1cZYtEmexm1RTlmNW9aLikg.cfilename[(((NI) 0))- 0])))); xx_dEAndDFRegsTFsbHpNqH9cg = nosextractFilename(LOC27); } goto LA23; LA25: ; { NimStringDesc* LOC29; NimStringDesc* LOC30; LOC29 = (NimStringDesc*)0; LOC29 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(((NI16*) ((&f_1cZYtEmexm1RTlmNW9aLikg.cfilename[(((NI) 0))- 0])))); LOC30 = (NimStringDesc*)0; LOC30 = nosextractFilename(LOC29); xx_dEAndDFRegsTFsbHpNqH9cg = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, LOC30); } LA23: ; kind_CgYWYOGBi9cm9cxet9aP24amQ = k_3L6up3asmYrsS0W9b26IJmg; path_PjxD5WVfFUdiLYTKKL9acYg = xx_dEAndDFRegsTFsbHpNqH9cg; switch (kind_CgYWYOGBi9cm9cxet9aP24amQ) { case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0): case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1): case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3): { nosremoveFile(path_PjxD5WVfFUdiLYTKKL9acYg); } break; case ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2): { nosremoveDir(path_PjxD5WVfFUdiLYTKKL9acYg); } break; } } LA13: ; { NI32 LOC35; LOC35 = (NI32)0; LOC35 = Dl_120437(h_JJQNr70NTJzS5UNyFdTpBw, (&f_1cZYtEmexm1RTlmNW9aLikg)); if (!(LOC35 == ((NI32) 0))) goto LA36; goto LA8; } LA36: ; } } LA8: ; popSafePoint(); } else { popSafePoint(); } { Dl_120601(h_JJQNr70NTJzS5UNyFdTpBw); } if (T_yu6cxgKBBXbNsTkT9cyMd4g_19.status != 0) reraiseException(); } LA5: ; } rawremovedir_UW75XKQJ2RK9bO3MFFoDxTw(dir0); } N_NIMCALL(void, nosmoveFile)(NimStringDesc* source0, NimStringDesc* dest0) { NI16* s0; NI16* d0; s0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(source0); d0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(dest0); { NI32 LOC3; NI32 LOC6; LOC3 = (NI32)0; LOC3 = Dl_120623(s0, d0); if (!(LOC3 == ((NI32) 0))) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA4: ; } N_NIMCALL(void, noscopyFile)(NimStringDesc* source0, NimStringDesc* dest0) { NI16* s0; NI16* d0; s0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(source0); d0 = newwidecstring_kxipuF9cNh6r2grKDcLjFuw(dest0); { NI32 LOC3; NI32 LOC6; LOC3 = (NI32)0; LOC3 = Dl_120618(s0, d0, ((NI32) 0)); if (!(LOC3 == ((NI32) 0))) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA4: ; } N_NIMCALL(time_t, nosgetLastModificationTime)(NimStringDesc* file0) { time_t result0; Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA f0; NI h0; NI64 LOC6; result0 = (time_t)0; memset((void*)(&f0), 0, sizeof(f0)); h0 = findfirstfile_9cPKjuaUWDYlrzWunhDgNng(file0, (&f0)); { NI32 LOC5; if (!(h0 == ((NI) -1))) goto LA3; LOC5 = (NI32)0; LOC5 = oslasterror_6wyvsbJUteIgEY9cC5BVJZQ(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC5, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); } LA3: ; LOC6 = (NI64)0; LOC6 = rdfiletime_8xfVp1z4bc5fRCRgoEFhIQ(f0.ftlastwritetime); result0 = wintimetounixtime_Roh6mgu3pw5hYGgivhSNGw(LOC6); Dl_120601(h0); return result0; } N_NIMCALL(NIM_BOOL, nosfileNewer)(NimStringDesc* a0, NimStringDesc* b0) { NIM_BOOL result0; time_t LOC1; time_t LOC2; NI64 LOC3; result0 = (NIM_BOOL)0; LOC1 = (time_t)0; LOC1 = nosgetLastModificationTime(a0); LOC2 = (time_t)0; LOC2 = nosgetLastModificationTime(b0); LOC3 = (NI64)0; LOC3 = ntDiffTime(LOC1, LOC2); result0 = (IL64(0) < LOC3); return result0; } N_NIMCALL(void, nossleep)(NI milsecs0) { Dl_120831(((NI32) (milsecs0))); } N_NIMCALL(NimStringDesc*, expandtilde_bY3FvgrWj5mj9cB3I89cRWxg)(NimStringDesc* path0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; { NIM_BOOL LOC3; NIM_BOOL LOC4; NIM_BOOL LOC7; NimStringDesc* LOC11; NimStringDesc* LOC12; LOC3 = (NIM_BOOL)0; LOC4 = (NIM_BOOL)0; LOC4 = (((NI) 1) < (path0 ? path0->Sup.len : 0)); if (!(LOC4)) goto LA5; LOC4 = ((NU8)(path0->data[((NI) 0)]) == (NU8)(126)); LA5: ; LOC3 = LOC4; if (!(LOC3)) goto LA6; LOC7 = (NIM_BOOL)0; LOC7 = ((NU8)(path0->data[((NI) 1)]) == (NU8)(47)); if (LOC7) goto LA8; LOC7 = ((NU8)(path0->data[((NI) 1)]) == (NU8)(92)); LA8: ; LOC3 = LOC7; LA6: ; if (!LOC3) goto LA9; LOC11 = (NimStringDesc*)0; LOC11 = nosgetHomeDir(); LOC12 = (NimStringDesc*)0; LOC12 = copyStr(path0, ((NI) 2)); result0 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(LOC11, LOC12); } goto LA1; LA9: ; { result0 = copyString(path0); } LA1: ; return result0; } NIM_EXTERNC N_NOINLINE(void, stdlib_osInit000)(void) { nimRegisterGlobalMarker(T_yu6cxgKBBXbNsTkT9cyMd4g_2); nimRegisterGlobalMarker(T_yu6cxgKBBXbNsTkT9cyMd4g_3); } NIM_EXTERNC N_NOINLINE(void, stdlib_osDatInit000)(void) { NTI_sM4lkSb7zS6F7OVMvW9cffQ.size = sizeof(TY_sM4lkSb7zS6F7OVMvW9cffQ*); NTI_sM4lkSb7zS6F7OVMvW9cffQ.kind = 24; NTI_sM4lkSb7zS6F7OVMvW9cffQ.base = (&NTI_77mFvmsOLKik79ci2hXkHEg); NTI_sM4lkSb7zS6F7OVMvW9cffQ.flags = 2; NTI_sM4lkSb7zS6F7OVMvW9cffQ.marker = Marker_TY_sM4lkSb7zS6F7OVMvW9cffQ; }