From 25fadd05a00311f8393148577bea128490de3ef9 Mon Sep 17 00:00:00 2001 From: asus Date: Tue, 23 Jan 2024 15:18:08 +0100 Subject: [PATCH] - first step in grace : compile without main - added makefile to keep tmp file - added builds and executable in gitignore --- .gitignore | 4 ++++ 1_Colleen/Colleen | Bin 17328 -> 0 bytes 1_Colleen/builds/Colleen.o | Bin 3856 -> 0 bytes 2_Grace/Grace | Bin 17312 -> 0 bytes 2_Grace/Grace.c | 7 ++++--- 2_Grace/builds/Grace.o | Bin 3848 -> 0 bytes 2_Grace/tmp_Grace.c | 14 ++++++++++++++ MakefileCommon | 12 ++++++++---- 8 files changed, 30 insertions(+), 7 deletions(-) delete mode 100755 1_Colleen/Colleen delete mode 100644 1_Colleen/builds/Colleen.o delete mode 100755 2_Grace/Grace delete mode 100644 2_Grace/builds/Grace.o create mode 100644 2_Grace/tmp_Grace.c diff --git a/.gitignore b/.gitignore index b24d71e..6aea462 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,7 @@ Thumbs.db *.mov *.wmv +# C files +builds/ +Colleen +Grace diff --git a/1_Colleen/Colleen b/1_Colleen/Colleen deleted file mode 100755 index ddf617347c1c59d2da7087c13868f5119cbcb627..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17328 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 D-3!vk diff --git a/2_Grace/Grace b/2_Grace/Grace deleted file mode 100755 index 994a32a5dcbcac95121b114428e7878b81c2f3fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17312 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 +#define not_main main char *second_function() { - return "/*comment outside*/%c#include %c%cchar *second_function() {%c return %c%s%c;%c}%c%cint main() {%c /*comment inside*/%c char *program = second_function();%c printf(program, 10, 10, 10, 10, 34, program, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10);%c return 0;%c}%c"; + return "/*comment outside*/%c#include %c#define not_main main%c%cchar *second_function() {%c return %c%s%c;%c}%c%cint not_main() {%c /*comment inside*/%c char *program = second_function();%c printf(program, 10, 10, 10, 10, 10, 34, program, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10);%c return 0;%c}%c"; } -int main() { +int not_main() { /*comment inside*/ char *program = second_function(); - printf(program, 10, 10, 10, 10, 34, program, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10); + printf(program, 10, 10, 10, 10, 10, 34, program, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10); return 0; } diff --git a/2_Grace/builds/Grace.o b/2_Grace/builds/Grace.o deleted file mode 100644 index 3ac5ab020d5f1ddf3ddd79f90f8d6fd24998ed0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3848 zcmc&%U2GIp6h1Svvvk`+3l*tA>;$?}2+X!fVj~ro*uwIoAtd}HhOD!*v+c&+on>aW z0S!VRAvVUS(FY%liHRhN`eBso>?5{!(kpCMa?6Hh1-QUbwWwrC6~1~RvUJ$Rd$Ri zKPXpSb8c7G&f4~zfNBB_^TS&9>AszP`-Yx<3_vrLPB66t)V3CY zJ^=fM0MetNWq0-U_2KRx!={7MgA9wLf3c)gxJ($53d^xqj%tv49tWE8ekkhDa})rV(_B+-12k*6;PzPDZ-KH zfZFrwyP-l8AxiBjs)SkU4bz;-;yO)_!>UlRbt% zwLS%qQPCiz)w0PX`_pQ3NbNzV|IblLp-86P`OgTa z;NF97vl`ZXlBm`dv=Hi#_9zs!ht#>&trXBg1A6#6Ndvl)out9aP7o0d@HQvtEXu25 z`G>WF*jtPbvVK@2IKF~SFrEt8G8SkjG;H@DL}V~dJ3*@u{DT4n z(<>o*t8q+3xL_oYP=`b~-xP`MwF;hNT<)FVmlz*rF8Jpx%Uu-w z3&xFv{#PuICh(gqOa4?&@v4(E5nN=0?MOGSpHJYTzkzYeGxpN}%mhBqa)G(TWf6M& z!7Mwa)@;!#l{{x2OwXxVW`NHxnEc6REK>6Wujp1Pz7zOjiI5Cy__!8B`JfrH&>IIR zmr*YU(9_)U0*8;U*>D5L-21|jZGM2yKbW=Je7$I)1HU?p&oX_cm$;(13^;Se3V!3A z_Lqec39J&B{^@$iJ(oTd1k(rTzoB2z4c(_CosSnnY?96)PE@Ca#cQ4B^VA_-j##^w zIuKw02Xqhf0x)l~LpguChg4sZmfVATh*A9Q*y41Dh4{NjkmMidGLGB-$)FtvWA+03 zT`-zEM#&<*7_oMrjMc!IZtK6w>wk$YY5fEx*FT0>(kGc*;rKKkr=;#ioa`2Vm>=95 zY)tVfb~64>#K`A3wmAL5@qdVeIF|UrOEE02dWnlt&ROQfPUI6f=$8LaoWJBn`P0`d zng3eEy5)bJ<3DWwB#-yl9@!GQ&Gt(`6vR&OA0w>E+a)mEVf*84BpOKm0)LN#ZtL%1 z#rXQ^u8Fz9Znb0Xh)a*7m0tlcMdui;F$_>&x{z?QWC^s6Bme-C2hQ}V=NNS|^1 z*92fL@r8ekxOVV?i|ib$gzOv#l6|H4L}C|70KelvbOa+l$^R-$vH>yrW+n6g8;>&0 A%>V!Z diff --git a/2_Grace/tmp_Grace.c b/2_Grace/tmp_Grace.c new file mode 100644 index 0000000..eb53d15 --- /dev/null +++ b/2_Grace/tmp_Grace.c @@ -0,0 +1,14 @@ +/*comment outside*/ +#include +#define not_main main + +char *second_function() { + return "/*comment outside*/%c#include %c#define not_main main%c%cchar *second_function() {%c return %c%s%c;%c}%c%cint not_main() {%c /*comment inside*/%c char *program = second_function();%c printf(program, 10, 10, 10, 10, 10, 34, program, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10);%c return 0;%c}%c"; +} + +int not_main() { + /*comment inside*/ + char *program = second_function(); + printf(program, 10, 10, 10, 10, 10, 34, program, 34, 10, 10, 10, 10, 10, 10, 10, 10, 10); + return 0; +} diff --git a/MakefileCommon b/MakefileCommon index 81611e5..4905ff8 100644 --- a/MakefileCommon +++ b/MakefileCommon @@ -55,6 +55,7 @@ ifeq "$(D_OBJS)" "." else RM_OBJS = rm -rf $(D_OBJS) endif +F_DIFF = tmp_$(NAME).c # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # @@ -88,12 +89,15 @@ $(NAME): $(OBJS) leaks: $(NAME) valgrind --leak-check=full --show-leak-kinds=all ./$(NAME) -diff: $(NAME) +diff_clean: + rm $(F_DIFF) +diff_exec: @echo $(CYAN)"compare source with output :"$(RESET) - ./$(NAME) > tmp_$(NAME) - - diff --color tmp_$(NAME) $(SRCS); \ + ./$(NAME) > $(F_DIFF) + - diff --color $(F_DIFF) $(SRCS); \ if [ $$? -eq 0 ]; then echo $(GREEN)"Files $(NAME) and $(SRCS) are identical"$(RESET); else echo $(RED)":Files $(NAME) and $(SRCS) differ"$(RESET); fi - rm tmp_$(NAME) +diff: $(NAME) diff_exec diff_clean +diff_keep: $(NAME) diff_exec clean: $(RM_OBJS)