From 59ad6bda139a52dbb50d8d29ade08f738ebb7850 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Fri, 15 Sep 2023 11:20:42 +0300 Subject: [PATCH] move to using getc --- src/extra/chc/chc | Bin 17088 -> 16992 bytes src/extra/chc/chc.c | 5 ++--- src/extra/lc/lc | Bin 17080 -> 16984 bytes src/extra/lc/lc.c | 8 ++++---- src/wc | Bin 17080 -> 17032 bytes src/wc.c | 15 ++++++++------- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/extra/chc/chc b/src/extra/chc/chc index 61779684d3b673d4ea4e51bb76aa946427b2d208..dc790412aeaa2172aadde846cd1bac9e9f0ad30d 100755 GIT binary patch delta 2250 zcmZWreQXp(6rZ^dx=TOz+Gcx2d%YGY6ncBt4~_!Y-jym_B^m-n8f~C_DaPtauSSTW zB`1kzY25On(wNAR5JUek5f6zr5RMcz{9yzY)0z-lW0Rs1C`v-0u)f)yZLn@L`+L9l z-n@DDX5MVmhv@j*R4a065;2~z2_(5{pz@RX(F~JDGX{R~iLG{%wSq(yw_r1wg(T19 z6b7hA?B!Ms4pLc4R++YBh+}GqHd3#~)f!h@80C|rAlkPUT)#iFsPL?9OS87`*v9jn zgWEGZI^iw*5_cvBqd4XnL64JOM5fDvbM|uD4HI@5mN<%N9Y_wDK5e`Q3~jW*0R@f% z`Z&`;?`o4J4Ou^q6=S(?=q+qvgevU|rXuXXK$xN`-JI5+gL zOzp&mf5dp3nNyTmX1pXM=H4SRzjm(cE@s?D_8@1E^}_{|lBmlRj`G4-dOz0-Vbd_B9|cNo#iiPZ3fa)7TrW2NtV+2L!dhZr*ebAycQJO?vE^NhWUBbzSWb z-C*)&Q`VXM6v}~g`v}^G7~hZlOSYG&O5B`UjkNtxI`{o_?wRz6+825kMx^r1AE1ZY zpY1Uqq@t5vSmq<-9}VNQprH0Un;6vJjTNeW&WCvN)kEo+sE_A*dRYlaIHJGX@UL_E zV2x`5y$V}gB}=cdR_R{Ws>VZ~Gf_=U#-b?(%O=^6WJ6=%(SZgRVPrrasAQqL3{uAOR#O0XHMZ_33Z zkmYDPjiVR(y%i#!N%A|6Qn=t zdFWBNUZqe1Zl8w^L%mOtG~N|fcWJQC=aI&FTk)%vU=RDAwT(LAp0C6uP6cE);nz9O&;UCs zRhS5DMc+uZj0s1o3+*z_cpaGriR$+P={fUQnQeHD-I}AX;Cer_)F_g5O`bLKT_CVTjCA#id%P_3wOwcY4!5^ zum!%V^-zGZ+8(MxTU`YmfKzoc{TMD_=ucsyPA(h9ITFqyrDkvkU*i&wb=d{gD;BqW z$f@-~#5>D)#!#O}if1oRt|pV*->P^YH~az9xU>U~uaK$C-tJ|14kVlVe-VN}gR*l2 zTFc;+EuVHW@033nqwvGZR#;ts!uSTIuGD{TqbuR~8bu;jAvg}h1ZsyZ#<3W@Aw?SH z%tAkOgcMQWr%-^wP;mB4T4z&(iBJ!AUPpr>YP{_<7;FeiNzN?X1``dKk99maJ^|iF zMYQ?^cck%K8U}9|qgkJNXbT5L>qs1hL1eT49l%&PINLoM-+?H2BRWlkw<#!+pjqV} N=x7Sk9vEz@_!kc_1Umo# delta 2478 zcmZ`)eQZ-z6u-Ca)^;CVyN|pUblre4HeFx4tt$(3>)V#`X7~_c7=mQNKHOx&1|0@t zSer4kIw~C}ME!#Vj2QfbIGmDUL^`)2F`9@mCMXd`V$z8S8yLX=&vV}g4x;zv-gAHF z{LZ=e-Fxo6SN73(KaJTlzq1j!1QbEYvZ3M+QcNZVnoL7Kxy+M#1xn*tf3MGhy0JqnCf=~!jyv-seNRaE~WYZM-Qp=5SaB%*;{ANm26yn>eb}xWu?D# zto?fG{F4EAUBASUj)Q0;6LOS<5HpuH1ep+t$Mc^j-$jh6P|vauzi;?Fw#b-qzIIzOAWkOGhW!6>RC)PIk6# zX(4URojZ25lD3Y{*6llBSyBbOl(eZ=PjvVZtcHg@_3v=*dU^ipB9fq^!%UFZgM6mT z?&!eZ(UY)>d*(5_jtnAZMO$Tc!^m)^q90IKAN6cg25FF6a*s&ON?m_{F8^} z{2ZSYSY_mB>PWXyZ#rmQVA{$PGAk7{L$USc-gY+M+3Bz(NwHfQxqr8_(PyW-HH<_* z@-v)ugfKheZ(Wb#$;a@S$MC0*;S+OkJqvhjj)LLCkKsdeai2tkyBqf|76KE}E=IB_xRKf(GHO8+eD7h~TO-#m`C4u;=EJjzlXRgoKs`3N`n$1@Ja zGfu_F#X=0>%_j_tu5l9pa%B9PF~doOz6tsn`!_N2 zN91zi`h8rI{&;V~6R(S0Ju4fc-fNhiiCJbE#3(IdnG&-nRqUIvdg7Zl3onc(-a~tv zoEO6LE2E43WyORD8yX@%3XKhsKZW%|bt{YRdS9Q(mt5XTSyZyoj0GxASr)g>%a|3 z(#|uINjBCX))4ALD7E6o&VH=z7=15O)?2Lmb#)f|8+yT#*Jr4+xOL4bmb_YvU9ebd zEG8k9FrPTqPavFMn2sHSX-;lq4Z+F$S`(Yqaf}Bu?yQlntSzZ#?MCQ=cT0HNXcqG! z#GwfEx>(|*18}#5r*0^6Iq4;6aPhW~dK|TTDh?5s(%wR8m#r?=*`3}%M^4+Y)B=d5uWqZ(_sjsIfKOE zq=$0^)R##aQEBzWMn+-E(?mlclyW$4p)^O&kr;F%3PGgwfQ_g(pyrniLK$Z+M5x0X zwF?@`c!zd7YMfoFbr^=qSey^bc$y6t|ATo3nUt^*^UE2tvYgM<)=G<(ql4GVbMuGQ zrPl7gOx&7GoI+fk;9fXg?xbUIvAma#!bWc)eG6tV=n=U+3t=xuzkxB-{0t|(oFjq$ z^55kt0~yru{$l);RNN^RJ&*;zc^5ZKs)K3oJKl(LnU6FpnMbSvRiTPP&0Sq}?R|L~ zx+~b*$=Z!_`wASb;0$|^54O@Q9Ravd!F}ut(%eVi#Xw-i%7&WSrczhA{5V3(($*~H zW&GDv>hi+*rN>5kE5~%S9fak)&8@DNCNDu4wQ1_hrO8|vV_a3M$pBD4Z|+jHT~O)w zJ 0) { + while ((c = getc(fp)) != EOF) { num_chars ++; } printf("%i\n", num_chars); diff --git a/src/extra/lc/lc b/src/extra/lc/lc index 02d05d233b0194e863458ade950d1fc6c4924251..e819a67e0642db81b0588fd652bf3c1c9ed1a3b8 100755 GIT binary patch delta 2274 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 diff --git a/src/extra/lc/lc.c b/src/extra/lc/lc.c index 01c7043..44f782c 100644 --- a/src/extra/lc/lc.c +++ b/src/extra/lc/lc.c @@ -3,14 +3,14 @@ int lc(FILE* fp) { - char c[1]; int num_lines = 0; - int fn = fileno(fp); - while (read(fn, c, sizeof(c)) > 0) { - if (*c == '\n' ) { + register int c; + while ((c = getc(fp)) != EOF) { + if (c == '\n' ) { num_lines ++; } } + // num_lines += (c != '\n'); // < judgment call, adds a line if the last line isn't followed by a newline. printf("%i\n", num_lines); return 0; } diff --git a/src/wc b/src/wc index fd53c5659a5d2905be64d6185630e94aae6a53f7..c7ba97017285d0376fd2b2a8dba1e2e4e56f5eee 100755 GIT binary patch delta 2331 zcmZ`*eQZ-z6ue{1Ovodq=Dq62dvt;fbAx(h~(gabv2C7edgw_P7(dQKU zoEafakI|gPrmgk@(<>fAZYtxJL#chO51Ho>+nkMr+_H_ii};fJpZMY<_(wN8RZpX(6VC9DH6LReM>D6Z#6JN&mE4|XHG^_-j(HVC_cj=l* zp0YEYC?9)EQQn24u0nbaF1tq2 z4PeYKY;U`!D0(3taizoXOc3w1`ViPi`Sjp#<>zs z<~JBw;@vU6;PniMb9S@d=Zhdx=HdIYSztoMBq3oqS>~jjaJkGw9U!`$^e{|xd-$-{ zZQ5%{`rs|MlP6l6>fKrl{qE`9uo3RM$8dv2$n&&Ne04q3W9K{$iUDtw3v>|IT!Wbm zt2CVyL%uiHfIk>!dZ*AH*oeqRcEcX8AiA_~gqEF341~w+hrA1E7^DgTla(rR4Fc(g zRfxh6sd!Jk{)iv@l^i~eF7Q?gbP+UFdPM!9(_^pJY7hAr{y!{PQ7B)8kA{q1nB)&*^~*Z^9uVx4QN zAzW)W=}ii>R)9OTJg=XGPCG!X^O*Hs>4TYd$1!~|;DKPLTwl9S2z2yq1Kwankxfv#HG*W9V+tQoVoU5 zRqn}8Hhu#i=x4dD7*flFkOL%wI>T&mQa_D;3ODsUT?9@8x7%odEJGF*m_i#dNg553vYvVm+4H?_P&Hoei%1j~%o z@R4zKyPoLqN3a^6_SEDtHGL{Qb;U^7-C`lgYePQ6vRYa&TRqvX>TMI5T}Qf6XGL35 zb$3W_rh<2=i-r{wQLh_ubF7drx*SXYex7S6y_wxE)9|0B!ECJcGb*ao{YXSUZb^#38$)vxeh z6+3>Gr|8-Ew``uZ(OWpr;U~C0ozk}F?Z>L8n_@5i z6?sIr*yrbl)4yY++n4P*LDG3O{G-rumin*W9$>m(s*GjLKE()_@|g@w=i;kupl*!S zBo-@?+pJ>8K(=36y+(LVSks@}iVStWZ2yIowXuM{fDqy3n&{6$eNA*ks1u@(>%~~% zgM30()aF0InV6HI#Otng8M|}ir6qS|`6~=sjq(J_0hA8RqHb80n;3pimM^1xfU+9# zru(wI6VB#Nqe&RbokZhc^h|5-x`STG(n=O~!dN4SM>G)S9IQLBHsk1r8NSHoi0KyE zvUlnQTkZ~nV4KxpTx1LCy2jaNRoQX{TXv<*QE4*^>BNWh3s{ffn5oOY#OBzcdutpT zr>3Vw`b$hnud$hH&auI<;Kd-1u^xico+>k&z$FX~!#-EylIxXpi}pISLQf&@OuCp4 zA#O#G2n-hH&@LD*r&sr}PZf{m<2V?2we6A_mC7t>zY?jNtW6AAkKoI9v~>z?I0NfK`QLo|X(aS$w;pyx;& zHWqP+M2mL0iTcWFUTh(C_+I%+6%04HmRIm=s`{d4j1!uGF&ONjsiOp)}7O#Z}J4@RFKV>a3yH zPVkg+^h?&dPa?;`wmPT{r^p|m53N_w>eRW3d5rZI+{6(^*a#L2?mvst3huJJntnB= z_GbZ~@KkXl%Rwd*$C#03sNULwYag%zI8esX>QuWj)vkxZGS09S`QR*a=}1q4mVZcn zW52Y);Nsev%BoP2w}fnMOnq_xgNnSRiO=V(*CovJ)>7IGE%SM&&!}Xm$!jo(C+@`j z$xiKnX>tk-F}`|?G#P~a0B_L_S1U9G%AZ~W?J`JkIM8m6D}e|M1~^z;;e@>v4rs3M zStRw 0) { - // could add error checking to that read call - // could also use getc or fgetc instead of read. - if (*c != ' ' && *c != '\n' && *c != '\t') { + while ((c = getc(fp)) != EOF) { + if (c != ' ' && c != '\n' && c != '\t') { word = 1; } else { if (word) { @@ -33,7 +30,11 @@ int main(int argc, char** argv) perror("Could not open file"); return 1; } - return wc(fp) && fclose(fp); + int wc_status = wc(fp); + int fclose_status = fclose(fp); + return (wc_status == 0) && (fclose_status ==0); + // can't do return wc_status == 0 && fclose_status == 0; + // because then if wc returns with -1, fclose is not called. } else { printf("Usage: wc file.txt\n"); printf(" or: cat file.txt | wc\n");