Example #1
0
N_NIMCALL(void, addpathrec_3JEODh79bt1SXwL9cUHI7lhw)(NimStringDesc* dir0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* packages0;
	NI pos0;
	packages0 = nstnewStringTable(((Stringtablemode_G9c4wVDFIzf0xHmQvxso9a9cQ) 2));
	pos0 = (NI)((dir0 ? dir0->Sup.len : 0) - ((NI) 1));
	{
		if (!(((NU8)(dir0->data[pos0])) == ((NU8)(47)) || ((NU8)(dir0->data[pos0])) == ((NU8)(47)))) goto LA3;
		pos0 += ((NI) 1);
	}
	LA3: ;
	{
		Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg k_KeWeZHiyBnWbJ7NUxRxrzQ;
		NimStringDesc* p_dm2MlSSgl6QuA4g3oqnzug;
		DIR* d_ZfFno5oDVOm9aHJ009cmNoGQ;
		k_KeWeZHiyBnWbJ7NUxRxrzQ = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0;
		p_dm2MlSSgl6QuA4g3oqnzug = (NimStringDesc*)0;
		d_ZfFno5oDVOm9aHJ009cmNoGQ = opendir(dir0->data);
		{
			TSafePoint T_asNQM9aynXXg9ccUABbReyew_2;
			if (!!((d_ZfFno5oDVOm9aHJ009cmNoGQ == NIM_NIL))) goto LA8;
			pushSafePoint(&T_asNQM9aynXXg9ccUABbReyew_2);
			T_asNQM9aynXXg9ccUABbReyew_2.status = setjmp(T_asNQM9aynXXg9ccUABbReyew_2.context);
			if (T_asNQM9aynXXg9ccUABbReyew_2.status == 0) {
				{
					while (1) {
						{
							struct dirent* x_rBzPa0W2aCO6C2N57Y0ovQ;
							NimStringDesc* volatile y_KzqyWmE69cwQ0l9c9bXwsjU9cw;
							x_rBzPa0W2aCO6C2N57Y0ovQ = readdir(d_ZfFno5oDVOm9aHJ009cmNoGQ);
							{
								if (!(x_rBzPa0W2aCO6C2N57Y0ovQ == NIM_NIL)) goto LA16;
								goto LA11;
							}
							LA16: ;
							y_KzqyWmE69cwQ0l9c9bXwsjU9cw = cstrToNimstr(((NCSTRING) ((*x_rBzPa0W2aCO6C2N57Y0ovQ).d_name)));
							{
								NIM_BOOL LOC20;
								struct stat s_k2PyMBHM0O7gW5niqUdMGA;
								Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg volatile k_KeWeZHiyBnWbJ7NUxRxrzQ_2;
								LOC20 = (NIM_BOOL)0;
								LOC20 = !(eqStrings(y_KzqyWmE69cwQ0l9c9bXwsjU9cw, ((NimStringDesc*) &T_asNQM9aynXXg9ccUABbReyew_3)));
								if (!(LOC20)) goto LA21;
								LOC20 = !(eqStrings(y_KzqyWmE69cwQ0l9c9bXwsjU9cw, ((NimStringDesc*) &T_asNQM9aynXXg9ccUABbReyew_4)));
								LA21: ;
								if (!LOC20) goto LA22;
								memset((void*)(&s_k2PyMBHM0O7gW5niqUdMGA), 0, sizeof(s_k2PyMBHM0O7gW5niqUdMGA));
								{
									if (!NIM_TRUE) goto LA26;
									y_KzqyWmE69cwQ0l9c9bXwsjU9cw = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, y_KzqyWmE69cwQ0l9c9bXwsjU9cw);
								}
								LA26: ;
								k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0);
								{
									if (!!(((*x_rBzPa0W2aCO6C2N57Y0ovQ).d_type == ((NI8) 0)))) goto LA30;
									{
										if (!((*x_rBzPa0W2aCO6C2N57Y0ovQ).d_type == ((NI8) 4))) goto LA34;
										k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2);
									}
									LA34: ;
									{
										if (!((*x_rBzPa0W2aCO6C2N57Y0ovQ).d_type == ((NI8) 10))) goto LA38;
										{
											NIM_BOOL LOC42;
											LOC42 = (NIM_BOOL)0;
											LOC42 = direxists_wf0Ae3eLXw0lSNEFJMV3ognimblecmd(y_KzqyWmE69cwQ0l9c9bXwsjU9cw);
											if (!LOC42) goto LA43;
											k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 3);
										}
										goto LA40;
										LA43: ;
										{
											k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 1);
										}
										LA40: ;
									}
									LA38: ;
									k_KeWeZHiyBnWbJ7NUxRxrzQ = k_KeWeZHiyBnWbJ7NUxRxrzQ_2;
									p_dm2MlSSgl6QuA4g3oqnzug = y_KzqyWmE69cwQ0l9c9bXwsjU9cw;
									{
										NIM_BOOL LOC48;
										LOC48 = (NIM_BOOL)0;
										LOC48 = (k_KeWeZHiyBnWbJ7NUxRxrzQ == ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2));
										if (!(LOC48)) goto LA49;
										LOC48 = !(((NU8)(p_dm2MlSSgl6QuA4g3oqnzug->data[pos0]) == (NU8)(46)));
										LA49: ;
										if (!LOC48) goto LA50;
										addpackage_mPfTsfux8gBVeyQ8xwDYTQ(packages0, p_dm2MlSSgl6QuA4g3oqnzug);
									}
									LA50: ;
									goto LA13;
								}
								LA30: ;
								{
									int LOC54;
									LOC54 = (int)0;
									LOC54 = lstat(y_KzqyWmE69cwQ0l9c9bXwsjU9cw->data, (&s_k2PyMBHM0O7gW5niqUdMGA));
									if (!(LOC54 < ((NI32) 0))) goto LA55;
									goto LA11;
								}
								LA55: ;
								{
									NIM_BOOL LOC59;
									LOC59 = (NIM_BOOL)0;
									LOC59 = S_ISDIR(s_k2PyMBHM0O7gW5niqUdMGA.st_mode);
									if (!LOC59) goto LA60;
									k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2);
								}
								goto LA57;
								LA60: ;
								{
									NIM_BOOL LOC63;
									LOC63 = (NIM_BOOL)0;
									LOC63 = S_ISLNK(s_k2PyMBHM0O7gW5niqUdMGA.st_mode);
									if (!LOC63) goto LA64;
									k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = getsymlinkfilekind_WoXOp8qmMec1P4MyA3LBKg(y_KzqyWmE69cwQ0l9c9bXwsjU9cw);
								}
								goto LA57;
								LA64: ;
								LA57: ;
								k_KeWeZHiyBnWbJ7NUxRxrzQ = k_KeWeZHiyBnWbJ7NUxRxrzQ_2;
								p_dm2MlSSgl6QuA4g3oqnzug = y_KzqyWmE69cwQ0l9c9bXwsjU9cw;
								{
									NIM_BOOL LOC68;
									LOC68 = (NIM_BOOL)0;
									LOC68 = (k_KeWeZHiyBnWbJ7NUxRxrzQ == ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2));
									if (!(LOC68)) goto LA69;
									LOC68 = !(((NU8)(p_dm2MlSSgl6QuA4g3oqnzug->data[pos0]) == (NU8)(46)));
									LA69: ;
									if (!LOC68) goto LA70;
									addpackage_mPfTsfux8gBVeyQ8xwDYTQ(packages0, p_dm2MlSSgl6QuA4g3oqnzug);
								}
								LA70: ;
							}
							LA22: ;
						} LA13: ;
					}
				} LA11: ;
				popSafePoint();
			}
			else {
				popSafePoint();
			}
			{
				int LOC74;
				LOC74 = (int)0;
				LOC74 = closedir(d_ZfFno5oDVOm9aHJ009cmNoGQ);
			}
			if (T_asNQM9aynXXg9ccUABbReyew_2.status != 0) reraiseException();
		}
		LA8: ;
	}
	{
		NimStringDesc* p_dm2MlSSgl6QuA4g3oqnzug_2;
		p_dm2MlSSgl6QuA4g3oqnzug_2 = (NimStringDesc*)0;
		{
			NimStringDesc* key_Ev9apnmbO2PJJuXUQfg55Zg;
			NimStringDesc* val_ybgqP7AeGJc5RfjZOOmLIA;
			key_Ev9apnmbO2PJJuXUQfg55Zg = (NimStringDesc*)0;
			val_ybgqP7AeGJc5RfjZOOmLIA = (NimStringDesc*)0;
			{
				NI h_0lk9afqbBF9cAQtskh16RYmQ;
				NI HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g;
				NI res_yPiyJP1ZM9abouUrPkQkp8Q;
				h_0lk9afqbBF9cAQtskh16RYmQ = (NI)0;
				HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g = (NI)0;
				HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g = ((*packages0).data ? ((*packages0).data->Sup.len-1) : -1);
				res_yPiyJP1ZM9abouUrPkQkp8Q = ((NI) 0);
				{
					while (1) {
						if (!(res_yPiyJP1ZM9abouUrPkQkp8Q <= HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g)) goto LA79;
						h_0lk9afqbBF9cAQtskh16RYmQ = res_yPiyJP1ZM9abouUrPkQkp8Q;
						{
							NimStringDesc* res_yPiyJP1ZM9abouUrPkQkp8Q_2;
							if (!!(((*packages0).data->data[h_0lk9afqbBF9cAQtskh16RYmQ].Field0 == 0))) goto LA82;
							key_Ev9apnmbO2PJJuXUQfg55Zg = (*packages0).data->data[h_0lk9afqbBF9cAQtskh16RYmQ].Field0;
							val_ybgqP7AeGJc5RfjZOOmLIA = (*packages0).data->data[h_0lk9afqbBF9cAQtskh16RYmQ].Field1;
							{
								if (!eqStrings(val_ybgqP7AeGJc5RfjZOOmLIA, ((NimStringDesc*) &T_asNQM9aynXXg9ccUABbReyew_5))) goto LA86;
								res_yPiyJP1ZM9abouUrPkQkp8Q_2 = key_Ev9apnmbO2PJJuXUQfg55Zg;
							}
							goto LA84;
							LA86: ;
							{
								NimStringDesc* LOC89;
								LOC89 = (NimStringDesc*)0;
								LOC89 = rawNewString(key_Ev9apnmbO2PJJuXUQfg55Zg->Sup.len + val_ybgqP7AeGJc5RfjZOOmLIA->Sup.len + 1);
appendString(LOC89, key_Ev9apnmbO2PJJuXUQfg55Zg);
appendChar(LOC89, 45);
appendString(LOC89, val_ybgqP7AeGJc5RfjZOOmLIA);
								res_yPiyJP1ZM9abouUrPkQkp8Q_2 = LOC89;
							}
							LA84: ;
							p_dm2MlSSgl6QuA4g3oqnzug_2 = res_yPiyJP1ZM9abouUrPkQkp8Q_2;
							addnimblepath_Io0tiMEKgDlbf67BdbC9cWw(p_dm2MlSSgl6QuA4g3oqnzug_2, info0);
						}
						LA82: ;
						res_yPiyJP1ZM9abouUrPkQkp8Q += ((NI) 1);
					} LA79: ;
				}
			}
		}
	}
}
Example #2
0
N_NIMCALL(void, addpathrec_3JEODh79bt1SXwL9cUHI7lhw)(NimStringDesc* dir0, Tlineinfo_T9c3PM9bs7WZ4LIQfEici9cZw info0) {
	Stringtableobj_DKRIdH9c9cKI7YpQb9c0wKlEw* packages0;
	NI pos0;
	packages0 = nstnewStringTable(((Stringtablemode_G9c4wVDFIzf0xHmQvxso9a9cQ) 2));
	pos0 = (NI)((dir0 ? dir0->Sup.len : 0) - ((NI) 1));
	{
		if (!(((NU8)(dir0->data[pos0])) == ((NU8)(92)) || ((NU8)(dir0->data[pos0])) == ((NU8)(47)))) goto LA3;
		pos0 += ((NI) 1);
	}
	LA3: ;
	{
		Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg k_KeWeZHiyBnWbJ7NUxRxrzQ;
		NimStringDesc* p_dm2MlSSgl6QuA4g3oqnzug;
		Win32finddata_aYwmSz9bIz0JHAL9ciwIrnhA f_yneQFFyrNSt4aVInhReW9aA;
		NI h_0lk9afqbBF9cAQtskh16RYmQ;
		NimStringDesc* LOC6;
		k_KeWeZHiyBnWbJ7NUxRxrzQ = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)0;
		p_dm2MlSSgl6QuA4g3oqnzug = (NimStringDesc*)0;
		memset((void*)(&f_yneQFFyrNSt4aVInhReW9aA), 0, sizeof(f_yneQFFyrNSt4aVInhReW9aA));
		LOC6 = (NimStringDesc*)0;
		LOC6 = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, ((NimStringDesc*) &T_asNQM9aynXXg9ccUABbReyew_2));
		h_0lk9afqbBF9cAQtskh16RYmQ = findfirstfile_9cPKjuaUWDYlrzWunhDgNng(LOC6, (&f_yneQFFyrNSt4aVInhReW9aA));
		{
			TSafePoint T_asNQM9aynXXg9ccUABbReyew_3;
			if (!!((h_0lk9afqbBF9cAQtskh16RYmQ == ((NI) -1)))) goto LA9;
			pushSafePoint(&T_asNQM9aynXXg9ccUABbReyew_3);
			T_asNQM9aynXXg9ccUABbReyew_3.status = setjmp(T_asNQM9aynXXg9ccUABbReyew_3.context);
			if (T_asNQM9aynXXg9ccUABbReyew_3.status == 0) {
				{
					while (1) {
						Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg volatile k_KeWeZHiyBnWbJ7NUxRxrzQ_2;
						k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 0);
						{
							NIM_BOOL LOC16;
							NimStringDesc* xx_D6S9bE74YCnbt3gCAKHz9cNA;
							LOC16 = (NIM_BOOL)0;
							LOC16 = skipfinddata_Paqclu9aSY8chOSEIvA5ZoAoptions((&f_yneQFFyrNSt4aVInhReW9aA));
							if (!!(LOC16)) goto LA17;
							{
								if (!!(((NI32)(f_yneQFFyrNSt4aVInhReW9aA.dwfileattributes & ((NI32) 16)) == ((NI32) 0)))) goto LA21;
								k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2);
							}
							LA21: ;
							{
								if (!!(((NI32)(f_yneQFFyrNSt4aVInhReW9aA.dwfileattributes & ((NI32) 1024)) == ((NI32) 0)))) goto LA25;
								k_KeWeZHiyBnWbJ7NUxRxrzQ_2 = (Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg)(k_KeWeZHiyBnWbJ7NUxRxrzQ_2 + ((NI) 1));
							}
							LA25: ;
							{
								NimStringDesc* LOC31;
								if (!NIM_FALSE) goto LA29;
								LOC31 = (NimStringDesc*)0;
								LOC31 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(((NI16*) ((&f_yneQFFyrNSt4aVInhReW9aA.cfilename[(((NI) 0))- 0]))));
								xx_D6S9bE74YCnbt3gCAKHz9cNA = nosextractFilename(LOC31);
							}
							goto LA27;
							LA29: ;
							{
								NimStringDesc* LOC33;
								NimStringDesc* LOC34;
								LOC33 = (NimStringDesc*)0;
								LOC33 = HEX24_QjWkJEdnPpNzR7KF7dYIoQ(((NI16*) ((&f_yneQFFyrNSt4aVInhReW9aA.cfilename[(((NI) 0))- 0]))));
								LOC34 = (NimStringDesc*)0;
								LOC34 = nosextractFilename(LOC33);
								xx_D6S9bE74YCnbt3gCAKHz9cNA = HEX2F_BsTQv9c9anbxt9bKmR0aN1elQ(dir0, LOC34);
							}
							LA27: ;
							k_KeWeZHiyBnWbJ7NUxRxrzQ = k_KeWeZHiyBnWbJ7NUxRxrzQ_2;
							p_dm2MlSSgl6QuA4g3oqnzug = xx_D6S9bE74YCnbt3gCAKHz9cNA;
							{
								NIM_BOOL LOC37;
								LOC37 = (NIM_BOOL)0;
								LOC37 = (k_KeWeZHiyBnWbJ7NUxRxrzQ == ((Pathcomponent_9c1SIU9cO1wHcl09b703A9cDrg) 2));
								if (!(LOC37)) goto LA38;
								LOC37 = !(((NU8)(p_dm2MlSSgl6QuA4g3oqnzug->data[pos0]) == (NU8)(46)));
								LA38: ;
								if (!LOC37) goto LA39;
								addpackage_mPfTsfux8gBVeyQ8xwDYTQ(packages0, p_dm2MlSSgl6QuA4g3oqnzug);
							}
							LA39: ;
						}
						LA17: ;
						{
							NI32 LOC43;
							LOC43 = (NI32)0;
							LOC43 = Dl_120437(h_0lk9afqbBF9cAQtskh16RYmQ, (&f_yneQFFyrNSt4aVInhReW9aA));
							if (!(LOC43 == ((NI32) 0))) goto LA44;
							goto LA12;
						}
						LA44: ;
					}
				} LA12: ;
				popSafePoint();
			}
			else {
				popSafePoint();
			}
			{
				Dl_120601(h_0lk9afqbBF9cAQtskh16RYmQ);
			}
			if (T_asNQM9aynXXg9ccUABbReyew_3.status != 0) reraiseException();
		}
		LA9: ;
	}
	{
		NimStringDesc* p_dm2MlSSgl6QuA4g3oqnzug_2;
		p_dm2MlSSgl6QuA4g3oqnzug_2 = (NimStringDesc*)0;
		{
			NimStringDesc* key_Ev9apnmbO2PJJuXUQfg55Zg;
			NimStringDesc* val_ybgqP7AeGJc5RfjZOOmLIA;
			key_Ev9apnmbO2PJJuXUQfg55Zg = (NimStringDesc*)0;
			val_ybgqP7AeGJc5RfjZOOmLIA = (NimStringDesc*)0;
			{
				NI h_0lk9afqbBF9cAQtskh16RYmQ_2;
				NI HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g;
				NI res_yPiyJP1ZM9abouUrPkQkp8Q;
				h_0lk9afqbBF9cAQtskh16RYmQ_2 = (NI)0;
				HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g = (NI)0;
				HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g = ((*packages0).data ? ((*packages0).data->Sup.len-1) : -1);
				res_yPiyJP1ZM9abouUrPkQkp8Q = ((NI) 0);
				{
					while (1) {
						if (!(res_yPiyJP1ZM9abouUrPkQkp8Q <= HEX3Atmp_xBs1KTOTJ0azvpgP9bD601g)) goto LA52;
						h_0lk9afqbBF9cAQtskh16RYmQ_2 = res_yPiyJP1ZM9abouUrPkQkp8Q;
						{
							NimStringDesc* res_yPiyJP1ZM9abouUrPkQkp8Q_2;
							if (!!(((*packages0).data->data[h_0lk9afqbBF9cAQtskh16RYmQ_2].Field0 == 0))) goto LA55;
							key_Ev9apnmbO2PJJuXUQfg55Zg = (*packages0).data->data[h_0lk9afqbBF9cAQtskh16RYmQ_2].Field0;
							val_ybgqP7AeGJc5RfjZOOmLIA = (*packages0).data->data[h_0lk9afqbBF9cAQtskh16RYmQ_2].Field1;
							{
								if (!eqStrings(val_ybgqP7AeGJc5RfjZOOmLIA, ((NimStringDesc*) &T_asNQM9aynXXg9ccUABbReyew_4))) goto LA59;
								res_yPiyJP1ZM9abouUrPkQkp8Q_2 = key_Ev9apnmbO2PJJuXUQfg55Zg;
							}
							goto LA57;
							LA59: ;
							{
								NimStringDesc* LOC62;
								LOC62 = (NimStringDesc*)0;
								LOC62 = rawNewString(key_Ev9apnmbO2PJJuXUQfg55Zg->Sup.len + val_ybgqP7AeGJc5RfjZOOmLIA->Sup.len + 1);
appendString(LOC62, key_Ev9apnmbO2PJJuXUQfg55Zg);
appendChar(LOC62, 45);
appendString(LOC62, val_ybgqP7AeGJc5RfjZOOmLIA);
								res_yPiyJP1ZM9abouUrPkQkp8Q_2 = LOC62;
							}
							LA57: ;
							p_dm2MlSSgl6QuA4g3oqnzug_2 = res_yPiyJP1ZM9abouUrPkQkp8Q_2;
							addnimblepath_Io0tiMEKgDlbf67BdbC9cWw(p_dm2MlSSgl6QuA4g3oqnzug_2, info0);
						}
						LA55: ;
						res_yPiyJP1ZM9abouUrPkQkp8Q += ((NI) 1);
					} LA52: ;
				}
			}
		}
	}
}