From a9da6ecfee53b02b1788d92071650ab7c24ef52b Mon Sep 17 00:00:00 2001 From: vx-clutch Date: Mon, 28 Jul 2025 12:31:40 -0400 Subject: [PATCH] save --- c-out/bin/yait | Bin 0 -> 31024 bytes c-out/obj/main.o | Bin 0 -> 20592 bytes c-out/obj/yait.o | Bin 0 -> 20592 bytes config.mak | 4 + yait/debug.h | 35 ++++++++ yait/main.c | 225 +++++++++++++++++++---------------------------- 6 files changed, 131 insertions(+), 133 deletions(-) create mode 100755 c-out/bin/yait create mode 100644 c-out/obj/main.o create mode 100644 c-out/obj/yait.o create mode 100644 config.mak create mode 100644 yait/debug.h diff --git a/c-out/bin/yait b/c-out/bin/yait new file mode 100755 index 0000000000000000000000000000000000000000..be4c4bfe2f9035d628b5bc8b42992c50d9f9e23c GIT binary patch literal 31024 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 literal 0 HcmV?d00001 diff --git a/c-out/obj/main.o b/c-out/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..0a906d9d6016138a3a27449662191c75c616eefc GIT binary patch literal 20592 zcmd6O4RBl6b><`WW97*P6+3a1q>ipBPzGfJBq-UDCD9=WfCOytCj=;2l@u5R9!NwW z00R$_=-7#8XnBH_m1wq2-QCR2D(&pnZJJ$Y(`21&XT!$vPbbZ+>)lM<@pkGaoy3lu zHb2{p+9cI}=l%ePPh?#0PG@>Y#Jlgi=bn4+Ip_YJclEJ&YP`Fv%QC6Uy4&i!8Pu|B z_jdB5GCOL$!@9}(NzeQK;oQ}pbAJMCE^%RmiV_!s^mt9>CG^Ylt-tvywHaPbT)071 zdM7&s-#ak<48BeAzEn zezD1|Dq)kYpF@z_jJP+p+c)xF&*hyw_t!m-eggum{GzMp(ND=tx0^rr1L7d<8(vj? zdYV*qGI9dqDg7J|uhOd#N>L|UoBg_mw)j_?sF%2K2Y!vFCBwDs4e>|b3h~*Eh?Rjq zyneBfpY)f0aRc=}wVvOHCbD9>n=aGV$ z{)9hZd?0adwdc`aCq=cM?fDXZzyIi}`##z43yFXK$lt&F%$Akc#K*gPzBJaASovDl zqpQvDwFU1@UFbtq>+%gfyGA>DO0~WxC8O~`T~C~s#!t3h53kN8TdyTrucI9^rKIQP zR6ka}K9p$vt<1w5%C)!$N(a3B-L^j~|Ch>bOC*fxwihq1Yd0;6*ZE{SvT3Q@=1t5_ z#-9IA`aTkwi)5sXDU8ztsq?OXG^Kl~nmP;5NLi`Yk5aAgH`D9N*Y4h}rhC`-?CR*- z*iz}+_*dj)tk zc5h#~vdO)9DUxl^+vlY>!JKk+F$#Y|x)&Rf z(tj}u&>H5Bx3b7u;Q{(eyzOj9UFP^<@dIp zN0$`267t$95|d2iq_NwEoc>h#%SPpTH0vp))5z;T{l}|Up|_3dy?*P}t5?y(Onq70 zwwx=uA{bnB%C*}>v04{P)w&}}6=aukZmC)c*&vl^u8~`C4hmW0`1DLBIX!hU6bgys zGqcn8#G{#$A}|%1jQ1P*Xx+)VPDA8GRMhI#4?B5RoGH1BqFO6ez!`-FQE-a6X4!3o zEbHi^QxVlld08x!P9y6sI-*#rH(ZgcFEp2&iYp-NnNqooS}t*0t~TqUl3Q}5kdwJe zA?H@nD?{H9ZdH`4l?60OeSs|K+)|s4`rBBn*4=iwTdi7Y#}(yL-l;Sk5m=~|2gFjz z9T4-4Lcch!3q+%t&pVCAfC!6HQF{BJapb!5K-0k(D+~zeuu>&*WU6&A8MGm#992%%s35E7 zfWYZ$sUQM-rTDUU{ek`g*iX(g`2mq%%+%lKp~bs9lmwMa^IohDyAwvT+cYCwE4x@De7^{QbVJ$g zkJv&^=|m+;Vnl=w;c=Lzo%|tj`|Twd8;Qs$LBWBBThA}mM1VSfymWFv^ePYO?H3~> zVn|gWVpECo$`JxX&=$R_M01e{#P3UHvgx^KG@eeg;)gY%Q-+Uj)UG!4FKxO8rMZy1 zx37V5EBXp2D$#0fxn5dWMC;LhAizT>Dt(O;l?=_8_*bkuG~|meW)@n|s!h2rNSJ1$ zMNA(U-WV-)2k!0GOY=>P_mT@fnMH@z$A*}i7Dpqqvs0O412l!vILAami&V|2W5J-s zZGIW+!5P%*9S~R~CuSp)1L8=0HjSloKt!h}CzF{0aV#F09T1VZOk#RAJs?uaXnZOi z$5e}v%5)~=^!_F)CB^FTlZdBgva|6I&c)N2ci^BXwEw8*_*J?PIAKi zCoFS{)x&atVHZ%U$X?NCSUc!t2iG5f0jZ4vIfUddO%Vdy8*)SP!h<5=l*?5(-K|D) zGoKj~tfPN9T}g>ZsW_^fGPmL!h*y_**ur`R9dX?4`%y;cA9?h3#CDCpw z&=t&WdU;vnl52~!+pYz*i;Lb`-3jK(wZ&YA7kRrF9vZ#_GplC5)>E-xFa`11+3DHr zWPEaZ_Emf_T*P4$ z0`_&MO9k5W(9VM9jA9kua)wrXtQ`fc{q0?<;~uo_a7e5bsX-e`wp|fRO>B_iVsK~4 zFgIU4O*Pn;A%WTx zIW&w;?F(Tyio*zMQ7IiFNGp`@=x(uE#_T34XuuFj{g+&+N~ln+4b^%BZ7+*?+Uuz; zEjA56!Lv@XELE|7DD}7vY#Zx1;1sY9RhQZdG3$}>Bhjcid2%G0T)>4khFD&dGc{;y zk6vUF$+SpMk7uwH#Rc*hzDJU=cub5P6PZLDYs}2C+2lkbBNEf87*-yEy(7@6%xrRO z4nrm_dLwDn?6s*NGIdPE@0*#$YAvQ`MRIZ`l>{?d=ps{@WE{&=aw?jdizTNf1_T&j z8O&hC!a4@B%=7>?YF}GTOplAn_-r%*E|IZhDw#PZ1sP9frl_rPG!_vvk=aZ#I+wx( zF*7$iGo6kLbjyw<)6rBUIT??I&^j%=@gwo6j7TRiC9K;^l6_4d$Knt&GM0+lvL*CV zO&QdkPA&?~LB7<0NYBKhNy^0Ui$e#ISuFC3XPOpNs3MZGW0A?oL_945Z=w>|Bsw=6 zpCp-~hxFW7I+M)IW#VFDdOAjmw$t(1BUtv+heT?cR6j1}((wTii)13QVX%OzPz)i) z=F&;2wB%F<6Xcvci1)+3N1>KkI~qY%vSdtPrX+*HB$yhBDd|8ee?S~f#DT-aQ%X~j zD0U)gctw=#X~=A}2Pes}K8mUML@GHEpNhswnrY&4G?|X~!&XU1HbE?@*`pD(2@gTL zprH=gGRr&``h_J$a$H1WN5BIjD`MC_oz#8;2ph-*ltJpoNgskCx}`~l6jzn@wl=86JM4$@)~GzS8`?O)2B!rr3jJRk!80OAyd zJRS5qh5ZBlcCK7LXuoaL$uCw#?>G*?tQ-@Kiv^)s!D3Wz;tVcN6V1BQOEqXe9kyx5 zY)dX;zKJH#-@XRqlP}=BbP9)O5v+AYy#_-EZF_BBap;8t?6>&?QS6!VJD!S6r29oM zFZ_o^uqyncwk=yaC>xYI>|cjIrZ%-B#tL*~uREuMa=H%&$M%Z_9tVwfk0b*1^W2 zZL2*s?enlt5Qh)Pr^gW_k>NG}kl8@1;M$SM?8uQwYA#N%nDMJ3huMDtXWh!_QoUM{ zak0}mEPL~1ry&APXd#5NMHGM1h^U1VqFPKSXyhz`f!*c`mIBmRNs*#(xuqJMvQ8Np zFF?SHLTygrB+*HZYv_vQ+yb`z!G!@q8-ClSu1K>C;lyD}s|L_fTE*z3hJ7XW#iG~0 zw^tkz58L^r0;n5U6(yCsT*LX=AMO>*JBIJx6PCnoeL0`kggE+(;DexzMtjAcJ)*-% zRtFM|j`&qQTTK}wX2KY>RZm8GgGb4t!J|03)pH^^J=|-jVzQSbHtO3pY)G4ZG+(H~ zSXj|}{dn(%(QS2rd1$d;pMVb?GJN;;Yh8`_KLYCAdq*A?C^f86Y_e<0oklKi7pfJE zaHFpLqLV*G+d~qhV;|^R^x8@v3;DdxbuttIYx6KFho;tHd>*eY>Y_@$m=|>< z5_1D=Cj8o&FvVbg=}ZNh9@E2~a6i-z*(&XxEIZ^qY7#UWs#FhQ>#m$i9Rfk1Cd*=p z^_K#gdY`R_wd$eagI&*f^1cznO1TX6pfiED<s9X@bsuSegPPWWEINqSHjyio zYS{CWew;EzyJ;I+s0ydlY~VnH5c5(Eku@xMr9!EIK%PKIxtyD)j|B*qOV$)wU#R3T zN0uIF=0al5#T-?_bW=b8oiYgOmvT!3;(;cPB9$rvD@}@7JN0}Ckp(($VJ*lljjuOOcaNnmQIt-B%n_>JAJE7ot5kMUTbl zYPnfMa}LBoPX(fjScCCV!Dt8_YTCu-LWyF(BoM_B@zSh^MEq>tsksgmhHyQOQTcq% zp&2~itd;QXfoh-^*y!VsS0OEurZ7|Fo8?-L`i(ONw)7<#I(D$eyZGKxCNXlPAjBnU zT9dtRE@7(^#K(sq7Ek#xVuZe~SaPDqPhW6&2mvqp1ziy5j$po4vyvu0?#OUCx?hFG z5lROQ7GwP4!-EwHSu^U3jMc21s#MQZEc&c7NFj(&-ZD{t3PEM(o5doghg(O))LbfM zjWr6^6!s~lrCQkvQ&e!+3h{`$Wy18396feiO9$Mc8B-)9_$t(1gxbmnX>OqN*OG(p zPs`S1?iBWTWyexu4;HoZi{yv5pCzkf{1POiy)s^}<+kQjX9TTERA8I7DXb^IXb8hv z*3%ql-{n-Q&4opp>*WCxAEX*NbkWJen)K<)I(;^a@UNR+v`B+S-=tHmE=!)qu)U@2 z?!-*$^gisQWh~ELQ-s4(r(o^J6L7ZW{hvq%-(!bb5BYKVW50jpYFE!EK82y4Xni+< zui4kDuZ!p3;m2qF>pfRAR$l!@^MgdS z1N@JF=*0KgA>10lrIDDvTXD_T#>=m??=(dIkgn>;`j?+Y?ky&&{L51JFDpdZCQrGS zpS%po#YzxteSniQJIfy2Pw(&`?~H?dd8{Ed(dWNdp9Z!0irvDlve0R@{aj-u560= z#Jyk^)6BY0nEWWwX-9dU@?Lo!@C7D)L-+U&Bz&V0Un1h0Nh)5EwqVq5O!N3P&O^4_ zeWcxRa(lbo1nACs+WiDNvGc;FF`syRbHo=|*%I>&b${6Q1t2|2#$?e1CtlLB~s zUGs|56Mgt3@%qH3xKCWzob&}A-;(eRJ+?LGJFs%yxNoNW4cm7h>Kj5UXsyjVvE8~4 z)pzKDwuPSHb)kF8xASqb&to0A?)M#t`9@>DM2s{t)ctAC`>2u|mQ`|t_kOS|Yu?Wx zZ|pPLU6O2KzWZXn`;)%W3EQ_LPF5wNjT3csv-Kmo%5Y8EWQ^)5*(67S2gK_pYwI=O zHXvPAM+m>Bc%Q`I)~3JI&JiDZtCArqyUFU%^TJJxzrp3TKgdab#nZ5S*@_#oYt#GX z>lW+&wXk(q;}<=6MB^`d@Ntdr)V^ej@0FQr^)sXC6CV0GO&>4}^z&CWuKLj_ykFy~ z4kU9$`MbrcdH9z#{j7(+uIZoj(9>;An*Cn(;2+hve6SxmcfcQLEb!ElFI%nS97O(; z8qa%hTCk~IGoDQGr)6fVCFcqQ;`tekKfy4{{*J~^dGOC^{E`R%g2vBy@Gr~vEmlI0 zK~wxyO|RN9sAZ`oe5>`v4kUBm(DcuF@ITe~6%YPr8vl+5{|k+GdF-O-wp!ag`0JYf zeIER8H6HNba?OJNAMy0}XPSP{L$Bo6Y7Ket>*V_u>xzfZ4HDmKjd|#A()3Sy=-;jJ z7d`kc&F5hcpFWL0?!j-@`28L{jQ1Payr=qaS?>qFL-u*?&*2U5$Q9H2KX+`=S9uudCg~V1Nu9Gza8ty4>cXFPn2jp zuh;IR=6^{m-pn^2(tOM~HGCe>^rP|;rDYj;9@~KbXEdKxDTQSjKA+e4(;oa;&3}hp zO5|PzG~e2Q|6gr@zqSGX(+%+JpkK1r{nsghA?#cf69ZO)%Xh@{9kGOMGyWNjlb-{zohY3J@}t!{522$ZH+@kG8sEs z`c$3GA~crC9LtW+O-1SBdNvyhTXe0`T&W5TS)o)kOh50ZA4CLF(S7u@pMLJ3pF8R2 z0R7xWKVelx)(K1cu&fZ4HNvurB9Rrtl5benAC@G;vg)v^Dp?Lo2E($}uw*bS>kccK zWZiwLRMPL09QG+;W!-(U);`I9pRBu2*4?it6$e>&zvQ!D^-V57*0c1@8|~9qGH}J`0;ld~DF_3LF3&sJT&-4KMlb_0;;i~cVVai(&3teWi|Kn>C~bC^UrZz zoYK2gF~tw$sm0(XMnKEV0Y<-@(O=K-fX2P_gN*(LMo;HPN?!Uy3YPNtkT>#-YTQfz zK}O%h=(!-^u9zGsACY_#bH8%jdr_da|`?ca_m|`&y;&!4QibFbvL8Gli?p=_zL6mUWR{);pE#!o-Z(*%lStP z=W@Qpa4zRxXxuC3CQ<+rJ#N9DY1h^`(T_2FFQccJgrN^Jd>6wHZ@?$Y=qXBJ_)Ifg zF#HI^Z)Ny##y`sNc}CCWDKYvnMqgv}T%Ly*E*Sj^!?`>k*Es2o%kxP_&*k|IMnA^* z|2sy{<@sHPb9tU(IG5*(8u!Zchm4-{e}Ung|NmfkFO&0sY23^I$Bdr)?JpS4{no~Q zkP;PhzkR31i9a7-en!6=WyXJk4EHm9p5a`cC5Cf(9%ML|=bXm9@?2!}eXQM2G5QIH z|2D%D4F5gGXAi^wfYFaJ{I3{(55wO}0wNiG8vX2HIPdQ;!+C#4G)@n${}iLASe@aY zXZURlKgIaO8GeT06pJ%_&M`i;b{qV0M$h%|IY!Uz`!vIOf4|0X-rsLB{=C00Gx{ke z&tEdUpW)wSe0YCu|7noQ{#0|Ao=dG5l)`r#-5X z=g@U{L85jK;?LmsXq@;TVfY6bPBA7!Ut)atKIGF3=lhV)Gd|pZ{wt#=J6_TIqVF;K zBy0EQ9(p6sCQ>32^^5z-jST00a*M{jeiC5xec)yI2O0eY!$%lB_uCl5xjeHB=klCn z{JGzj8U1e7Zj<4DhCj&o#2Nks!>1Yky9`e-{3(r-K8G0o6-GbC@aGuL`FxY{;p5`Z z7(M6n6NYm>|G@Z!S-YEQ^MOQmojZ?q&;Lq6C&*(Xy+ZoRJ3^P8%jL%_4 z&-vWTaL#9z@!7}toM7~v&o@CsiTcaWH9wN5!Ve*D`n8X(@7y2AXDAV$U&UXWoRdy#^nxwuDGhEld zUlR~5{h9ABt_Q!Q>5ZNZ{j0hWqaTBt?LiGRZtq|SsvqJNYh84p9bHWRe zheHSo^H)TQ+jT&I|I&?^sDfl26ox3mTQ=2jc@9^tDbyOmH8dxL8#+N5fzUd@yCpp?Hx|9z^$bGn{+c=b<`WW9G>Q6+3a1q>ipBPzGfJBq-UDCD9=WfCOytCj=;2l@u5R9!NwW z00R&DaqPr1v^>GeN;KQ1?rvshm3DUPHqEZHX|hhXvti@-r;}#Z^=_u_csq5IPGUz+ zo1bk)ZIWugbAN!tCo-;gr!&1H;@$V%bI(2ZoOA!qyZTr>HPPMGWtr4v-EDQ=3~E`m zdpr3tnH{sBNOwD1Z6wrhG-JqRV|(qV<=uF_2xBnPcazXNniYtH+)RuRc>W^rX+k%Ex*vw;zw~ zmOH%if$mdVpTCaSK23%ywkB^u4I}3T*|?-lv?hC+FD5k7n%sW*nTy0Pl9^ARFZ;#H zFE+VVC2X?wa|m*q5%7{<`g)K zPm`)nM2JzTOjSy?P9adrR%b z_WXa+_uI-MhYbXGh=0 zmP+5ozal3hAHrB2!+gibo_3PUpS}3z{gEuz>ibCKaI*D}k@=Kb2qGEn0`rO1x6-Yj zz}!0uiSwKL1Jb2p{+{sa^D+Ns@{-hrhy0r%_f+djs`YxR_3cFKZ}iN$a^deOgZt1%GM{RlVzO(D{=iBc}OLsl<(Zd7JB=Rq6 z2`@yirY;n|Wrbf!bYTK5KihNpW>mqrPPV3dR-WlfVz?yldczgT^Vj?;M^9aC>8~g;yh(`CnWwv$m>7-$E#PNw~gw(e(Tk%SJA^v{j9j{ zY_8;rU~tJP*KQNVYF#W>>y9W@kX_EXrD`Q)gH)#ZMsCqLAY_eWGqaiG%=C#+C?t-} z&duBtk7iDYz;t9PK49phbtmUK4UrR3QL9%!?Brc>y5ug2YOPcOXA~Ah!71jNWw#Ns ztRqWKMN}*0vtqGy3R!o_5yeuy;fh>+vAOJ2Tme~6m&#?-a*5m7YO^jXxn)NRIhCsv za&8s9GV~4MRzu}2xt2vl!Qd$e zEUOhEs!g}nbcK0mre$@gr3FY^t}d4HkX_`Z@v>SES#Zxb9Jl>mE>)a>w)A+e;S^>n zY4>ay?vY9zp0bmb0?c)!RB)FLh!K0f;bd|P2gI}kDcb&2%$3UU0Q6ZkCSVQJa_Z<} z9p;544~YJTbvjqCKsg8C7Vv;d$t~r|r3a;R3dKW`b?EYBgrM?Z0jZm{HFTYJ7oCbz zhZ~9p94YUJe6@fcph=l_i6cunS5%a8Yiw7k z2(=bPIun_WMdo7JguM&zump$fp*?$Su}93prO+|sZu#mm`8^yP0QfF=IDhZC2d1rKdWjr=-DUaUB+` zSHv*p0?}yZ^G>5ND8iytl-@pM9J%g1&~z}y3WEYVtW=2{nQ9$OhHOYFN0pN`D#+?N zAaJT$Du}=yDZcF8Kww}H_LK8Weo*9>a&@t152Qaea1e%fDuq%JHrQ3F z&{Ch>K|`UTe6><6Ev|tN!N#R(XzA__B|+uVf)}g9?u3!-Hq8jv$}ZLjKOh1i-B5P> zBesxJI#G#|7!~1zcpRc>Cx1}fetQYVMj|pwP;j8(*7M6X5unZ=E1eh=eab`n2E^#7 z7*-XC*i@pta)iJzv_-Ef(Oe_~@%xgQYu+G(ivGg!O0-%#TQ4mxq4nqh5a6NXmHx)@N`_`k{43TS8uCRKGYc(f)uvn*Buul> z5~dFfZ;Y0@1NV08rG+NOd&vc#%#uUvV?#{Oh$E4?x#`T&L7Kv7oMWP(MXKi1v0%{R zws02f!D-a$8x&Y1C+8wlgW_;}E{&ygP(){@rjnUKaWo#88x)cGOk!p(Jt$JiXnZ;y z$5e}v%5)~=^!_F)CB^FTlZdBgvvcte&d1Z4cZsW_^gxOiv^y+3L^+ur`RE-xFa`0sxtY1_ zRD5b??r1iWO3g$gwCfamJruFz9QL0?6vg^0N%nOn?(uX?>mf_T*P4$ z0`_&MN(I{V(9VM9jA9kua++3rtQ`fc{q0?<;~uc>a7e5bsX-e`wp|g+O>B_iVsK~4 zFt<=WMLQWY30A5ux{NsrlON5xWlU(qgExmht(65s5}T;fvQrP)_QPn;A%WTx zIW&w;?G0f!io*zMQ7IiFNGp`@=x(W6#_T34XuuFj{g+&+N~ln+4b^%BZJ!kjwAWKx zT5KACf@hs%S*~LJQ0j3T*f!R2z$suIsxG$`V%8($N1{=4^5jS~xqu6846(c@XKK*a z9=*sUl4+5inaE%%iVNg1d=DpM@t7DtDl&;U)|lC&bIHj>MkHoZF|0fSdq<$tnYrZn zJcdkK^hMIB*=JKhWcsLx-#0sl)mqHViR9F5DhXz^&_$**$vBp$?*MnVCUq)V{Wwn3)h$@wsRMTq5JiR5Ei^3Nn$*OjBDEXe=UTBXgN#bUuX% zVs?IRb|xJc=$0KzrlYAyaw;ARp>wZ8Iew4N?5m-B>S2^j>jQnWIPqOWlQL# znlh+6om>=}gM6t$k)Dl5laz_y7l#fab6DgR&onKlP(>tV$0Ada$#_}>-b5v^NpyZL zK1DJ^59#^wbS9aZ&&0*#%uI|FZKvaNhq3IZ4~o}8Y02pfCdhet5Fdbjk3cPRb~J*jWXYJoOi2cXNia1MQ__J{{-8LLhy#a-rv~WtMp?^b1RhZJA7fH92gb;Km&*3G9m|<)j}dDNA_*~jiEiE{A~k7IWvBbrmW@MMsor4VQ8p7 zlpo9oF@FzL7d|}H-yfV9c|ZjG0mLZ^ zc{=EK3I_%U>|D8gz<%49lV7Tez6l(FSve*e7YjnOg2kxb#2H+kCYp7pk803`) zUic4*U{(0XY+JT;KsG3KIIs?VOl@jMjTPv~UUyCf<#Znm$}=D~e$av#xqGPKoEoY$ zk$>nRAvH3L#y@1*Q|B&hjj-?JTB9k4rWj~NE5&XiK=9^N`LdI%Ku7gu5v*ecBy-y~ zEet_bB;-R8$Q6T74zvFv&bpOTrFyj@ z<6@_BSoRjmPD2Eo&|(N@izxo25m5^#M75Yu(8yT^1G~)?ECr~sk|IUna?3S1Wt}oI zUVwlXh1#6L38Ir6*U%NqxkYUGgNuWLHvG0tU6E!P#)-q0Rt=z|w2IM54f{&$i$$M* zPoFp_9=7w#1yDDzDoQH%Yz^mYf4EOD?-;pzcUTg;^|SfBCdAQS1Rn%#G}dZIVM?o_*xLnJR_W1+LCtU|&f?#1_2oYX4lSgRfyKG^k4B<~wFtdz@84>}WgTMq3$hE~0Tc3om)YD2BxHzJ4I8A@{P z^?8z$kS6Hdhovb%Lgq{GP9BoPvXDYFA7{N8Z@*KZ4
BlKkw41iEg{p8$%?1uM2r)0$5Lv^5S1ObW2;>Qbl*_pV`dEN)xnxa|^~FjK zb7bj(W-cV=UCdD>Og9At&?$qUekr#+C?06yC{n2+u+pTMwNuZR5Luw}7S@8?avm{z z;*20mrPL@KGWfCJt3PN0x zrZw67<}$WAL414&V)2w8BSz`#iX|s%{PYJ$h7s_hU(f|{?g-{H$ z@kYU##y+LATq|2)iVBWcAs%tJOqd>$qsNYG>3};lV~S)1UxnI>P+R!`%?)(^T6XaL z>8v%CJBdAB*|F5vgGH_U68YinXUOUpzXZu>uZ-7I=mc_G^Qtp~RwXL1P1_XKlV3E1 zVJ+)v4z%xbD%IxV63zAUfQb)MjU2k@WMNJEbY-17lSTN~%`aJ`L8EWdsaBUIPh;5L z(sp-pHg#$*cG5DIXRj&3VX0HF_TvdS+w%TTB!lmxz>xcsrtzjC#!_Y($rA^Y8HEv;Os-D;g`W{-XIoqT2rD9#r|sXZ3g6BEE+QySfssn16@)l#9H; z$ISr$;~zTleRdePMsR5)rtel<^R@BvEA2ZCkw2uXIKD}AiWHfp}1m+hog)~Jt9NHHe4u+fZHT=<$kJF?b5_@x?OpG^{<@xvP~Hw;zamR4>+k3}<=g&PclTGH^YvH) zulor@nxvl@-}aU6vhC}MZ;SeRBF_M#Hjh&o(u{h@IyI9g15Nn0Ki(bj?Racc#3xoZ zcQ4w$9l*wYJ;`kmv*NusP`qJiaC28-8qS%(s8#x(VNG_Zzlvf7CaOR?u3TcVe4$ zAF6NH18oaE!Rtczv~S1bWS_@6a^3ISAM=gHe2ExoWVrj&p7${&H!Q2<2Jd}fSJu3r zL*CeDth*%H#C-R~eD^1PW0SUTdz`FFL>njS>SpUlbd}+nw8eA$W{vTM`( z*lG=X@ayFJ7VC<0J|;Idsj zDNU+}mB;(r%fKPP;{1M>9pW3Hn_7W|PU()z~{rnuB>-G294e!4q<*ZtQif#kjh*;^&9LA;y!>}KHW>2vo6_$Y9) z%O%CWt%q5SKk2~>8h^@zpV9aW9{gWv{6!D`8I8Z}!M~*OS3UTjX#6z~{%wszMKT#X z%8&p~)!8gUW0}m+?8N+Zls>L!v!Sp>*DB4Gs?e|%N=3u;^M3k4L?9L2OF#SQ=MMV0 zlYaKo&t3ErR#jx3u%r*m3Sn6zEUPFISurg6hGqQ`Nirg}Ux-K$C^{a(pouM$?)-79PDmHhY0x_f2aeTq_XkahP-KKoQ3CH=k;!~_t*w{Y3A z0iCI^Vm7~Y(o%P1tfIX3XVo3LNQqBROIfRcXwniw8~A2}Du_l@s@ZZ?-5o&ufnqri zBJ}a*cQNr%3;`+PP_1X_n>X60uVmng&jn81%~BA?!bj=_C!4F)%4ZSGK#Vx6zEPMa zDCVN7Bg#UTnJjsIGD}g8##vmpTSjNvQ`dOfQ5|d1ad8h2 zO0FzgbRn=(fQt0>Bx$THT^P)tq`cCZ*1ib?wJ)GLS!&N(|DKR_8W%jWbak{N3i!&a zzuBdAFxCyF8BT>u$fx$U@7}f*i(6*bg1DEw4k*AE&rHUzjAWtm@H!%WQX7)4sU5x&Eh6gn6r5|GSH!ylSH&XJ_A5^fE$A`R;XH4T> z`VTVtUPgZ(!>R9vkG|e5+r5k76-NJdhBq00Bf}rmILX8LoM-fOrZesSYlc&7#^6tA z+{@=lM*mJm|DPFtGsFKt<6b`hjnR{>O}nd%p4->#56B;OF#1dr!{szO}&G4;y z-64AVA1tQb8yWr{hW9a?=zpf%^J-Az)UUf4{hbW|0K-=ppZ7BSQw%5HHu8Ld;atu? zVmO!cC5Cf3|3c$lIX964kmzv>{!F{J#)*EM;d>Z8#Uu=UnBhAaerN+eQASTu3d3iH z;ez3Z8Gb9nk1_sHhA%LBE>DTkk2Crjqv!HG#BjmrR~XLa`MAbOZ(N>FGI}o0Z!r3C z#{b_jdM?lJGMvlv6vMeZU(~o)oo)%kv<^xjg4I?v>{vqwiKYm8f^>c#ZvyA=> z<3oED!{=iRA7uDrj8B~5k289%|0fvE_5WK8=lcJg#;Lzt|KDKr6oWN#zQk}Y=btk^ zaYp|ghI4&>pYfqsxZ(eQ7(Lgg(D4M)e-EP{U^xDJVVlpQ#;IQ!hW{5vKhN;5F`V|O zMxKM$;RT7>J%B%h-=lHjf0*GPWH`l`41J05;rozJGo0^3KF|1Y|M{~NYpRxCpR*j`^haD_xeeI(f5Ow;U8r5lMEka^xSV_4CnI9F`UbD zg7N2mTW0jTSi4Pz`x*Wq;}d826AYhW`0p}2!SJUvPWl{X_*WSHIK!V~IOp?C#)prK zKV$Tq&rcZ6`TPUp6K3shrp*Tu*^%?PiQ$~jdo)h{+KoSBUq7Sgd~Rnr=QG0ij4(cj z7(M56FT**XImTx%<8z$Rb3We$4JGO?KiB+7q6$BVyy@3ow!U+JAfKT`e0~*wZF&Nc zNI&n#pTVguN<@DQe+Ewzh(z>s<~4YcKqSKNz@Nb%L7o!vxetE^|2G685zh5kiNY-y7EKFn}k z|9(wCwDf1bySN_wlBPF$HuSIRMvQ(8ZoZdn*7Xc-zJHkS$OgYeN=16eLvOxMyx_sj zcZGN8_6;8s_vhzIZF1E>sBw1L%`I3VgfP`}$>i!zITxb;UvGuzexDUuXf&)4{+|!2`15#F+?hRbufYE7Zm5U!y)A>7aj$_S)>M>I2p z*dzW^se4v4a+b11{1-k)N&o--E5LzNskb?8eq%c4Xn!{a+6~RCMSB)9)mR%*nN^zf zkcKJPhD5P4YNv-@kanntTssKY!&ak~^&dR#ngVTh^J>vvlX!aTKdI|$H)_*+-)Rjb zp0xJxWa|Gm1*=#x@*6qEP_|zEdv~cye`g3a5A$lCvBWl5g3tp^(S@%L^Ac&n`H@;(a!}u*K7aEq$2oD);^iU+x}@_ zM52eSs)XOM+f>%yMpQ<4-am$Ssz2<(3%Wk}2TxiYS%>hCGG0J;se-qes z`18td>I;pw_name) ? pw->pw_name : DEFAULT_USER_NAME; - } - - conf.flag.git = DEFAULT_GIT_INIT; - conf.flag.clang_format = DEFAULT_CLANG_FORMAT; - conf.license = DEFAULT_LICENSE; - - err = create_project (conf); - if (!err) - debug ("project made successfully"); - else - debug ("something when wrong"); - - return err; -} - -int -create_project (format_t fmt) -{ - int err; - - debugc ("sanitize"); - err = sanitize (&fmt); - on_error ("failed to sanitize format", err); - done; - - debugc ("take %s", fmt.project); - err = create_and_enter_directory (fmt.project); - depth = 0; - on_error ("failed to create or enter directory", err); - done; - - // debug ("create licenseing"); - // err = create_license_if_needed (fmt); - // on_error ("failed to create license", err); - - debugc ("create makefile"); - err = create_makefile (fmt); - on_error ("failed to create Makefile", err); - done; - - debug ("setup git"); - err = setup_git (fmt); - if (err) - printfn ("warning: git initialization failed: %s", strerror (err)); - - debug ("create .clang-format"); - err = maybe_apply_clang_format (fmt); - if (err) - printfn ("warning: clang-format setup failed: %s", strerror (err)); - - debugc ("generate source code"); - err = generate_source_code (fmt); - on_error ("failed to generate source code", err); - done; - - return 0; -} - /* This macro exist purely because I like how it looks. */ #define reset_path reset_path_ () int @@ -405,3 +276,91 @@ parse_arguments (format_t *conf, int argc, char **argv) } return 0; } + +int +create_project (format_t fmt) +{ + int err; + + debugc ("sanitize"); + err = sanitize (&fmt); + on_error ("failed to sanitize format", err); + done; + + debugc ("take %s", fmt.project); + err = create_and_enter_directory (fmt.project); + depth = 0; + on_error ("failed to create or enter directory", err); + done; + + // debug ("create licenseing"); + // err = create_license_if_needed (fmt); + // on_error ("failed to create license", err); + + debugc ("create makefile"); + err = create_makefile (fmt); + on_error ("failed to create Makefile", err); + done; + + debug ("setup git"); + err = setup_git (fmt); + if (err) + printfn ("warning: git initialization failed: %s", strerror (err)); + + debug ("create .clang-format"); + err = maybe_apply_clang_format (fmt); + if (err) + printfn ("warning: clang-format setup failed: %s", strerror (err)); + + debugc ("generate source code"); + err = generate_source_code (fmt); + on_error ("failed to generate source code", err); + done; + + return 0; +} + +int +main (int argc, char **argv) +{ + int err; + + if (argc < 2) + { + printfn ("error: not enough arguments."); + return 1; + } + + err = initialize_main (&argc, &argv); + err = parse_standard_options (usage, argc, argv); + + if (err && err != HELP_REQUESTED) + { + printfn ("error: %s", strerror (err)); + return err; + } + + format_t conf = { 0 }; + + // TODO: Argument Parsing + conf.project = "sample_project"; + conf.name = "vx_clutch"; + + if (!conf.name) + { + struct passwd *pw = getpwuid (getuid ()); + conf.name = (pw && pw->pw_name) ? pw->pw_name : DEFAULT_USER_NAME; + } + + conf.flag.git = DEFAULT_GIT_INIT; + conf.flag.clang_format = DEFAULT_CLANG_FORMAT; + conf.license = DEFAULT_LICENSE; + + err = create_project (conf); + if (!err) + debug ("project made successfully"); + else + debug ("something when wrong"); + + return err; +}