From a54107338818766882b3060b61116ea2861f103f Mon Sep 17 00:00:00 2001 From: Zev Averbach Date: Thu, 29 Dec 2022 20:59:22 -0400 Subject: [PATCH] first iteration --- build.sh | 5 +++++ input.txt | 1 + main.c | 42 ++++++++++++++++++++++++++++++++++++++++++ zed | Bin 0 -> 49872 bytes 4 files changed, 48 insertions(+) create mode 100755 build.sh create mode 100644 input.txt create mode 100644 main.c create mode 100755 zed diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..cd87d44 --- /dev/null +++ b/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -xe + +clang -Wall -Wextra -o zed main.c diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..06a0b41 --- /dev/null +++ b/input.txt @@ -0,0 +1 @@ +Hello, Zed! diff --git a/main.c b/main.c new file mode 100644 index 0000000..78984b7 --- /dev/null +++ b/main.c @@ -0,0 +1,42 @@ +#include +#include +#include + +#define ZED_CAPACITY 1024 + +typedef struct { + char data[ZED_CAPACITY]; + size_t count; +} Editor; + +static Editor editor = {0}; + +int main(int argc, char **argv) +{ + if (argc < 2) { + fprintf(stderr, "Usage: zed \n"); + fprintf(stderr, "ERROR: no input file was provided\n"); + return 1; + } + + const char *file_path = argv[1]; + FILE *f = fopen(file_path, "rb"); + if (f == NULL) { + fprintf( + stderr, + "ERROR: could not open file %s: %s\n", + file_path, + strerror(errno) + ); + return 1; + } + + editor.count = fread(editor.data, 1, ZED_CAPACITY, f); + fwrite(editor.data, 1, editor.count, stdout); + + printf("Input file: %s\n", file_path); + + fclose(f); + + return 0; +} diff --git a/zed b/zed new file mode 100755 index 0000000000000000000000000000000000000000..1f9c5fa391e300c47a502daa9ee0f3315dc02b79 GIT binary patch literal 49872 zcmeI5PiS049LFbrw%w++Nl;70wmy_C)kC{fg*7I1W4rc6+onxY3B@w*=DjpeHoNP4 zZ`-602!tM%HPAy3qL&^;6ngL=f+bZ!J&4tdJ@gO+Wfv>tBt=Ts-*4W$?Cxue2M-1L z4*X{3JM)|0{^m2Yxy|OszyG|uQHYK%Aw(xxAK6DSAub4mdO|!wW|B#HeE4wYRAy|H zN83wByS%UBI5)^q%8AV6M7xVxpKc!$T2m?_H1?3vx95EB1tl7+aB* z+itPgDy8)Na?V>HipKloKoBpfJwhEWi0gP8^gs|#&e-{q?b28@-c23vZSBvRxv!Ud z@|*H}*D0LQ4$*jnuLSwMtLIs_mbTb5A!WI6&M8>ZDNGlYZa-$*m!Wd=^(H09HTAYH#R;dzH?HZDYhKz1LJKcUsckUzk?y57`IQitsbzM@ z$+)mjXuO?Pt~}pbR<8;1XzPIPZ>82C+d{Ul?792$PHvwypSMVJd6JCt`2LTheMdzy zwOm@*^~3Ig^nMyM$bvo6>aH!SuUKw)zUw)f<9i&IJ+yz0!+(ET3x95kjOTbSUDi|d z=dGie3*|FD@A>xZ-dFchUQUjjsO%==__dXQ=d)TfFBA{}0T2KI5C8!X009sH0T2KI z5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5CDPyM&P7b`ORFqmHakyhXYj>Zkv_z+S0=9&feug8ZfIdhu#I6)s(sX z;)nFw@QSEyqlU&$M91%vKgHoEiS=L9+RU0+O~=hjre;8q4KjI;Cc;m&mDABxb9tyS zEW}k#;|qFTEoyn5sl@6TPW$m+RTJaAnAJFW{}g)HMpTG0B|6kk)3jB7ElH`b*0xbc zGpc6pm`mRzPk-G=9HXU;#Bo)Rsd_@yZ>oAy)u&Yb7S%_Vcb=wZc)XEFbO>>AhGL5P z?~O)dhM$<$Z*p%Z_kQLcKjEx@$Gw-hca?juaqlzk@jKZ1$K2x=nf1%mJLzT5*aOCS z+cE~7LaFTU_2>KpJt8wUHaa$76pDr#HKv`sZJf(`M#(Lnbu8QJ5pFK@nkts_7Ww){ zv1Atl--I_{B)lFm!a>zgpy`8YA7Td?m)4dJQ@u5Pfm*gt>0LP&?(-W}ey!T4R`Y1H zqZBF-009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X z009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2KI5C8!X009sH0T2Lzhf3fU{Z0V? zrodmi75e|b_vrR9-R{!u9^LNO?L$o-9}WT_00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0{;^N{m+O=-b#O3O6mEQ?Ybp#!W9>_E|&cg32Q!Y(R4W{b54Pr z#6`V-FIY*-iahAWDbVy(zUbMk`dAf9c7erq7A4my_|q&6mad((SnOeO&UJjXEJ>>A zm?Gu*Zuk-UgFB?y)XDu$IXffmIeV(?+j55DQFgJ}tWyw)F0poAyN8_%q_@U}NG}Gz zdvJ;MCLv6%Ib?4~AJxJ9Hl>9q4F!5fFwQ@jph|*j66-n{(Jx2z!H9l6qQ@ipR7B?@ z`kjdOBf6XPMl#y6plymCvdv^$$Q~h!k!>K`O7?HQ