From b5a70ff093578c662cc01effb720d6f8741d6729 Mon Sep 17 00:00:00 2001 From: xamidev <121681048+xamidev@users.noreply.github.com> Date: Sun, 2 Jun 2024 10:10:47 +0200 Subject: [PATCH] Arg error checking --- hex.c | 42 +++++++++++++++++++++++++++++++----------- minihex | Bin 19416 -> 19448 bytes test.txt | Bin 0 -> 1024 bytes 3 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 test.txt diff --git a/hex.c b/hex.c index 7f13d06..f8d3460 100644 --- a/hex.c +++ b/hex.c @@ -1,6 +1,7 @@ #include -// TODO: Error checking +// TODO: ASCII/Position printing +// TODO: Stop appending garbage at file end #define BYTES 1024 #define BYTES_PER_LINE 10 @@ -18,8 +19,14 @@ void print_hex(unsigned char* buf, int byteno) puts(""); } -void main(int argc, char** argv) +int main(int argc, char** argv) { + if (argc != 2) + { + printf("Usage: %s \n", argv[0]); + return -1; + } + FILE* f = fopen(argv[1], "r"); unsigned char buf[BYTES]; int byteno = fread(buf, 1, BYTES, f); @@ -30,14 +37,27 @@ void main(int argc, char** argv) char cmd; int loc; scanf("%c%d", &cmd, &loc); - - if (cmd == 'p') print_hex(buf + loc, BYTES_PER_LINE); - if (cmd == 'e') scanf("%x", buf + loc); - if (cmd == 's') break; + switch(cmd) + { + case 'p': + case 'P': + print_hex(buf + loc, BYTES_PER_LINE); + break; + case 'e': + case 'E': + scanf("%hhx", buf + loc); + break; + case 's': + case 'S': + fclose(f); + f = fopen(argv[1], "w"); + fwrite(buf, 1, BYTES, f); + fclose(f); + break; + case 'q': + case 'Q': + return 0; + break; + } } - - fclose(f); - f = fopen(argv[1], "w"); - fwrite(buf, 1, BYTES, f); - fclose(f); } diff --git a/minihex b/minihex index 2ba6648e37ab24e7413c33f58190db1d147a4c4b..013a4c49ff2ff819a2f109588e96042e1e12b2d5 100755 GIT binary patch delta 1650 zcmbtUdrVtZ7(eG+&h0Ii^}#K)rEIi9p>^Z62MnmNMF%Z2D#=KQCW{IK7V&{&c8Ml6 zG8RceS5Eej5g&<(G1(MWvw(4iKZt|GMM#|BKMstVR1(r;ikWeteitIVy2@Z`!Pe{SM%=@ptwcM`$INc=ZhtR4{gw4ObL}2TYjK_f zvB2tp?=>&OrlPKKADLN_Yaz$kJdj4)a79Gj&C*&Mq zLnJ->N%(Lm!V(l9<2I<<%q>2=H9%qRy#6_Dd+KC>jQU&8wk=7I+r z;KDNb5Ln9MHi|glU=lf+5e&R(DA@+eQ@lIG9hc$Mzb-CC>c6=GHPAStdn-l;|2zhz+{N*^ZKr z>cn|U`)G=Ehgv_No6b{{^a<6G>{KeWP%5<%w?g$~SGqL)6!9v>)H=^Wdg%hmR_3Xx zms_A_2;PXCu{x z`Z50WLB`lpHOH0J6zc!{cW7F2#+gzv8I~9zwg~ZseXcgO&~q2thQ8NUy|_d jF-#TKQ=5b9*ida1zRi|kA7;h-tMCkKhy77Dv_J0;(5^l| delta 1281 zcmY*ZVQf=X6u#%Z-S%~F?d$7n*OtNBx^`;?+`wgX-DJ+WwHrY|6EfmIHj!urlr5FS zWJWD!=FEyhfpKF@t+I8So#cfWJa zckX%b-uISI!1WW5kHUB%cEfhGf|z!csnBQ(Lz#v3K4=8h7cA4e$i{>P_xt3?#-}eV z{TOekHzvOP%%e_ObNcJz0cArno0<8`Fp{s#NXaZo<~)L(kmT6+$+6ke3hU8gP-KU+ z_03=XgGsr!Zt~n*<_3qcFOoSrQN`0|r}?g>Q-2$V@~Ii^I6M+yzi2heC<<47PmaWx z-R;}awN~`-8qpCYbI`!j*-XjYVYc-1ib?<9V}+?Vd;D#M^=i?`ujRB=RTgPJneAB~ zN^Y!(M6tJFS~{j*aCgZ?X`mRCyPqeK!N?Gayg<@~K#kbmfk_q|(rv>yj5v-sj`$wp z8N}$KVGJOuONMa?acYUxhVET=3B&bB$s<-LhcJ$29Qg&dFI4YeUN8*P&tqtA9K$$n zv$sQDp=*(y3)OlrV(HWT7<(MfV?wvxB2GY+RniwjZ(_UG*h`xqfRuiA^MoLD3v5cL zu6qox03{%yhB!B&bOT@U_G2!-BBYzW(G&rdebRIfxY%6N7K?Tq-EQ5nWdy*(Ufued zuiASBrIwGYp25hpK!|VvC*ot_`-`KFa~ShnzEjR@4`XohCy@~OJ6w7cE)xsq)ACtP z*Yk*2IFq*QCte$`Bo?lxE&E3H6Q6p^jNMH8^Sp@PT9$sBR-Vw%fmSR7u?#*tL~1LK zKaN~1e4VzW4h@okt(<=q&q^#{q;e-t%UE+=92bU29JjDrY4zbxp_3b&+=VZyhPMDx zU>D0byFp>^G=DyNA9VUfM?3`Wa$CsK;8($AeaQEsAFv%o22SzKst|E#vKXidaEH^2 zr>_uMCd3s+*d~j309rliLy=np(ILxm84Jq1il>_31|}t>nqLv`olVgfY?B-OeOiaP zpYN`pw#f$_W`NmRf-Xu#sa&B?6MR_VcebbH-JRZfYM-P|=|gH2>ReQOic%>>?Lx#& zrD5tJLIw0wyEM0!2{DaRF+&!&)QtsDrN31lFsUrY1~ zu!s5kTWuHlSAq5%+ly>#OPT%2fNE^AKaADC>F AlmGw# diff --git a/test.txt b/test.txt new file mode 100644 index 0000000000000000000000000000000000000000..1f66ab3025a7901f94ff88d245c79018af77cb6b GIT binary patch literal 1024 zcmcCb&B@8vQAjJw&s9iNC`qj-QAo?oN!8;r