/* 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 #include #include #include #include #include #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 TY_7q7q3E6Oj24ZNVJb9aonhAg TY_7q7q3E6Oj24ZNVJb9aonhAg; typedef struct Ioerror_9czoZw3pzPyrBmb5zTHY1OQ Ioerror_9czoZw3pzPyrBmb5zTHY1OQ; typedef struct Indexerror_b0IIwghFQBADkB2c86kXQA Indexerror_b0IIwghFQBADkB2c86kXQA; 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; }; 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; }; struct TY_7q7q3E6Oj24ZNVJb9aonhAg { NimStringDesc* Field0; NimStringDesc* Field1; NimStringDesc* Field2; }; struct Ioerror_9czoZw3pzPyrBmb5zTHY1OQ { Systemerror_Fjf9b9b2IlzRO2tspHxG3tgg Sup; }; struct Indexerror_b0IIwghFQBADkB2c86kXQA { Exception Sup; }; typedef NU8 Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg; typedef NimStringDesc* TY_nHXaesL0DJZHyVS07ARPRA[1]; 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 NIM_CHAR TY_dTlC27m9c9aWd5dvuePYanug[256]; typedef NU8 Filemode_fVUBHvW79bXUw1j55Oo9avSQ; 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); 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_NOINLINE(void, raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA)(NI32 errorcode0, NimStringDesc* additionalinfo0); N_NIMCALL(void*, newObj)(TNimType* typ0, NI size0); N_NIMCALL(NimStringDesc*, oserrormsg_9cO757MdTrYxfurMy5qIoAg)(NI32 errorcode0); N_NIMCALL(NimStringDesc*, cstrToNimstr)(NCSTRING str0); 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(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void); N_NIMCALL(void, nossplitFile)(NimStringDesc* path0, TY_7q7q3E6Oj24ZNVJb9aonhAg* Result); N_NIMCALL(NimStringDesc*, nosgetAppFilename)(void); N_NIMCALL(NimStringDesc*, mnewString)(NI len0); N_NIMCALL(NimStringDesc*, mnewString)(NI len0); N_NIMCALL(NimStringDesc*, nosexpandFilename)(NimStringDesc* filename0); N_NIMCALL(NI, parentdirpos_DqTO9byr8jfMuX9cD2FnlVFQ)(NimStringDesc* path0); N_NIMCALL(NimStringDesc*, nosjoinPath)(NimStringDesc* head0, NimStringDesc* tail0); N_NIMCALL(NIM_BOOL, existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww)(NimStringDesc* dir0); N_NIMCALL(NIM_BOOL, rawcreatedir_V86QyZrcGMPX0W9bv1Q53ww_2)(NimStringDesc* dir0); N_NIMCALL(NimStringDesc*, nimIntToStr)(NI x0); N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0); 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); static N_INLINE(NIM_BOOL, HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos)(NCSTRING x0, NCSTRING y0); N_NIMCALL(TGenericSeq*, incrSeqV2)(TGenericSeq* seq0, NI elemsize0); N_NIMCALL(NIM_BOOL, nsuStartsWith)(NimStringDesc* s0, NimStringDesc* prefix0); N_NIMCALL(NI, nsuFindChar)(NimStringDesc* s0, NIM_CHAR sub0, NI start0); N_NIMCALL(NI, cmp_xEnKsp9cfvO7Do9cTYXo8eJw)(NimStringDesc* x0, NimStringDesc* y0); N_NIMCALL(NI, nsuCmpIgnoreCase)(NimStringDesc* a0, NimStringDesc* b0); N_NIMCALL(NimStringDesc*, setLengthStr)(NimStringDesc* s0, NI newlen0); N_NOINLINE(void, raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2)(NimStringDesc* msg0); 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(NimStringDesc*, expandtilde_bY3FvgrWj5mj9cB3I89cRWxg)(NimStringDesc* path0); N_NIMCALL(NimStringDesc*, nosgetHomeDir)(void); N_NIMCALL(NIM_BOOL, checksymlink_KkZgXPy74tXi49bh8QSie8g)(NimStringDesc* path0); N_NIMCALL(NIM_BOOL, nosisAbsolute)(NimStringDesc* path0); N_NIMCALL(NimStringDesc*, nosparentDir)(NimStringDesc* path0); static N_INLINE(void, pushSafePoint)(TSafePoint* s0); static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0); static N_INLINE(NIM_BOOL, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0); static N_INLINE(NIM_BOOL, direxists_wf0Ae3eLXw0lSNEFJMV3ognimblecmd)(NimStringDesc* dir0); N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0); N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0); N_NIMCALL(Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg, getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg)(NimStringDesc* path0); static N_INLINE(void, popSafePoint)(void); N_NIMCALL(void, reraiseException)(void); N_NIMCALL(void, rawremovedir_P9aOuM3pg25yKqgBUm7qKng)(NimStringDesc* dir0); N_NIMCALL(NIM_BOOL, open_sEp0GH2306oGo9bqBpj5oTQ)(FILE** f0, NimStringDesc* filename0, Filemode_fVUBHvW79bXUw1j55Oo9avSQ mode0, NI bufsize0); N_NIMCALL(void, close_BWnr8V7RERYno9bIdPmw8Hw_2)(FILE* f0); N_NOCONV(void*, alloc_4cubgSerkjpuLcj5MXjiLw_2)(NI size0); N_NIMCALL(NI, readbuffer_nZ0pNe9cd9cXtoayexCiaDtA_2)(FILE* f0, void* buffer0, NI len0); N_NIMCALL(NI, writebuffer_nZ0pNe9cd9cXtoayexCiaDtA)(FILE* f0, void* buffer0, NI len0); N_NOCONV(void, dealloc_RCjNtRnHdRYntrcE7YtwWw)(void* p0); N_NIMCALL(void, flushfile_BWnr8V7RERYno9bIdPmw8Hw)(FILE* f0); N_NIMCALL(NI64, ntDiffTime)(time_t a0, time_t b0); N_NIMCALL(time_t, nosgetLastModificationTime)(NimStringDesc* file0); NIM_BOOL envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ; TY_sM4lkSb7zS6F7OVMvW9cffQ* environment_mlhK49b6YMgc9cgrcYkKq9a3g; extern TNimType NTI_77mFvmsOLKik79ci2hXkHEg; TNimType NTI_sM4lkSb7zS6F7OVMvW9cffQ; extern int cmdCount; extern NCSTRING* cmdLine; extern TNimType NTI_Qx9aKy4vZ9bVz9bnG9brQcRHGA; extern TNimType NTI_3XwRQvmzCEOC4QnT706q1g; extern Gcheap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q; extern TNimType NTI_HX2M9cQhE3jaovp9aYJDdslA; extern TNimType NTI_9czoZw3pzPyrBmb5zTHY1OQ; extern TNimType NTI_z58cIdR0vOibqJ0QwYvB3Q; extern TNimType NTI_b0IIwghFQBADkB2c86kXQA; extern TSafePoint* exchandler_rqLlY5bs9atDw2OXYqJEn5g; STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_3, "", 0); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_4, "\012Additional info: ", 18); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_5, "unknown OS error", 16); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_6, "Failed to create the directory", 30); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_7, "invalid index", 13); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_8, "HOME", 4); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_9, "/", 1); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_10, "\012 0 <= bufsize ", 16); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_11, "PATH", 4); NIM_CONST TY_nHXaesL0DJZHyVS07ARPRA Exeexts_ONrgkgAZ9bh6KVTWl4XeOSw = {((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)} ; STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_12, "/.config/", 9); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_14, ".", 1); STRING_LITERAL(T_yu6cxgKBBXbNsTkT9cyMd4g_15, "..", 2); 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); } 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)(47)) || ((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_3))); 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)(47)) || ((NU8)(path0->data[(NI)((path0 ? path0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47))); LA4: ; if (!LOC3) goto LA5; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } 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)(47)) || ((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_3)); { NCSTRING LOC5; if (!!((errorcode0 == ((NI32) 0)))) goto LA3; LOC5 = (NCSTRING)0; LOC5 = strerror(errorcode0); result0 = cstrToNimstr(LOC5); } 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 + 18); appendString(LOC6, LOC7); appendString(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_4)); 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_5)); if (LOC12) nimGCunrefNoCycle(LOC12); } LA10: ; raiseException((Exception*)e0, "OSError"); } N_NIMCALL(NI32, oslasterror_pMOMIZAQaKFp1XoL58mjVg)(void) { NI32 result0; result0 = (NI32)0; result0 = errno; return result0; } N_NIMCALL(NimStringDesc*, nosexpandFilename)(NimStringDesc* filename0) { NimStringDesc* result0; NCSTRING r0; result0 = (NimStringDesc*)0; r0 = realpath(filename0->data, NIM_NIL); { NI32 LOC5; if (!(r0 == 0)) goto LA3; LOC5 = (NI32)0; LOC5 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC5, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } goto LA1; LA3: ; { result0 = cstrToNimstr(r0); free(((void*) (r0))); } LA1: ; 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)(47)) || ((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_3))); unsureAsgnRef((void**) (&(*Result).Field2), copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3))); } 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)(47)) || ((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)(47)) || ((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; unsigned int size0; result0 = (NimStringDesc*)0; size0 = (unsigned int)0; _NSGetExecutablePath(NIM_NIL, (&size0)); result0 = mnewString(((NI) (size0))); { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = _NSGetExecutablePath(result0->data, (&size0)); if (!LOC3) goto LA4; result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA4: ; { if (!(((NI) 0) < (result0 ? result0->Sup.len : 0))) goto LA8; result0 = nosexpandFilename(result0); } LA8: ; 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)(47)) || ((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)(47)) || ((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_3)); } LA1: ; 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)(47)) || ((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)(47)) || ((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)(47)) || ((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, 47); 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(NIM_BOOL, nosexistsFile)(NimStringDesc* filename0) { NIM_BOOL result0; struct stat res0; NIM_BOOL LOC1; int LOC2; { result0 = (NIM_BOOL)0; memset((void*)(&res0), 0, sizeof(res0)); LOC1 = (NIM_BOOL)0; LOC2 = (int)0; LOC2 = stat(filename0->data, (&res0)); LOC1 = (((NI32) 0) <= LOC2); if (!(LOC1)) goto LA3; LOC1 = S_ISREG(res0.st_mode); LA3: ; result0 = LOC1; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(NIM_BOOL, rawcreatedir_V86QyZrcGMPX0W9bv1Q53ww_2)(NimStringDesc* dir0) { NIM_BOOL result0; int res0; result0 = (NIM_BOOL)0; res0 = mkdir(dir0->data, ((mode_t) 511)); { if (!(res0 == ((NI32) 0))) goto LA3; result0 = NIM_TRUE; } goto LA1; LA3: ; { if (!(errno == EEXIST)) goto LA6; result0 = NIM_FALSE; } goto LA1; LA6: ; { NimStringDesc* LOC9; NI32 LOC10; LOC9 = (NimStringDesc*)0; LOC9 = nimIntToStr(((NI) (res0))); printf("%s\012", LOC9? (LOC9)->data:"nil"); fflush(stdout); LOC10 = (NI32)0; LOC10 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC10, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA1: ; return result0; } N_NIMCALL(NIM_BOOL, nosexistsDir)(NimStringDesc* dir0) { NIM_BOOL result0; struct stat res0; NIM_BOOL LOC1; int LOC2; { result0 = (NIM_BOOL)0; memset((void*)(&res0), 0, sizeof(res0)); LOC1 = (NIM_BOOL)0; LOC2 = (int)0; LOC2 = stat(dir0->data, (&res0)); LOC1 = (((NI32) 0) <= LOC2); if (!(LOC1)) goto LA3; LOC1 = S_ISDIR(res0.st_mode); LA3: ; result0 = LOC1; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(NIM_BOOL, existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww)(NimStringDesc* dir0) { NIM_BOOL result0; NIM_BOOL LOC1; result0 = (NIM_BOOL)0; LOC1 = (NIM_BOOL)0; LOC1 = rawcreatedir_V86QyZrcGMPX0W9bv1Q53ww_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_6)); 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; { 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)(47)) || ((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_V86QyZrcGMPX0W9bv1Q53ww(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)(47)) || ((NU8)(dir0->data[(NI)((dir0 ? dir0->Sup.len : 0) - ((NI) 1))])) == ((NU8)(47)))); LA20: ; if (!LOC17) goto LA21; LOC23 = (NIM_BOOL)0; LOC23 = existsorcreatedir_V86QyZrcGMPX0W9bv1Q53ww(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(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(NIM_BOOL, nosisAbsolute)(NimStringDesc* path0) { NIM_BOOL result0; result0 = (NIM_BOOL)0; result0 = ((NU8)(path0->data[((NI) 0)]) == (NU8)(47)); return result0; } N_NIMCALL(NI, paramcount_T74rCHY8RMV0X07YnKmggw)(void) { NI result0; result0 = (NI)0; result0 = ((NI) ((NI32)(cmdCount - ((NI32) 1)))); return result0; } N_NIMCALL(NimStringDesc*, paramstr_eYicl3uwirn1ppNz7OCowg)(NI i0) { NimStringDesc* result0; Indexerror_b0IIwghFQBADkB2c86kXQA* e_9c9avxASFO8rHZknrsDnVzEA; NimStringDesc* LOC7; { result0 = (NimStringDesc*)0; { NIM_BOOL LOC3; LOC3 = (NIM_BOOL)0; LOC3 = (i0 < ((NI) (cmdCount))); if (!(LOC3)) goto LA4; LOC3 = (((NI) 0) <= i0); LA4: ; if (!LOC3) goto LA5; result0 = cstrToNimstr(cmdLine[(i0)- 0]); goto BeforeRet; } LA5: ; e_9c9avxASFO8rHZknrsDnVzEA = (Indexerror_b0IIwghFQBADkB2c86kXQA*)0; e_9c9avxASFO8rHZknrsDnVzEA = (Indexerror_b0IIwghFQBADkB2c86kXQA*) newObj((&NTI_z58cIdR0vOibqJ0QwYvB3Q), sizeof(Indexerror_b0IIwghFQBADkB2c86kXQA)); (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.Sup.m_type = (&NTI_b0IIwghFQBADkB2c86kXQA); LOC7 = (NimStringDesc*)0; LOC7 = (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.message; (*e_9c9avxASFO8rHZknrsDnVzEA).Sup.message = copyStringRC1(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_7)); if (LOC7) nimGCunrefNoCycle(LOC7); raiseException((Exception*)e_9c9avxASFO8rHZknrsDnVzEA, "IndexError"); }BeforeRet: ; return result0; } N_NIMCALL(NimStringDesc*, nosunixToNativePath)(NimStringDesc* path0, NimStringDesc* drive0) { NimStringDesc* result0; result0 = (NimStringDesc*)0; result0 = copyString(path0); 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(void, getenvvarsc_xlXgIeBHBOL9cl4MJcFJ8xA)(void) { { NCSTRING* genv0; NCSTRING** LOC5; NI i0; if (!!(envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ)) goto LA3; if (environment_mlhK49b6YMgc9cgrcYkKq9a3g) nimGCunrefNoCycle(environment_mlhK49b6YMgc9cgrcYkKq9a3g); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) newSeqRC1((&NTI_sM4lkSb7zS6F7OVMvW9cffQ), 0); LOC5 = (NCSTRING**)0; LOC5 = _NSGetEnviron(); genv0 = (*LOC5); i0 = ((NI) 0); { while (1) { NimStringDesc* LOC13; NimStringDesc* LOC14; { NIM_BOOL LOC10; LOC10 = (NIM_BOOL)0; LOC10 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos(genv0[(i0)- 0], NIM_NIL); if (!LOC10) goto LA11; goto LA6; } LA11: ; LOC13 = (NimStringDesc*)0; LOC13 = cstrToNimstr(genv0[(i0)- 0]); environment_mlhK49b6YMgc9cgrcYkKq9a3g = (TY_sM4lkSb7zS6F7OVMvW9cffQ*) incrSeqV2(&(environment_mlhK49b6YMgc9cgrcYkKq9a3g)->Sup, sizeof(NimStringDesc*)); LOC14 = (NimStringDesc*)0; LOC14 = environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len]; environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len] = copyStringRC1(LOC13); if (LOC14) nimGCunrefNoCycle(LOC14); ++environment_mlhK49b6YMgc9cgrcYkKq9a3g->Sup.len; i0 += ((NI) 1); } } LA6: ; envcomputed_LLyFo9bsdu1ZXMDvAe8DhrQ = NIM_TRUE; } LA3: ; } 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; } 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_3)); 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_8)); LOC1 = rawNewString(LOC2->Sup.len + 1); appendString(LOC1, LOC2); appendString(LOC1, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_9)); result0 = LOC1; goto BeforeRet; }BeforeRet: ; return result0; } N_NIMCALL(Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg, getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg)(NimStringDesc* path0) { Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg result0; struct stat s0; result0 = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0; memset((void*)(&s0), 0, sizeof(s0)); { int LOC3; NI32 LOC6; LOC3 = (int)0; LOC3 = stat(path0->data, (&s0)); if (!(LOC3 < ((NI32) 0))) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA4: ; { NIM_BOOL LOC9; LOC9 = (NIM_BOOL)0; LOC9 = S_ISDIR(s0.st_mode); if (!LOC9) goto LA10; result0 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3); } goto LA7; LA10: ; { result0 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1); } LA7: ; return result0; } N_NIMCALL(NI, noscmpPaths)(NimStringDesc* patha0, NimStringDesc* pathb0) { NI result0; result0 = (NI)0; { if (!NIM_TRUE) 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; 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: ; { int LOC11; NI32 LOC14; LOC11 = (int)0; LOC11 = putenv(environment_mlhK49b6YMgc9cgrcYkKq9a3g->data[indx0]->data); if (!!((LOC11 == ((NI32) 0)))) goto LA12; LOC14 = (NI32)0; LOC14 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC14, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA12: ; } N_NIMCALL(NimStringDesc*, nosgetCurrentDir)(void) { NimStringDesc* result0; NI bufsize0; result0 = (NimStringDesc*)0; bufsize0 = ((NI) 1024); result0 = mnewString(((NI) (bufsize0))); { while (1) { { NCSTRING LOC5; NIM_BOOL LOC6; int LOC9; LOC5 = (NCSTRING)0; LOC5 = getcwd(result0->data, bufsize0); LOC6 = (NIM_BOOL)0; LOC6 = HEX3DHEX3D_9ccNWqrTIE9bcAqE2Q0ro7zgos(LOC5, NIM_NIL); if (!!(LOC6)) goto LA7; LOC9 = (int)0; LOC9 = strlen(result0->data); result0 = setLengthStr(result0, ((NI) (LOC9))); goto LA1; } goto LA3; LA7: ; { NI32 err0; err0 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); { if (!(err0 == ERANGE)) goto LA13; bufsize0 = (NI)((NU32)(bufsize0) << (NU32)(((NI) 1))); { if (!!((((NI) 0) <= bufsize0))) goto LA17; raiseassert_PpfSiTIeNpMAb9a5o6SglJw_2(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_10)); } LA17: ; result0 = mnewString(((NI) (bufsize0))); } goto LA11; LA13: ; { NI32 LOC20; LOC20 = (NI32)0; LOC20 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC20, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA11: ; } LA3: ; } } LA1: ; return result0; } 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; } N_NIMCALL(NIM_BOOL, checksymlink_KkZgXPy74tXi49bh8QSie8g)(NimStringDesc* path0) { NIM_BOOL result0; struct stat rawinfo0; result0 = (NIM_BOOL)0; memset((void*)(&rawinfo0), 0, sizeof(rawinfo0)); { int LOC3; LOC3 = (int)0; LOC3 = lstat(path0->data, (&rawinfo0)); if (!(LOC3 < ((NI32) 0))) goto LA4; result0 = NIM_FALSE; } goto LA1; LA4: ; { result0 = S_ISLNK(rawinfo0.st_mode); } LA1: ; return result0; } N_NIMCALL(NimStringDesc*, findexe_y1iHkrUPbBhlf2IDS9bh3EQ)(NimStringDesc* exe0, NIM_BOOL followsymlinks0, TY_nHXaesL0DJZHyVS07ARPRA 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) 0))) 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) 0) <= ((NI) (i_ZiZQ0BrOOFRx4PwT9ahXHww)))) goto LA15; goto LA6; } LA15: ; i_ZiZQ0BrOOFRx4PwT9ahXHww += ((NI) 1); } } LA6: ; } LA4: ; } path0 = getenv_8zNgT9bxx7m9cTt2TeVdTdIw(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_11)); { 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)(58))); 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; LOC32 = expandtilde_bY3FvgrWj5mj9cB3I89cRWxg(candidate_UCy6ZV9aetVL3IB59cKQ4cGg); 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) 0))) goto LA36; { while (1) { NimStringDesc* x0; ext_OPvsxUJH2BMqmTeWesXT9cQ_2 = extensions0[(i_ZiZQ0BrOOFRx4PwT9ahXHww_2)- 0]; x0 = nosaddFileExt(x_Hlylti1YCPff0zaqS9c7zjg, ext_OPvsxUJH2BMqmTeWesXT9cQ_2); { NIM_BOOL LOC42; LOC42 = (NIM_BOOL)0; LOC42 = nosexistsFile(x0); if (!LOC42) goto LA43; { while (1) { if (!followsymlinks0) goto LA46; { NIM_BOOL LOC49; NimStringDesc* r0; NI len0; LOC49 = (NIM_BOOL)0; LOC49 = checksymlink_KkZgXPy74tXi49bh8QSie8g(x0); if (!LOC49) goto LA50; r0 = mnewString(((NI) 256)); len0 = readlink(x0->data, r0->data, ((NI) 256)); { NI32 LOC56; if (!(len0 < ((NI) 0))) goto LA54; LOC56 = (NI32)0; LOC56 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC56, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA54: ; { if (!(((NI) 256) < len0)) goto LA59; r0 = mnewString(((NI) ((NI)(len0 + ((NI) 1))))); len0 = readlink(x0->data, r0->data, len0); } LA59: ; r0 = setLengthStr(r0, ((NI) (len0))); { NIM_BOOL LOC63; LOC63 = (NIM_BOOL)0; LOC63 = nosisAbsolute(r0); if (!LOC63) goto LA64; x0 = copyString(r0); } goto LA61; LA64: ; { NimStringDesc* LOC67; LOC67 = (NimStringDesc*)0; LOC67 = nosparentDir(x0); x0 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(LOC67, r0); } LA61: ; } goto LA47; LA50: ; { goto LA45; } LA47: ; } LA46: ; } LA45: ; result0 = copyString(x0); goto BeforeRet; } LA43: ; { if (!(((NI) 0) <= ((NI) (i_ZiZQ0BrOOFRx4PwT9ahXHww_2)))) goto LA71; goto LA38; } LA71: ; i_ZiZQ0BrOOFRx4PwT9ahXHww_2 += ((NI) 1); } } LA38: ; } LA36: ; } { if (!(splits_CKAYEyOxVf7nwPkm8GYNOw == ((NI) 0))) goto LA75; goto LA22; } LA75: ; splits_CKAYEyOxVf7nwPkm8GYNOw -= ((NI) 1); last_3fEEWoI2EjAM6VEbXEXPpw += ((NI) 1); } LA23: ; } LA22: ; } LA20: ; } result0 = copyString(((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); }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_8)); LOC1 = rawNewString(LOC2->Sup.len + 9); appendString(LOC1, LOC2); appendString(LOC1, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_12)); 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, equalmem_DCrUjdaMvFDHaR1hs7sQGwropes)(void* a0, void* b0, NI size0) { NIM_BOOL result0; int LOC1; result0 = (NIM_BOOL)0; LOC1 = (int)0; LOC1 = memcmp(a0, b0, ((size_t) (size0))); result0 = (LOC1 == ((NI32) 0)); return result0; } static N_INLINE(NIM_BOOL, eqStrings)(NimStringDesc* a0, NimStringDesc* b0) { NIM_BOOL result0; NIM_BOOL LOC11; { result0 = (NIM_BOOL)0; { if (!(a0 == b0)) goto LA3; result0 = NIM_TRUE; goto BeforeRet; } LA3: ; { NIM_BOOL LOC7; LOC7 = (NIM_BOOL)0; LOC7 = (a0 == NIM_NIL); if (LOC7) goto LA8; LOC7 = (b0 == NIM_NIL); LA8: ; if (!LOC7) goto LA9; result0 = NIM_FALSE; goto BeforeRet; } LA9: ; LOC11 = (NIM_BOOL)0; LOC11 = ((*a0).Sup.len == (*b0).Sup.len); if (!(LOC11)) goto LA12; LOC11 = equalmem_DCrUjdaMvFDHaR1hs7sQGwropes(((void*) ((*a0).data)), ((void*) ((*b0).data)), ((NI) ((*a0).Sup.len))); LA12: ; result0 = LOC11; goto BeforeRet; }BeforeRet: ; return result0; } static N_INLINE(NIM_BOOL, direxists_wf0Ae3eLXw0lSNEFJMV3ognimblecmd)(NimStringDesc* dir0) { NIM_BOOL result0; result0 = (NIM_BOOL)0; result0 = nosexistsDir(dir0); return result0; } N_NIMCALL(void, nosremoveFile)(NimStringDesc* file0) { { NIM_BOOL LOC3; int LOC4; NI32 LOC8; NCSTRING LOC9; NimStringDesc* LOC10; LOC3 = (NIM_BOOL)0; LOC4 = (int)0; LOC4 = remove(file0->data); LOC3 = !((LOC4 == ((NI32) 0))); if (!(LOC3)) goto LA5; LOC3 = !((errno == ENOENT)); LA5: ; if (!LOC3) goto LA6; LOC8 = (NI32)0; LOC8 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); LOC9 = (NCSTRING)0; LOC9 = strerror(errno); LOC10 = (NimStringDesc*)0; LOC10 = cstrToNimstr(LOC9); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC8, LOC10); } LA6: ; } static N_INLINE(void, popSafePoint)(void) { exchandler_rqLlY5bs9atDw2OXYqJEn5g = (*exchandler_rqLlY5bs9atDw2OXYqJEn5g).prev; } N_NIMCALL(void, rawremovedir_P9aOuM3pg25yKqgBUm7qKng)(NimStringDesc* dir0) { { NIM_BOOL LOC3; int LOC4; NI32 LOC8; LOC3 = (NIM_BOOL)0; LOC4 = (int)0; LOC4 = rmdir(dir0->data); LOC3 = !((LOC4 == ((NI32) 0))); if (!(LOC3)) goto LA5; LOC3 = !((errno == ENOENT)); LA5: ; if (!LOC3) goto LA6; LOC8 = (NI32)0; LOC8 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC8, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA6: ; } N_NIMCALL(void, nosremoveDir)(NimStringDesc* dir0) { { Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg kind_CgYWYOGBi9cm9cxet9aP24amQ; NimStringDesc* path_PjxD5WVfFUdiLYTKKL9acYg; DIR* d_Snew50d2sxhgjxplaladWA; kind_CgYWYOGBi9cm9cxet9aP24amQ = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0; path_PjxD5WVfFUdiLYTKKL9acYg = (NimStringDesc*)0; d_Snew50d2sxhgjxplaladWA = opendir(dir0->data); { TSafePoint T_yu6cxgKBBXbNsTkT9cyMd4g_13; if (!!((d_Snew50d2sxhgjxplaladWA == NIM_NIL))) goto LA4; pushSafePoint(&T_yu6cxgKBBXbNsTkT9cyMd4g_13); T_yu6cxgKBBXbNsTkT9cyMd4g_13.status = _setjmp(T_yu6cxgKBBXbNsTkT9cyMd4g_13.context); if (T_yu6cxgKBBXbNsTkT9cyMd4g_13.status == 0) { { while (1) { { struct dirent* x_aQYTEBuHrMi9cGfwwrddjfg; NimStringDesc* volatile y_nqt04gTLPSvk7lCmOg2cqg; x_aQYTEBuHrMi9cGfwwrddjfg = readdir(d_Snew50d2sxhgjxplaladWA); { if (!(x_aQYTEBuHrMi9cGfwwrddjfg == NIM_NIL)) goto LA12; goto LA7; } LA12: ; y_nqt04gTLPSvk7lCmOg2cqg = cstrToNimstr(((NCSTRING) ((*x_aQYTEBuHrMi9cGfwwrddjfg).d_name))); { NIM_BOOL LOC16; struct stat s_9bKnK2sM9am7zFpvRgFLncWA; Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg volatile k_3L6up3asmYrsS0W9b26IJmg; LOC16 = (NIM_BOOL)0; LOC16 = !(eqStrings(y_nqt04gTLPSvk7lCmOg2cqg, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_14))); if (!(LOC16)) goto LA17; LOC16 = !(eqStrings(y_nqt04gTLPSvk7lCmOg2cqg, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_15))); LA17: ; if (!LOC16) goto LA18; memset((void*)(&s_9bKnK2sM9am7zFpvRgFLncWA), 0, sizeof(s_9bKnK2sM9am7zFpvRgFLncWA)); { if (!NIM_TRUE) goto LA22; y_nqt04gTLPSvk7lCmOg2cqg = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, y_nqt04gTLPSvk7lCmOg2cqg); } LA22: ; k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0); { if (!!(((*x_aQYTEBuHrMi9cGfwwrddjfg).d_type == ((NI8) 0)))) goto LA26; { if (!((*x_aQYTEBuHrMi9cGfwwrddjfg).d_type == ((NI8) 4))) goto LA30; k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2); } LA30: ; { if (!((*x_aQYTEBuHrMi9cGfwwrddjfg).d_type == ((NI8) 10))) goto LA34; { NIM_BOOL LOC38; LOC38 = (NIM_BOOL)0; LOC38 = direxists_wf0Ae3eLXw0lSNEFJMV3ognimblecmd(y_nqt04gTLPSvk7lCmOg2cqg); if (!LOC38) goto LA39; k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3); } goto LA36; LA39: ; { k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1); } LA36: ; } LA34: ; kind_CgYWYOGBi9cm9cxet9aP24amQ = k_3L6up3asmYrsS0W9b26IJmg; path_PjxD5WVfFUdiLYTKKL9acYg = y_nqt04gTLPSvk7lCmOg2cqg; 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; } goto LA9; } LA26: ; { int LOC46; LOC46 = (int)0; LOC46 = lstat(y_nqt04gTLPSvk7lCmOg2cqg->data, (&s_9bKnK2sM9am7zFpvRgFLncWA)); if (!(LOC46 < ((NI32) 0))) goto LA47; goto LA7; } LA47: ; { NIM_BOOL LOC51; LOC51 = (NIM_BOOL)0; LOC51 = S_ISDIR(s_9bKnK2sM9am7zFpvRgFLncWA.st_mode); if (!LOC51) goto LA52; k_3L6up3asmYrsS0W9b26IJmg = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2); } goto LA49; LA52: ; { NIM_BOOL LOC55; LOC55 = (NIM_BOOL)0; LOC55 = S_ISLNK(s_9bKnK2sM9am7zFpvRgFLncWA.st_mode); if (!LOC55) goto LA56; k_3L6up3asmYrsS0W9b26IJmg = getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg(y_nqt04gTLPSvk7lCmOg2cqg); } goto LA49; LA56: ; LA49: ; kind_CgYWYOGBi9cm9cxet9aP24amQ = k_3L6up3asmYrsS0W9b26IJmg; path_PjxD5WVfFUdiLYTKKL9acYg = y_nqt04gTLPSvk7lCmOg2cqg; 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; } } LA18: ; } LA9: ; } } LA7: ; popSafePoint(); } else { popSafePoint(); } { int LOC62; LOC62 = (int)0; LOC62 = closedir(d_Snew50d2sxhgjxplaladWA); } if (T_yu6cxgKBBXbNsTkT9cyMd4g_13.status != 0) reraiseException(); } LA4: ; } rawremovedir_P9aOuM3pg25yKqgBUm7qKng(dir0); } N_NIMCALL(void, nosmoveFile)(NimStringDesc* source0, NimStringDesc* dest0) { { int LOC3; NI32 LOC6; NCSTRING LOC7; NimStringDesc* LOC8; LOC3 = (int)0; LOC3 = rename(source0->data, dest0->data); if (!!((LOC3 == ((NI32) 0)))) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); LOC7 = (NCSTRING)0; LOC7 = strerror(errno); LOC8 = (NimStringDesc*)0; LOC8 = cstrToNimstr(LOC7); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, LOC8); } LA4: ; } N_NIMCALL(void, noscopyFile)(NimStringDesc* source0, NimStringDesc* dest0) { FILE* d0; FILE* s0; void* buf0; d0 = (FILE*)0; s0 = (FILE*)0; { NIM_BOOL LOC3; NI32 LOC6; LOC3 = (NIM_BOOL)0; LOC3 = open_sEp0GH2306oGo9bqBpj5oTQ(&s0, source0, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 0), ((NI) -1)); if (!!(LOC3)) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA4: ; { NIM_BOOL LOC9; NI32 LOC12; LOC9 = (NIM_BOOL)0; LOC9 = open_sEp0GH2306oGo9bqBpj5oTQ(&d0, dest0, ((Filemode_fVUBHvW79bXUw1j55Oo9avSQ) 1), ((NI) -1)); if (!!(LOC9)) goto LA10; close_BWnr8V7RERYno9bIdPmw8Hw_2(s0); LOC12 = (NI32)0; LOC12 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC12, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA10: ; buf0 = alloc_4cubgSerkjpuLcj5MXjiLw_2(((NI) 8000)); { while (1) { NI bytesread0; bytesread0 = readbuffer_nZ0pNe9cd9cXtoayexCiaDtA_2(s0, buf0, ((NI) 8000)); { NI byteswritten0; if (!(((NI) 0) < bytesread0)) goto LA17; byteswritten0 = writebuffer_nZ0pNe9cd9cXtoayexCiaDtA(d0, buf0, ((NI) (bytesread0))); { NI32 LOC23; if (!!((bytesread0 == byteswritten0))) goto LA21; dealloc_RCjNtRnHdRYntrcE7YtwWw(buf0); close_BWnr8V7RERYno9bIdPmw8Hw_2(s0); close_BWnr8V7RERYno9bIdPmw8Hw_2(d0); LOC23 = (NI32)0; LOC23 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC23, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA21: ; } LA17: ; { if (!!((bytesread0 == ((NI) 8000)))) goto LA26; goto LA13; } LA26: ; } } LA13: ; dealloc_RCjNtRnHdRYntrcE7YtwWw(buf0); close_BWnr8V7RERYno9bIdPmw8Hw_2(s0); flushfile_BWnr8V7RERYno9bIdPmw8Hw(d0); close_BWnr8V7RERYno9bIdPmw8Hw_2(d0); } N_NIMCALL(time_t, nosgetLastModificationTime)(NimStringDesc* file0) { time_t result0; struct stat res0; { result0 = (time_t)0; memset((void*)(&res0), 0, sizeof(res0)); { int LOC3; NI32 LOC6; LOC3 = (int)0; LOC3 = stat(file0->data, (&res0)); if (!(LOC3 < ((NI32) 0))) goto LA4; LOC6 = (NI32)0; LOC6 = oslasterror_pMOMIZAQaKFp1XoL58mjVg(); raiseoserror_K9a7YBjj81Bse0N0Fg7MFIA(LOC6, ((NimStringDesc*) &T_yu6cxgKBBXbNsTkT9cyMd4g_3)); } LA4: ; result0 = res0.st_mtime; goto BeforeRet; }BeforeRet: ; 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) { struct timespec a0; struct timespec b0; int LOC1; memset((void*)(&a0), 0, sizeof(a0)); memset((void*)(&b0), 0, sizeof(b0)); a0.tv_sec = (NI)(milsecs0 / ((NI) 1000)); a0.tv_nsec = ((NI) ((NI)(((NI) ((NI)(((NI) ((NI)(milsecs0 % ((NI) 1000)))) * ((NI) 1000)))) * ((NI) 1000)))); LOC1 = (int)0; LOC1 = nanosleep((&a0), (&b0)); } NIM_EXTERNC N_NOINLINE(void, stdlib_osInit000)(void) { nimRegisterGlobalMarker(T_yu6cxgKBBXbNsTkT9cyMd4g_2); } 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; }