From f6681abf474b729917f344f89a08b14f43ea378a Mon Sep 17 00:00:00 2001 From: Timo Schmidt Date: Sat, 1 Apr 2023 09:02:53 +0200 Subject: [PATCH] Scaffold --- ex00/Makefile | 22 ++++++++++++++++++---- ex00/TODO.txt | 1 + ex00/ft_io.c | 26 ++++++++++++++++++++++++++ ex00/ft_lib.c | 34 +++++++++++++++++++++++++++++++--- ex00/include/colors.h | 19 +++++++++++++++++++ ex00/include/ft_io.h | 18 ++++++++++++++++++ ex00/include/ft_lib.h | 8 ++++++-- ex00/include/main.h | 16 ++++++++++++++++ ex00/main.c | 26 +++++++++++++++++++++----- ex00/obj/ft_io.o | Bin 0 -> 1232 bytes ex00/obj/ft_lib.o | Bin 0 -> 2160 bytes ex00/obj/main.o | Bin 0 -> 1608 bytes ex00/rush-02 | Bin 0 -> 16296 bytes 13 files changed, 156 insertions(+), 14 deletions(-) create mode 100644 ex00/ft_io.c create mode 100644 ex00/include/colors.h create mode 100644 ex00/include/ft_io.h create mode 100644 ex00/include/main.h create mode 100644 ex00/obj/ft_io.o create mode 100644 ex00/obj/ft_lib.o create mode 100644 ex00/obj/main.o create mode 100755 ex00/rush-02 diff --git a/ex00/Makefile b/ex00/Makefile index 89f2ffa..b7f10f8 100644 --- a/ex00/Makefile +++ b/ex00/Makefile @@ -1,6 +1,10 @@ SRC = main.c \ - ft_lib.c -HEADERS = ft_lib.h + ft_lib.c \ + ft_io.c +HEADERS = main.h \ + ft_lib.h \ + ft_io.h \ + colors.h OBJDIR = obj INCDIR = include @@ -43,7 +47,7 @@ $(NAME): $(OBJ) $(OBJ): | $(OBJDIR) $(OBJDIR)/%.o: %.c $(DEPS) - @norminette $< >/dev/null || { printf '\033[107;41m%s\033[m\n' "!Norminette Failed>>>"; norminette $<; printf '\033[107;41m%s\033[m\n' "<</dev/null || { printf '\033[107;41m%s\033[m\n' "!Norminette Failed>>>"; norminette $<; printf '\033[107;41m%s\033[m\n' "<< +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/04/01 08:51:59 by tischmid #+# #+# */ +/* Updated: 2023/04/01 08:58:01 by tischmid ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "ft_io.h" +#include +#include +#include + +int file_exists(char *path) +{ + int fd_num_dict = open(path, O_RDONLY, 0); + if (fd_num_dict < 0) + return (0); + if (close(fd_num_dict) < 0) + return (0); + return (1); +} diff --git a/ex00/ft_lib.c b/ex00/ft_lib.c index 874a805..0ca4a94 100644 --- a/ex00/ft_lib.c +++ b/ex00/ft_lib.c @@ -6,7 +6,7 @@ /* By: tischmid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/04/01 07:13:31 by tischmid #+# #+# */ -/* Updated: 2023/04/01 07:13:58 by tischmid ### ########.fr */ +/* Updated: 2023/04/01 08:29:48 by tischmid ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,9 +17,37 @@ void ft_putchar(char c) write(1, &c, 1); } -void ft_puts(char *str) +void ft_putstr(char *str) { while (*str) ft_putchar(*str++); - ft_putchar('\n'); +} + +void ft_putnbr(int nb) +{ + if (nb > 9) + { + ft_putnbr(nb / 10); + ft_putchar(nb % 10 + '0'); + } + else if (nb == INT_MIN) + { + ft_putnbr(nb / 10); + ft_putnbr(-(nb % 10)); + } + else if (nb < 0) + { + ft_putchar('-'); + ft_putnbr(-nb); + } + else + ft_putchar(nb % 10 + '0'); +} + +int puterr(char *errmsg, int errcode) +{ + ft_putstr(RED); + ft_putstr(errmsg); + ft_putstr(RESET); + return (errcode); } diff --git a/ex00/include/colors.h b/ex00/include/colors.h new file mode 100644 index 0000000..9326c41 --- /dev/null +++ b/ex00/include/colors.h @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* colors.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tischmid +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/04/01 08:20:09 by tischmid #+# #+# */ +/* Updated: 2023/04/01 08:20:46 by tischmid ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef COLORS_H +# define COLORS_H +# define RESET "\x1b[m" +# define RED "\x1b[31m" +# define GREEN "\x1b[32m" +# define YELLOW "\x1b[33m" +#endif diff --git a/ex00/include/ft_io.h b/ex00/include/ft_io.h new file mode 100644 index 0000000..378e0ff --- /dev/null +++ b/ex00/include/ft_io.h @@ -0,0 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_io.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tischmid +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/04/01 08:52:17 by tischmid #+# #+# */ +/* Updated: 2023/04/01 08:52:30 by tischmid ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef FT_IO_H +# define FT_IO_H + +int file_exists(char *path); + +#endif diff --git a/ex00/include/ft_lib.h b/ex00/include/ft_lib.h index d287ae3..d1685c0 100644 --- a/ex00/include/ft_lib.h +++ b/ex00/include/ft_lib.h @@ -6,15 +6,19 @@ /* By: tischmid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/04/01 07:14:29 by tischmid #+# #+# */ -/* Updated: 2023/04/01 07:23:26 by tischmid ### ########.fr */ +/* Updated: 2023/04/01 08:30:14 by tischmid ### ########.fr */ /* */ /* ************************************************************************** */ #ifndef FT_LIB_H # define FT_LIB_H # include +# include +# include "colors.h" void ft_putchar(char c); -void ft_puts(char *str); +void ft_putstr(char *str); +void ft_putnbr(int nb); +int puterr(char *errmsg, int errcode); #endif diff --git a/ex00/include/main.h b/ex00/include/main.h new file mode 100644 index 0000000..6d73526 --- /dev/null +++ b/ex00/include/main.h @@ -0,0 +1,16 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: tischmid +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2023/04/01 08:15:08 by tischmid #+# #+# */ +/* Updated: 2023/04/01 08:56:56 by tischmid ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef MAIN_H +# define MAIN_H + +#endif diff --git a/ex00/main.c b/ex00/main.c index f9367db..88c98a9 100644 --- a/ex00/main.c +++ b/ex00/main.c @@ -6,16 +6,32 @@ /* By: tischmid +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/04/01 07:11:58 by tischmid #+# #+# */ -/* Updated: 2023/04/01 07:41:31 by tischmid ### ########.fr */ +/* Updated: 2023/04/01 09:02:34 by tischmid ### ########.fr */ /* */ /* ************************************************************************** */ +#include "main.h" #include "ft_lib.h" +#include "ft_io.h" -int main(int argc, char **argv) +int arguments_valid(int argc, char **argv) { - (void)argc; - (void)argv; - ft_puts("Hello, World!"); + if (argc > 3) + return (0); + if (argc == 3) + if (!file_exists(argv[1])) + return (0); + if (argc < 2) + { + // TODO: Bonus: Use read to take nbr from stdin + return (0); + } + return (1); +} + +int main(int argc, char **argv) +{ + if (!arguments_valid(argc, argv)) + return (puterr("Error\n", 1)); return (0); } diff --git a/ex00/obj/ft_io.o b/ex00/obj/ft_io.o new file mode 100644 index 0000000000000000000000000000000000000000..f2d902367016b04b982d3c704b65170afa7cf723 GIT binary patch literal 1232 zcmb_b&ubG=5S~r?Lrc|A6ovM%g6OG_riD^3lA_T?ii(hfpoH!Ar7rG|Hv3XyAt(fd z5QP2<{s;XN1O+{N5b-W3(jx?nnFC2dHhgBGt0Jz>Rk81KCXcII_#DVnvjf%Qsu;?iyUg z9D;TD7_4^5TAZIfbA*MKkfTL#>9cvh^rmq8+)UvqDu|ejCrD4h@6n{)A{dXM1$WSv zCWtQ~w_xbg9+12G5B+6bV+!pwuHh)dhQSvN-qt*IWOg-O1ksd%E0k<25MCUHGE&g+ z16h}CKT!$9doltM#Y&2M4{FPaa=jNIg5V&myE{Ah&b#0RaUyjg`Mlm}x}k)Is{66< zKqRWE+-DmtM0Ci1@-<m+5Jrs17-ZZM&(E<66uT}PfdQ~KEq3_q`ZnC0)8vp{mr=Q-jM+&{Y4`9BWbmf3)yO#}v|>0Ja19ux{j2(0hT&TE!2(Sr|W-ka}z-`kma+08;^_=4Z( zV`M&dn$=f?GPc}SkHb6+vt7U((aT@-;(f$E~6CoUiN4`C2hw+o3!@ z4%$kj_G%~i7e9ZMH@M7$6xaJpAC#4~l%)d@ zt@gph6PnYTuep@{fHi$CZa_e-D4r*!EJ(`A_ ziRChOE)-80nTgPhX-y}ynUFT1_N!W-b|S~KgRIM~&V2LNnQt!W>+WptcmmDB7T`cT ziqqLW!H52Hy8|&Gz!Gz(5C=Pn6Xj>>`CEvCZQw+C|2ik2{vP6BXKYxVAYQhikEaRQ@c0VlP)VDDSr#=@Xoch_?5olwo zWu^?(Hs@@n#`P*Udr! zZ@;Ksm-xOvBS3i3hHVu4gBbOR5@8W6NCNqtz%>4jWE&Hkx+?VeImiCuJA;NFSF}ek zkTQS^kMVyVSfkEsv>o!Dki?jNAH;np2=rYboOI;zJ3ujU(0^|PHsB^)Y|8uF_3EGF z!eexPf}#*Ky1!)sjtL^(Lpu!8)BRlntYz5Af-At-wxH-g)uwxtkF@{_dGA=HB*0Ii KBI>Y~{QTdS_gH=a literal 0 HcmV?d00001 diff --git a/ex00/obj/main.o b/ex00/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..6270259d750400d40d58b012d08be7fb9dc006a1 GIT binary patch literal 1608 zcmbtU-D(q25S~rirf4;xC<=;3Z|Y5!roB;6iOA}LrAQ$tf~4DI8>9PE_a~-eFcK<; zp!5mE7w`!LEhzX1K7nAsi-dzH$$IPfVeH-#&h)O<*Sn4R zUleN(AiXDRFCy7vk>((gek+GkNMlJ_T2~wD?QfZfU(@Fclm5INUq%;K(+&I6E@v@M z|3ak+pQ#KBcC=xSm!`m^wB~uPcLbog6*@tfEn9|D&DKrNuenY(zoIUy`CR@=$fB#1 zd4fI&<@p9Ejf`?;AvM2`ZKyE~!VCJ`IG%Z(xOr?Y@eCE?*j3^Y_vkZ;Z?HH~ad?d6 z4E!0z#gdSSqaleIQ9M9mQPQ(DB6ku;CMrh%5)RV0c#N$X=NE9q=`V8~b)LmB9F6f_ z;wdKhkDR9)lAauVlJs<8LZ9V4?O5J*A;Pz~KQo&G)iW(a4a`OWYT31I(+Oa^W|<|k zQS$>IcEZ5)Jg|+L1FGW&rh0q5nDYap`~+0Xs@o-_Qo*NC<(14wrESl!O)$J_NY(sO z-LPsERzWR;>IYt6Y@yw?nf2U?5g0`0)jVI=f10P5FQ1nv_m>~az96`z^OZ4&4sm2< z6u9$4CUG9UYsx+Rx&StL|4p8czbST4`1Bc0bNdP{)mY)aFsFz_(4EWR^yI&a{ws)E zmPI%}$AwD~KANAyxZq@|7DvWt?~b`0`3+JXo#)>tM}pYDpzh!#?)(mTL9s77KROGM sFV628a>=!ki>8HRfLmH+?% literal 0 HcmV?d00001 diff --git a/ex00/rush-02 b/ex00/rush-02 new file mode 100755 index 0000000000000000000000000000000000000000..986b59d7d22748eeadb83ea2987c698c44ab0645 GIT binary patch literal 16296 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 literal 0 HcmV?d00001