From 5b3e7f5ed484a6466566c378d8f946fac18e3d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laure=CE=B7t?= Date: Tue, 20 Apr 2021 22:19:58 +0200 Subject: [PATCH] v2 ? --- .vscode/launch | Bin 0 -> 32808 bytes minishell | Bin 31992 -> 32696 bytes minishell.c | 32 ++++++++++++++++++++------------ readcmd | Bin 0 -> 32872 bytes 4 files changed, 20 insertions(+), 12 deletions(-) create mode 100755 .vscode/launch create mode 100755 readcmd diff --git a/.vscode/launch b/.vscode/launch new file mode 100755 index 0000000000000000000000000000000000000000..ca394edc0467435d94993241960461f75074e537 GIT binary patch literal 32808 zcmeHw33Oc5dH?gOb|;kp-o~+4|Yk@C=}9BoTMf|sx}1uf4{qo-i)O* zZO`fd^c+81@4Mf6zx&a4|9AIvv^CuWNWCg1#(`55*)q_0NJzbjj(ZCf$3QEfaOw#rHJ%M; zl`A;|4L_aVe8so2V23nnSq3`w7@O2mrI*@}38(0C*J*vD$8b?^MC*-cJp+eyAPh9| zWK8(CSli8pb>Q)+lV{7y*4v@=vf(N%Zy@vFaoyYT*8fg^jau*COO%~#_@W|P2Ace? zg&yPbhaRSyH|qQ*s)s7wJ`L32wQ4(~&5IV+cDByzjCLn>%-gYe(Y!?qYhpb$3#1G5 zi%o&mch%LKE%zR4kTj$3vRoOsTjLOs2W89f$FNiXp>=!vi*I#5`_oO2Zaev-g?9YM z(Rq|%IcSqIJV@i8Iq3d${82{6#}%~pSe7gm>1~^v0+;`Kz;q)}GLQcNT9QeU*cB7d zqZ808C!kM*V?pq;k7*!`m+#jnpkF@$eb)r^xf9TzpMd`93Ft>Aprs`GXee7 z1oY=7px-<+gB3$8F)ZrYIy6@s^IJKC3U%)Y;k70+rTix7F4jfd#Fr@R;&y!s9Bg!EvUK73a{C;Aq+nv?a^2~(zj{DO1Kx< z)YRM=L5}TRJ>A-5Sc#4+$l*)<8%uf8G{fT%H8KC~;+ z5|g4n+9_oN#9`)X(+*DPMsr5b!-l>`(?{6haTvP6PhF$v>}O_*CuPV%FH$1%oN~}P zFPP(ugFe*|0Y@Bkj-}=>?U;E^H$*_wj!Ad+k1FkdF6cT0QY+}7n^=-D$3fSZ3{rl+ zgYKN47CY#2ev;Dg$3bV_<_J0HCZ^;yI_Rjd^s&W3&r4G+Yny|f@1S=$==xGoa(f+g zG?4VM!$J3_sg||JK@T|S_d4kM5?XQ(IOxuC=m7`4)M4kagRU=4CHIJfUg3~`+(GAD zY>p=#^eRIH9CXmD9rTwS^hpl-2?u?$gMP|EcV1)+Iq2s(T${V&=tNM}YbdlTf*S#RO&pH_zy@ecBahemPC zdV@Hpj^Ps$|2yKGGKL2w{t9tU6~m89{CVP>B8Cr3{3+s`mWB^V{2RnMRSfTu_*aN? ziWu&d_`}3GH4JZ)_=ChbB@8!8{66BG3Wn<>{t4oo0*2>H{BGhL`iFxO-$k55{%}Cz zeZ)C64_gwyl{km~;WHnCFsqq(fcTKaZy?U0e)xpMHxlO%KRhV$wZu8J4?iyP6~sBk z4~c zz2ui`lCRzpO1>HDf9p)+ruF+p1^fx^FMJ4YhW0OQL}^FM{|-A2?;Qa8&N5QP&j~Ic ziI<~kJO&<{hHrGpKWz_eTQ6t``RAnkWls^z{V5u{WLV*ir(3<$29 zUudiGPuoj3tQXqG(rll!H{1@{&9H%n9SkLRr;>@clADK~4MIM(4nYYe8%9C{4I=}a z-%2*-sMJt0fJ7=Zz=9@p@F(8r4*lRaAPb49{oOf+I1k!BQ4o*CXK_|Qdm>?<})nGn3pn8ibWSkPG1aU zWI%_%h$>76HUUaTti>sjvN3 z`jZyaL8A~Y`ad)1e_~K;tBQ2GI8D09IKGw0eUf9)=_;9RhF5P$mz9y!O~~-L#qR$s zJxhHO1$ma5sfUqrHX4}`T%5$BvVLR{Me18GT6f+P}p{$q4h7H;^cvLdP90X6M# zycWVEq5X~Y`Ao=l!vBP|Brj1N>hBtH!C|(J5s+V!*_}Dv7W(+^6uQXr?IQIz>?*HD z&?+~x#lpBOmq>dl{^<&;ZB8X$#d#$8`rLPtuRv&E1I(g(xLyqDgB{AGB2Ds;SI2nDeKQ-s40qGo`cA>#jT!^!@UJL3_Y{GYxDl>U)r z@fA4Tb!Y#`lKA;J-PPAWazT6xPIqoe~df$xk zMV5hCla444Y+%1a9m%G$Zv+xfuB>}ja{ul#R=fecl(e?L?62Vt3o)dt_X1^nNQ&%l zM24t+rhuzgDzjDP<&I@;gxo@*iz^e%QdIr0`u*)xzGKTEdfF4dmV z<&UR+`Wxq{9~c|y>TFbQJRt230DxVCpY8K5%yF-<`4&ivR|#I0wW*Dz++DWqJ{FI4;&flLw5fLUOnPmtoKH z(kk_?8begiRD(GBAv=Z^_&X(lxHhC~&GcS51f~bhGZ2ySdG38=N}m#wpPj=@KBa67 zDi6hTi%@w5#@%nJ#xywAB#^A5b8r_WI$p<-)1=WW)9E17#~Y3j4BvEZ2tZh7_TpGeK<92k|6MC3= zmLpUWjfW$T8fE~~qtS_w9A+>raG1&Bm=>qn>Q&0pcy0A`7|N%zJb+C(k1ZY3JEc7U zOndOM@&H4D9OyDR#)ID%Bz8)D8MALE2UUhC-Xx1NeoVfK5$Aszlhd=2&ydBdZuFA< z<*)G?KN;xnI_5e(4>XkicxutFk&zt4kEbqFX*OciO=FOH!@QkvdJ&Ri9Vb4U^H>EZ z-Km^(3pmx5qN60-ve(Kn^T+Ruj{adWNjz*E_%d{mM&`#;HiiVE>?x2- zK&QXq7{=!DMf5l>3%f?yM*-D9JcT8c2n=0pn9i|fpiXuoBPa)D&zRuYz@x_nHE20T zr1az!Nbde1luVpqSz%RPMZa?i#=Z+N7-CY`Js{oyid5dST(hQ*o?!q#fM?%ehU)SU zngg3ZkjiCPX+8--E9F)WrOiG_v&na%E@mUypK>L|c}NV19XKP0;_sqTEi6=c&o%WL zG8&sl(thq=`XY*#+N|B+x@IfIS0Oijb?lJ+bIQ(j$QCXDp-RhM7y9@wQW!~+&rFfm z6yFK}w1x(9W^wpOLr-0T7P|DO^P%$+91rc^S10?)pv|^$5O$C6dl?k&7U0_J2&aUk zl2M{hfdNA=JzETzdi-B$L(G-er{jvj8N^75)l4kL-HKGR6x%n1{J+bsak})Fq%FOQ z9zU=7a4OCJ)EEt3p=^7waiFT}IVG`_t`)L6&uY=_^Nz8ed)f76) z>tlHr8r=aFd>=K~u<`*FhCKI3vo8%uk6`c2#c=(8I<^LzK>IJlLqcOw{3{q7{#z^o z4h+8}&x1V62!{r4PPK+Enj(jVxJXq&6f~@`+YWF)r~aes_bi>p|586%_LETm z3$D=RKTiCd`=EoQuG@ z2%L++xd@z#!2j(C@cFnKXSLoOoYg8HpIUJ$FnxB z9WCoLglu{{n_42R!QN&E(YgR0{Y}vA)dUCU+ z)oR$d@tTcS1Y25zd@eK6dhwXftv$^#RU$3KM>%C_vL!X2PgR=I&Kk#{$!u2Z>{yVG zW+wPB=GhrruF0M&Uqsft(f`0djgF20ZW$UK9Rj@er=z1mENA~7unut7o1>%K0AB&z z12_bD7|{36qoad>=K&4@wg94ft$P5c0Dcp23E(dQZvuShtA`3(Q@qwxF#3m z+6UkZ>3lw{_a~#Ha<^kuF7}QryhCDH3-R~BkCpFMQDAjZ)mnf4?e-pP`J^i^ymaOa z%2D?w{LMv7`bnrS3f$vfS?G2D5pq!cJ3;;=_}tYP<9{K|KLm0KV%V6$Uzg?|1APVf z^0_)=|60kG`TryMi^0c|bIgA082*GeRrJ{r~+*X_&0)o zzLSsi6#Q)guNgdSQHNIV-i3BF1NENf zd#1W6K>jK4d(d9KjdYst{zh7V1bpw?qoZvZ{3gi{g2wkN)`Nc-x0urUo<9>(03_zI z1TruGe01~((rFp@BT|I%xe5G6Eb+0;FvdrcydB_e8;8gC^%?Mb!CRf<&2La}hWffpZZ!7lCsTI2VEcUlB0x zF`4(4cp1n;-uMG7kQh$#s@&qO8+laCQjiZA^Dys6O;%|7y{AbUH}6UDdX9&DU*uPKE3XL7!5h|dgO|*& zSx__I;tE4G993Qaz~}jKl$d6v(DYf!{{~zoe_A)UF4K(Dk}9F(U1(HFe#S5rNLsmkz0{p6ksP}K z6nH|8o!im{j?WhX60pBPPM(kIRmgM?pr}PZa2NVX^DRZ4xI%)OkLox!AkD*dh->7$ zUm;AcP#M$igIn^MuPZc-3hslO3cg6ewbH)(UKw0b(OSwP+K))i0cp^pHo&> zl~S5|g{$eua<6<>1GKsLD{PpR}jbHI>e_JlXIX(c_sT$fK3XhFI_g$Jly?Y&9AFDSP=WL6KQm8&b1a!3WIdb$eE zDrIZ3wzb87x3+OU^m*)tg#tEq*LnG@3)}@dFLqK8VmZUVyDY#JZ{+sgz5tx)d$>H!;0sD>P}jG6~XZQ>13w8 z_CeZpdD%B|9|Yr6&L#FVK)WAKg9esJWUQ*)L|q|RPPu{w!_Y%i_VO9YRClCwf0 zTkJ=Otg2WHu+46vfz@TpfOOb@NhBn_?zO`dTO*OU{cCd8=5rr(hy4bT4JB-!d+g^a zcD0|?b+`R7a;~vgf!1$tCFffICV+eG-;lGl@GgiQu!o7D!?FJ0i_?FTjhI`||)IxB3Cd`94j~ zMMZh+KVJJ%c_t&D^+vx63b`KI#w$v)*rd4jT=#x@{ zm5o-yQPC5~>5`Zn9CHQIbG*g&`+!A!2j5#_vjtd1cx~QWCewBiHnA;lxkLi?^+5lrmy-q%x>d^3oqMJ- zZYUQEa<421OLZ#{Ip4Ssww6Dx_2m^9^i{zI@>B>qaP@I7W76O!VW%Ft8WEcko45?IT%P!9UR%yQwL|> z^wdFj{;N~RVd#ua9WNuJtf`{~0$!VpeAXNNN>3d(0?|{)Czw=I$Nfl3*~g7+DJ-yp z3tvDpC>|&xqliy2dvjdHkHD(eW{~x4;@^`ieD6ZUUJ8-i+;XO2lKs$w9wD>$TkiGb z+8*AS!vzj6%L9`^vhAu|-jyrnOV#!yIa3z@9PQPfEay|p&3kk9c@-RZ{kCthyOTJ- zF6FzT=n-aRf0W3TMVzv8EPuea-2La2IYx4Q9$U0!zXOVIg+y}fDsom9GhdquSGj+{ zq%^w5X>_eJsub24g`n>mcQs5Xg=?J(8@0kTl)!hL%+9t~GP_NsUxyz7`!F5ZERiba z-Q;21>^~*BrI2HhW&fN=t3+(8B;dQn8-`5ryR;L@W!A-fC*9Xx#H%~YAM|Z?AE1>S zO59kWtP~KrIdBUt+8H}n!0p?Z!v#L_ zEt?;M^UaY+j_tzLxbH%V*!HI>HeVtI_BUwx4j+peu-vy0yHn7*`x7vb7YaO&H2M_I zWv}5>9-;LTJAayZA87GOobqQBKf&}arf2#B$jmCs!&wTK%ap7Xul*H>cx`It?#AhX z{K@tf2-+W|>IH&1SoR+isR^+E*!IV9&c8%@d#`n{g@Jd~GHzW$CmD~nm zKCAK$BxG!It=!kZd%19u{WvpOh|(1X{b8gn`Uz;%jJ}Eqk=Kj<5;-1NmAGE?m&vqU$?HXbxkS|UqQ62SRh7I9^H=6k zJ%~vB5CejHJNyaclwS;5F4Mt)uy@fumRJF=92BfdE|deg5>X5EfGrWbl2>{GpO2%G zTA&B=d{nQ3{UD&b7Uc;P`X%il#K2V~A`td@w&`omsz#LG<=0fpP#+;R;N1foK2L|C z%FCQ$A0z7X?9tTfNH;DwivxI?J*u?;Y?w2T$BFwVeD_ zl^WkIuU)6f>)?&m+^_K*JhE%*n-q%sxgPQyJiIG7A31*;7N+&#!(Fa$aYTA@XqPqp z@$-?y@w@`o)VWkm%0}%u_`t5I|4jT7mCDo?cR|c+Q(aCd%uqI(QBc`}X52@2FY;a- zRQ4`b0D)Kq(aF!Cl3W*6Qr~^BbF!fAi)z?+aBXSLc!kQdyl6D?7*qauT6tDQhVra= zM)~}&({`!XTyGswHjuN*wX`Zjv9#7GqDEb_ic0f6MU#t)T_w4JN_aEV%Fka065^+m zh+d8#)HT>^5EYiE=!*O+^DmdEx76h+%FkB>7x=k_m;eobaXvaC2x$cpd^N7+)rK^? zdQB;FuB-aoifZcT35U453c&^;ZIFb5g;^4XnFf`)&nk08{(Ka_B$v4cR1#y{ zc=E7?h>jPl%wU*!A#^fch}KvHy(WUW*&#bSLStqTkWv(P2^`3Gxz?1@*@EfTn$lWC zvd|fc<<%4_$_~Fjvp^==Iy?cV1qQbmgp6pHQ0NS7$`JEW4h{ zO-w7CI#~`>W>T>ptKxI~EDR%Y^%(|5s;-${I#Ee_+ znk~BshCv#yD7R*##w(pt>|a&RI$d7PTCH~0sv=GLz3pOhcC}2Yu`)X?8{1T8PR!@L zeAi|SA=8}Mksc(SO?SF!6EiZi&uB^KPrySX_&5A{tl4Z1uHT}qyKoTUe?A{r(*jJT zI+(J=#g@-)wmvIGnLR@kpAvzGMDBgU8y96;Ma3ym78iN@gy%8gviFJ$mI>d_MB!s( z=Wi8d{i5J*Arb;r_mn91Bx*$E-6C&^2;3-2o)GzW3*UAzZ59)Oej)A_CH=znjF_rnwY#yc%Bw{Z!s6HLtfJQ@VtxE3Zf$!@OD#Tz8(y?ZF3agxIBwe8{gR*$)sESI%X@TTNPw{(y}$uR@1@YOJO82=i*zH ziI#YH^_uk!AYfh^OBr=pGyKA44?GFjpBckAGA>I{v zxW(a$3*T1ZTDL$Hyeov=o%;=xa^=1 z>qPEWk$-fl@OFslBz~SX?E@J$&x?!PUkfiP;R>=22-o^ch5ay+P!D?LSH6-PkX3YlV1Q*zV<%gm<0D^CW_z+~aQ(Q|}h`S~2Nqk%Km6Zx!OG zD2)s6GBG(J^3b$wG}Na=;aj4>b4{GZs`f1Wys+4}S3@ZVD-rV@ZyO?Xsb6_DdvEAY)u1fvaS_f}Cw@Pv>7T8kZ1$@;8tJzXzy z5&gSGDM?#IAptU%4ZTd!iZpF6<2x$ELE%k^oW#?j`k1iosPLT> zd0!KDze?;CZq(&5QI!xSuM5vB!uPbWzs7S3VvfK-DIp3Fb(GtEX_@fe&C1F-DavjT zIS{!~CSs17okD<`W%Z$E zGplc_t~xeYv?R2_W2_;CVjNOv-VGS1(17F+BX=*X2uIWG(e;08i0O)UM`In4&d&et zAd`T8yj2Y>_{?v#9pB^)$JJ0I@$F5W1_w9V-PYqk@xfiCn*KH~P>yQy!@fGLM!0Yo zANCDnM>iaAYFGBtQW(@S20J-5jX&&}Yj#hmOZYHEU^pmTFACat_8oR#Sc+!2P87ba zNiMs5Ifjy_F;!Ix$rS@Sl?IBV6v?xG= z-S&0al3YjS*x*_srhZ1uzzDPitvx8F-ZO^m6=e^J>Z4)`=DoP6yg>x*Tg9xSV$Kp# zxfad2Ofi6}u=-Xh9ABLYW7G4gU>h?(0xqfFd-pD5oVZg`64N$v|u0slmlwTbe* zqR_L_z1-y~Z^Ob0CG%_xg5-yF&+;Ir&`D_1Xj}0pKB*jw@T1U8@rZ>R1+kvK1@iOB zc*Y>O@{*6}#|(n=y5foM$kO&mccd@c0<@{GrDLi3)O>JWyVcaz7H#REr4GDo5lnQW z$#h3r@m@vT!rKku?NQ9M-I3eFEojYFnk_#wtuIyhqDEh|D{X_S$|DWJ-H{z}tLav3 zH$aFVlMc#L+8Q;+$i!+pdb%RDolS|pNO!z;RZmNz3yE0m${rN8w&CjQ8XDGwHq~CY zC^#>8-OgD2g(F>&Sg>_=!;aq0o+yICS0GkGrH_Gn;mfhw-oBn&v25fMu-7$V< z8sCt{*RI1oZD{=XR`fMtw)QY@M&Og${2p}-pRFcK#)fx2D8#vd+|tvT=<1gAmY!C8 zX&Vmobhgq>^h{af(UveSV3cimggU*A(U)KQ4zm^XMPl?*8o9kM8jr|QHREI9?R`Co z?$!uD+l^0hvplh;?GaTVeh3_26>sZoYL6|j!d=K+RZDA6f?wB0p0Z%nQdXtYz^JHW z$O|RtN|*4}@yN%dtxfSJE4&@|vN|KCNU{nREp%3b3~<^znN7I2sTE)UPIMe9+J7OdCb$wvKrX}uw zg?n#{>_q#}10*7*zL##r@KJNd2t4$bj;8L`&PX4<@9epq^$^7e$k89HF#DQi`0}IZ zVDg*p;qFA2(w5`+SSB2W(cYr%EghX`59nFSV9$2Ao5V8?c% z9mq;-gWpZ*Y*ED3(N5MfYk&h13e}8uhHvuAVF`l-`X-++ z;4vMWa6B&1aJGhuI(GgFE&+HnVm-qnsO5~lqW-~W=AL7{Gn%bX0D=pgLna$7z`N4p z$xoetJ_mF+o_Y%KVIjwHA=0GRWzq2oS4lU|pBk0xkZ|Gm7eaaySVzqYOM01Qo+mZ( z_aH(0=6O~_zfa1Srk_tW^uI)6ymCD`0i7GQv~QM*=W9bh)b#Az+9x$V`{wzOrf1)@ zAJ+8jrwm3kJ^N7y1V{Rl{kVh;I^$*@`LLnSqZ;(_$~#d#&XRUYER5b~9pl-#6!O@j zJF8w+Njv3M_Vc70w7hw4*krOz(u*zg`#**rlXkGdV;+gqj91ZK-F!+pU?dexLcWCU zaF)VN@A^|o&y*$hl?mwlHda=XmC8Swfc~$b2c<;jX(Rj$;1L}&al#Am!X@D}-a^yAu2_EVU=xig-89m*@?vr%REvd;HSZ72Kr%wK7G z_QRAT6WHfX^zrhYGXb4<$Qe)5Sj>KuLKRNuf9<$re%~DkNs8iytJV|Njf{@d_^(s@VK;JWF4NV=n<`OQqqm~ z7+j9}3c&w4oCq8TZ{RaN*-rrT5m3^Hij{D!)_GUcvmcZD?F9K2!{PDbGYfS3liiOl zk@7{>mY~Ye+=Be83EIh`3GA;0y%_atZjb_%$F&p4w@UeH%iKCO<9t-g7g^cQGV{Ts z@yfMN%V$4v{HY1#d5@R%ZfA`rUj;p=eRhJsp1{rh${)$a^t>vpv`8d`)?+ zrsn9p?w)uAYk+VVh`bo*btwofeeqa4fiJP`fFCyuMc0ddi8Y;o5GvwSFCTK zRsIH4xFwd5;gJinI`d;t{0S)iJ69RB?92NMrvB}$4BGGe9VuiG%Meaq_GePL;?AHr z7C#ZW)Kx#bl_6tRJ#w|w!k^sAU}GVX@vB~G=EC$kE4`HDrU{m(X%Pm;Y;35X=gMHQ z1*Lb6(z`Zi{SH@#j{Nno42u4Jund|h6IXI(qX!Khi+%NDTv+k($G>u_Dx5j$(a!GAsuqMLX8F029mRJ9bS%$UrCXm^Lfp^Fm3-b&yaJiwAK?{eQ zV_3uSH_OywO#kRvhLB!SsvmC4=ETPK)zlBEWeBAA_!#}Vznzd*zt(*N9mkM7`(nnXA>24 zsux=YHL{{>;@oDe;fM-ekL-Rmkq$kEc3`(8jVTQ^m?{mEhT*2JXbW=ffi0YBWCqF@ zs@|%>n9jXOI2&nBv_r3{yB!mNM&-VQVKq1RMYbD`+^*9cM9+}5`Z)8~f0Z;D3b@q4 z8b%#exGv#gpm|?XQI)Jo6P}MhJVTY%U##^FtOL(^q~}ddTmIEru>6Ce*@=eeLSlqk8J;&K*fUx>GG$vzJa`+=0P7B zXQPiREqO$7rijVkymxA#dCycypB?{?fx&k=jlOx0)4dWY}{5SsWM}l=?^v!#!2A+lWab%gdz673A-(3G2cp0Aja2`hA(7uL*Q{SwI4JiEK{NpVDP5g~nK3Pc-qi^;-41CcDYM7n>_p5i<~WQa07n=9lt~0?8}|u#vTqMr?4^H&`*QGwqx8h`$Xn6%)N)GW^#=vgXQOZ6zk}n{Pwy|)DU~y6O_eZu2J+Wqocd;c zen#u-7dg{bjGiHIzm7EHe^9S)a_W_YZ5oDF2x@3Rq0WE4A!umyv)6p|m4|^9T3=De z&K314ePE0vQ%28_)jpxY#^9q`|5%m-+4`4&kWHhN=1t1h<5>+pTbBC-*)(dFY*qTp zvI3qhyH4w8$FH$T>HE?Ho5GF0fqb#kq?Lp^Z*5m_o0Euiwk+|iDwZ09T0f=zp8;wR of2KHQ{_=rl+76QG<4CVcR-27a&B@Nc81(VD8vp|xLFGc&;af-r)pk%FKhrYMN!p!gvE;_rw$ia#hKAZnfQ3YgPG zf=kQHuGHyR-a2J+Dl09>d(}>z^i-##oh<6)X%M?v?8<>wCZ7 z^{ut{UVBgPPxQDE7pLdfyD*7U=smMDd7iE8~g!z9`iPPDODnqkZp6*iX@ z(M(gKPT`j7+jr0yYCNH^mBrEM)eNX0{q)Jq7U=_1>S$dWggMV z_KQyX8OP4DQZbWGI(% z5J@5A37}TuBKfS-@IabxlfPz7Wfk%HHmzQzjw{R8t=q7i0I+Vu`c)uhr4fH&1EhiM zZYiFPlPqk3WXdzZbSbU3DFUYiq*PT8?gXxED5ymbcJd;oM%r+4%hZr1?`=2 zyR?`6Rl1W#vtL0cP7(3`T8YA7jT6~$qk|^1#YP9Oy{4A0&KB1+rM=b|L1`4b&*Y<4 zcFE*mpO~WdL^cLonmW+4YV-&gyZhkh```(E@C$wL0e$eUK6p|eJlqHOD0utRk+r&G zmNuFvr=?FIq{0Dsch$dTSx!qq-iiED&byJve7k3GJ{Eb*vpb(XZgtK10gC8tjt+2= z7ZF2$?|O|z z#wOAxHZ(RV{Uku7cH|syL*6nlCEnoWnrLq*Z!X}nZ3aN$<&gJjaWAWiEudrBvDo>M zFC`Lk9DRr9F?-xJ8e+@hrqeujG%hdl11P2`*gxZQh3mht0k*N@8plFrAP9Cse=YbP zDvSV^Fw?Jfr11mw>Jnj4U;d>?ypg| zS(I)AFDT#*XJ5@z3iySSeQW;%ZED}|a8R7I^G?`(pExsx&wpUiu5|hm%XKBv{cMga zg9cfnD?2Xd2T1jdIBhg|Kqnz_5_{XVOz6D9hP#t!Co6Uz5k8A&Ke{vNt87R@27Q6e zO(>$xtPRG$W9JeI>9Y2?#D{3g2e=V}mWIj`v}ZWX@hr|f=UecvRw1388c-};y3VXg z+4KmTlr)movihVulZvi$r4DZ>U&0-d2o?$h9)_{bq@h&Dt|S!&u4lorq~DNbP+Are zKL!>?rZ-KHdic3(vK*Rx6HJ~&f69V{@-3k`H-o2Pi^W^D<^L8mF)0vo$pLg5{0_{; zAuwzR)1a6HgO;~Xsq1eE-gna*4AfpzLQPadq1!q%eh~mvo#p+HtH1>e-9eXO;xDa&>>;9{tRx;H1z_aNA+g$I$U|)prX^< z6hPhAKmwjlzi9;;?*0ayi1Xk=_)YINHGCL^-{NXbUBAlm8~C)qU@;J^hqkpoUJPQ6}_gz z5cN#cA`FW0F(T6s^aNh}Us(=vyeG9^KwJq33eoo6QffHKU6>p5A#OMi@DKroy;zRm zsqioaEO6<>Wn!KeA>($q8-fqzZu2h4yTv{!2h=(9$vvg0h93bfxMx_Qtlwuqm>_K8 z?!Q7c!_y&7uxTmGqTwX=a_yw>t6!^0Skxq*K>(B34aQ0mbNVLX1^3|w#VP)!Nh08E>kEU+2TZwt8eHaC}nZivrP-Qn+n?0b*}n^y3tV=vdP33pt@sWl@>b|WB#_F)7lP}T4NAw|IpuuOBK`z+HPXuLu*eipb; z6PnjbKB;J1zYJssjHgF_F_bsx^PD0mIL4(;pp18~^A17t1T_+)A6uDdClfZ#RS z(nHzCRQtqC(D8;A_r85C&vtZP@ELQJ{y&0{1Wuef}Yr(HRyF|%z5>gsvTEh z8F<43FgEqw;?`*x_8o7%Y~Xm`z!7+^gvMVCfQGT?(C}f2Z7q9Z`~aN#IvP^Hprr`FwMD0eIdYS3O0K15UiHz9BVHeMt88T!a?+DCQcd}ug$zc(E~+L zDwtGkoB<2)C4fEb;Ykm|MogVNk`}bjo187sQl@0%UeZKgM=?C(xtpw09WY!oKq^@jQtaJ+uQbL2TB|gibexU?j9IwOke1 z#v(Tyw;n7SMc-kaMd`vg8~eJbSctK)u~Wz7Xls+ojd6CQ241A}_)Iq#YF9F0B- zVrwYoC9*{5qK!K*Z`6wXT&&|y>%Hf?g(^ieFye{ zlwh0!VKsA1z=R%& z6zBoSIFWODDHcVARtzkm#T4N^9CEKkeZ5XqyebCMGy{*ZL~wx%#h|pW!A#YFz!Z$L zcsNPQ(~|%(&W?KlGOW;rfIEX@06sK6r=56qo0SaMzf)u(M#W=B%L#oRE5k4&O}Lv z(91UCWgr$Jlp%Mo=mQO*kxiJ97JVFsktx=ffmj!^jWdP^mcVd-WP(%%w@e8?&O{Ct zKLA3c3S=@YI*2Su+n|rk;!$=FcQnP4F*wTU=Tqf z{sOYI(QfG|2FZY|qCI9GjA7^P17Fbtx#N6kGcqYWq?ZV5z$(U*bOJr1w|C*kJ%Ud> zS`IZ^;hG@C;jgYH=2+=y3p#!Tw33)C!W$&^gzf}g^(ow`Z_|JTsTWz z>-MdQCiJz-rdXVgAT>_hq&_$5(*A~@E?{~ifOGH!L=s;*)=l&PYE+xwZmhea+DMwHoZ_u6w{OrVy6~lPvZHDpfX|s0e zMG8;R6jm_X&5q8?p%>e~n)ei?J?#(9-=T~63QI!#?Y6~nbcFInFrxxLW^Ssfu3cW^ z^ZDS5pl@02N?%R+Dv&_@TUvTHcuD%L&AMaLmg z{JZFo8h}VUrA1;i5%fZe7==WN6^;9(@nW3RCMF*e<6ak|+Cq#rD$suMcq>Y z;chBMFVb08>TD}T5n@u^T#p#7vzAQ~qjYbR_6K}Zb?oD1LyWg3%VL)2W>u80U$M?# z?W?L@y}ky&kFGCY=UZP}seC=H1EvOseagcYE}v@v9;(&;{PF^t0iRjR>-;NxmF1h( zk~JHaZ6ce>ebxR=H5;n^)nJRbZ*%!3MUBZT@@8s5QLDTf!}^wQSm7s?>Jj66SO9E4 zsTA+D*siGbN0r`GDdC4a_cT~hY}ZwaR}How^{mzZh}EJV92Jm|bXL03!Dg(KZhf`Y zB(q>Z;d`=|ZCsg2;mhtyAMIgum7^#|Ju1RGCvSg;UVt;-I2FfRF}5!FAzrKEdUa;q zD!zr4uX4B^!&d-kuP6kAa;urFb(I4SZAVs3p`+OKRfp&+thFMUUSls-*y3V{c3o+g z)e-y_PhaExd%W-Ay^LSaUAa(258NNG;SHfrOJJp|9pzb2Ec|xvQEzQT3=eUUXiTVm!?OE%jZVZu?0R=(x{^#i&z;SB*3ss0#t~`)p zp|oefS#_RsdD?5R7k6N(;e{ivs1>yZC(-^0(2DY(+zY&gj!+P-tbYU?bK0(!4{veU zPNHAdvDR2NQvtO8ylQY*t-)kffCox+r2T8e-+MuJQN@qLM_+7hqC!9C>Hmm*RwQI& zfhqQ1TL<9iv;U*+4_H^4$Tn6wn59y0vqJHRx-Ybejpow)N^uxC)}E@`CM!`L_kR&9 zLnGH(RVt`c)b?);NE2LGU8&zDYy}HmfBGzXpdHwY7XVGcRiWP@Z`8xo`QJtDot4i} zbHBS0tJv_f{kK1g@~0FRO)T_fXJlvG#mcLeMW}x-wZB~T1U26JhpF9LeT}jXL2S>h zSxN=3jvc7YuxfA08ePjS)@E7{s?*o#JT-=gr)UJSQ%(``StafYA7bqq}DO<2LN8~L0GZ)7?{Cf7>)8muf`aY`!d zgc6ov>=jk6Lf5sKMKa}>$_mF|mv}4sorC{`Z%)OXZk=+Vw{cPHY53CK3Z1%C*C145 z_-7z>mMCl#1ny`MT+t=5uV94U0ZzS#g+Zm>!F~lR3{L3K7qiz%!rHmK+n|SJX&9s$ zoa`WMk}_BlX~T5M2|ZFKdzEVypw!1l%W;&&{hjAtj=)937>iJf8DNuDB5Vd0=77ww zwT2~?b#==YKzG>3@M}5IOBwe6uRpKaGL-)Vhi1)HbZxCk5Ol(K8rB$FtB}=CnmjO7 z9fU%+TUGw{0K9;3T7*l}A2zrIbCjX32o>agV4BL%yjtKD#WBLwPkOJPG_D^Wngd$d zLGZESVDViKlrY9jAcdF1y6^~7yB0bORcx?6{Ff{iOc4&|?y{sT&>uDLVbEiVnKc_z z^|YD3#BJqi%e{i-2kq88LHMB^SxY{ll95Qxy#~9-FMXSfqY z6%9RYqdtepRyX?)YOL{TR}c~!vuAmlbN8aD;PL&v!Q}Dhu0lL$Z$~JwAQ%jula9e* zYayEl-&^N|-*pSZyW~6YE0}GY%>D>_ZByBLxNXY~xAn>1hOyDb>>Jn^y*#_~r(p2B zKofhC+imF$22av{4eZ6yER5=DzM1Iptq*wo69XRK`9K;Z*~f~OUYKtm_r$(&m>CLu zr?J27yFdyR=n^Y!j3J1CxBeXr@~o~OLdPNWI{dGFG5ZhX$2`jR!=jj96wbpH^!U)G zdEzB@{TtG4lROWBmsD`nL*Q8z9O8m3$8Xq&U6&jVMnyY^vQlunGQ`3Ef~l@Fb{AH= z-0Tu;cctTF^m|v9ZPkyM>Urt;G3bGu_@ydPVxJS)kFX>*o?V44u?NKjJB*3TVE18B zTspf2JK{>%$Iyf06AMyD=PV`~y|K>U;FB&B9{P#ZM6j zeGjGaS?oHr#Ama&;obP5@xJf4(kYL>K&BnyMhlfe4|Tv2QdtqCC6suTEL@hfyTKqT zJ?EFcA0Y@hGM+SI>VccLgF*kqUNkvF{?rBW7nuFCdVS|`i_OH1s&0)eHQsF$a>-Hj z6Y$+ZbEz1I%>m|<@^H}p(OFvm8JL11jk8bin0H$35!twHAnGD8*gpveh3 zI!XDLhQZBz=zp{(LC3MuY;Sg}t})b#G$;(D$7G3@!) zVH6bGfQU3LJaD6f3Z+~yL=BqyxXBG~(*JLPT19sFrZdDRARkTvY)TtTa`= zvw_bEFylUdHG@j{42!9Z;>D=*HWwXT@1{wAcsi(T@2IC#)j$fbr_q9|-h_Sv|H2)0 zy%Vhh@AE`5G5O}>)CU_U1Qvyo*os0*Vs@(gwJXShKM*ijX+dmo)$m>!kTLiAWPmo7be>XnsLK)BF#iP{;ObcI?`=Omm@uZv>oY1 zq=%7yjkFu-(7y$Pw~_uA(g@t)>yQpZ`Zm%jNZ-2_4AvpN{B7S79#5!*yO~H9I>o6fap~oU^N4gPmvL0m~sLXOmhp!O7J}Zeacr`15Rl(`3gu(yB z^rvI`LSdx&MX|_a5GO~3;iU#&t-=TR7Yi&qftg`2_AV&IJ`yUi&xTFeaqMw;1;-vZ zj(sIu!G0nTd8nsvG_ zbv!hp0xpx#f_gpQ!dD~5D^#b9+gHLH%VjwyblKvUE7Zj4zHefmieLSt?x3OR#RlOCL45I#Fwv!J41PDxfq!0q;*M z^2?c~fj2z3UohObOS=eKMK~hHz>|e$;~Ux~e2I}ms}OP~sQ%XIIkdmf#dg7|!Y|lD z*gZam?SOa2=glwG>}b1DW1S6Hsc{Eh_1FYk46epgU4$iKw^wiq;H+f7zz@+8X@#Jp&l2m3wwY&m@G8OCzJR`P7( zb1|yX%UB;Z%L@XVs`zmvc2t-Pb^hX}X0FfWU^HYZ~H*B3c$U7AAFj@Ck#C38Q-CfN( zgk;$n_5@aMDJCX1jNDqb;TDkNlwuqU;t7<>@i8=CQL-{ttRvoz+REdRuaSm4nwW8s zUL5O%D6^6;zCt=%2`)5}M?v;}hLAFzb9x!|1f|GAfn~BN7BA3{doAhjb&~2;HJBVS zNK~eYE_9(9l=e4xN;CL7MVP_E$?_1r;1!gawzn`7v%HTonZ+3=1+UcQk}t|xSzzKt z%l|`66=!6@YF3^#l%tO2J@Q%|MzJk5q_QZoj>?NlROX27)~d;`rSWnDrD>T5H>Rab8$q^@DAhdl zIx8B$fi` zm_FQFgu|WTadH_RjPf87KO+4Fi6BoUCf%&V$gzuGNk&G@L6deN#=vdE zB;32H5f=GPL><-j^+JSIexGu8)GiewqWM^MENg5KBJ7+o%Q+&hd_)ZAoQ{>%D})G# zk?a%k9QZT(6IY?VNpC-iSQw2HO_FTF^Vm^aC72BSc@P}Si3#J3UZ&&UBy&b~ELegP zMWHmz@==l)6*70C|1R_?W_YnKlPQXWD{#74q*RT1if(Kv5^T;GES5!SXb*o~BKi!W zW`hl#DY^np*R_w(M6UZA?U3g$I`qRjpTe^x_8!GZjHDR4jx9~G-X+{5ma5ftY;1~q zKnh7_Qg%N{vecLu%v9HLxXIl~vJ7Jx%5)vwYu%SQ@6h=5{0xn!n%U#78m@Gp$^8p* z@=Vkj9$-&XLMDceM`3(@b%VgX#TGS}&L$!8wIL|Oc19(F`xXUQVOKSFHo5)etKOmd z+Si0?2APE6r?I1m5ji*rB3h0)4_=Cs%dCdb+1Z9NYOFK1i%Xo<^tKi|>SF&$fvjEj znLpRVdu2InSJ$1geT==)wR7%fUDzhdUC8bl{H%?^!t&Il1EJIfPt zCfUoRxxb@6R(!;U6r|{dlD$PT>59aBrn4`UBr?=hBq9`5CPnD-yLu}o>7UslcT%B#*}=EcjN zTPdupEU&L#*|4m>x*lF%m^)-;ZTW&_Rn>w^d$-NR8KO2vqjUM?A@+(UZpJC1HbWE7 z)I&!^7A(h4ZJmp%9_yx`qWv0Pa`Af>-UqY`OGuOpmKp~X)W~=RDyhl94|Z#6%1Z{m zDF3WkU(jwH>6-bc8s4knv>B-N;2%XB1%qoHt{m;HJw!|So+h0Kr6{%Hw-9OzRf6wf z+!=yP$b?O`#Vi^=s@=`jLG9uMi#b_U!9B^_E@1eH@payx;QeLZ-=a^4t_K(`5g+_+ z?FrV5gm5T)-cdOir5215`k;nenYU~W51j_u>rqPO>`78_Iu)pG zhO0{w%e3=Rg#=-{ro2$gf1)N}At%~y#oyDs{aV9UYkOmlw&eSHdLK|fq8oM0xPk*$ zX?Hp4O&KlM=y(Vnh3Yx5cFhF$A2l+Y8|4Hwsqv4)<&YX#gw@CXpQeze3{{Q7U> zM_S$bWaURqp&cp>HaN6C+4y3iYI4v5pRXUSWXw?6P2k!v#(4N?mHS&5%-t|rfpV2S w0=qVhQ6^~HwSxP)xgl9OpdqQ?@{TcfFHyCBuZOwb(Z-kRRkn&j> diff --git a/minishell.c b/minishell.c index 59c1f88..6739710 100644 --- a/minishell.c +++ b/minishell.c @@ -15,6 +15,8 @@ int prompting = 0; int job_id = 1; list jobs; +jmp_buf start; + void handler_print(int signal_num, siginfo_t *info) { if (contiens(&jobs, info->si_pid)) @@ -29,16 +31,10 @@ void handler_print(int signal_num, siginfo_t *info) } } -void handler_int(int signal_num, siginfo_t *info) +void handler_restart(int signal_num, siginfo_t *info) { - printf("test\n"); - longjmp(start, signal_num); -} - -void handler_stop(int signal_num, siginfo_t *info) -{ - printf("bye\n"); - longjmp(end, signal_num); + printf("\n"); + siglongjmp(start, signal_num); } int main(int argc, char *argv[]) @@ -50,10 +46,12 @@ int main(int argc, char *argv[]) // gestion de SIGCHLD struct sigaction action; + sigemptyset(&action.sa_mask); action.sa_flags = SA_SIGINFO; //| SA_RESTART; action.sa_handler = handler_print; - sigemptyset(&action.sa_mask); sigaction(SIGCHLD, &action, NULL); + action.sa_handler = handler_restart; + sigaction(SIGINT, &action, NULL); // variables de "pwd" char initcd[256], currentcd[256]; @@ -62,6 +60,12 @@ int main(int argc, char *argv[]) // loop principal while (1) { + + if (sigsetjmp(start, 1) == 2) + { // si on provient du jump + continue; + } + getcwd(currentcd, 256); printf("%s >>> ", currentcd); @@ -70,12 +74,16 @@ int main(int argc, char *argv[]) struct cmdline *cmd = readcmd(); prompting = 0; - if (cmd == NULL || cmd->seq[0] == NULL) + if (cmd == NULL) + { // on quitte le shell, EOF + break; + } + else if (cmd->seq[0] == NULL) { // ligne vide, on skip continue; } else if (!strcmp(cmd->seq[0][0], "exit")) - { // on quitte le shell + { break; } else if (!strcmp(cmd->seq[0][0], "cd")) diff --git a/readcmd b/readcmd new file mode 100755 index 0000000000000000000000000000000000000000..6ee49c7ced48f923814a75361e80c81d16667339 GIT binary patch literal 32872 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 literal 0 HcmV?d00001