From 635aa98a1a9a40a5b59da3b8d9f58444aa7bba8b Mon Sep 17 00:00:00 2001 From: William Bell Date: Sun, 5 May 2024 00:42:55 +0100 Subject: [PATCH] init --- .vscode/c_cpp_properties.json | 16 ++++++++++++++++ .vscode/settings.json | 6 ++++++ Makefile | 3 +++ bin/cargon | Bin 0 -> 15832 bytes src/cloneString/cloneString.c | 21 +++++++++++++++++++++ src/cloneString/cloneString.h | 8 ++++++++ src/main.c | 21 +++++++++++++++++++++ src/number/number.c | 9 +++++++++ src/number/number.h | 14 ++++++++++++++ 9 files changed, 98 insertions(+) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/settings.json create mode 100644 Makefile create mode 100755 bin/cargon create mode 100644 src/cloneString/cloneString.c create mode 100644 src/cloneString/cloneString.h create mode 100644 src/main.c create mode 100644 src/number/number.c create mode 100644 src/number/number.h diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..07c08df --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/clang", + "cStandard": "c17", + "cppStandard": "c++17", + "intelliSenseMode": "linux-clang-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1de26dd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "files.associations": { + "*.ejs": "html", + "stdio.h": "c" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..55f193d --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +build: + mkdir -p bin + clang -O3 -o bin/cargon $(shell find src -name '*.c') -lncurses -Wall -Wextra -Werror \ No newline at end of file diff --git a/bin/cargon b/bin/cargon new file mode 100755 index 0000000000000000000000000000000000000000..63179c3a2879e888d98e6659c10736abfb65fc44 GIT binary patch literal 15832 zcmeHOeQX>@6`woD#AzDaiIUbyXtNDTm4$|mm=)7n4 z){WCf)RNmMM=>%I1ql!e{6mBQwWI&*1O8v3q zcw$U&>!f%Fr3P(SG`SZd$U8>7pzI}kme>cDBd>Xhf2F@e#2eD28xfRk3KlH6zk7g( zarvl)5A$K_uhMadQT$m_c*U+%a=4>yS1Qq%N;;EMjZ>W+jU8=zCat%~A>g>M4?L&# z9XKkY(;|l$^Rd1jHViAaAHVWk&)OB|&!2kwk6(H6!E2w34n6V*_JJI_aPK-(SIge+B%$3i#;?_$`2Ium#I;0LqR3PQbOGG3X~?+gb(} z=D^T?Ghw^-Xfos3?$G|dskCDcS;Hw?nC9qs+A%Yp<$9*6Ov@T(JU2dZQcO&G88PD8 zwg4byJ7U~QrP6Wm17}N|{ES;k2ax!bWsW2rE0uiM787pL@kRt#Iq^w1V`om_nbd(m zT-Ejs4)p9bTlCg8!POSM9VZlpb0`9P^@layz6Y&*oy`@)8oeE1E^Zp5Mw zU+u$1OeuJK$8(iSO-$7g_g^>lK3v}Sm6>Sp;W!5_T1?f@5B-ElV22NffQBWEKp25A z0$~Kg2!s&`Bk+G8fxp(>`gddIjT+;L>WjPJG4}DC7cDFpGry^smvbw${|?~7_7`AZ zwc2uAmxfC@ss9XhToNulCG{Vnj!U(rvr_*7>bOK( zngboj)BNT@_R4W1`zK@O&sPr(^)=_3pEqW^Zi7w=8&-q)yCZttmdAhs1D@?V35YRU z?V|YfHE#n<<&65QC0cqdfgW`_sM)s<4@vS|^#cNeYX)G! zd0>8dyz?W=b&MzaTN(vh8ejLlM-CZ}7rfhz><9S^*9!$>b}Ev85i4+L>IbryjO=fX z>?`>hfL^caYkqGKCIE-)^WDc`j^ZfLXS;UR!U&!QuSjY)vh#p#1I(ChuLIHiW^*p@ zO6Of$5zf8>fQ3Nz)%-^EycQUn(90)5dlnCGHZQyJPX_v%-qTq3joiGPhdhspXAV%p z5=J15Kp25A0$~Kg2!s&`BM?R)j6fKHFarNG5x{pzh7E7A?$qu}yQ#!&;-H%x#rIYk zyyHqbqjzcBGdBqN(kxK|^;^l5ozT3r7RNVg)P@s_Y_8hf1QH+WUwFGvNPzsz)k0wq zguVj@2+j=uGMC$z80Ot zT76G#jkJ3V>~dfi2Ppt&yVKF=1Jba&wgx-@F>Ez3ZvT5Cq=Y4mKp25A0$~Kg2!s&` zBM?R)j6fKHFarO{2yh-B=k4K}IxMqF6m#V;R}jmMN)!_Z*N|>dvgJn7IbU!y>72W_ ziFD2z!xivH0oPy)mU@`5CK^OjthD7jpqBIh(+c}UU71l1{}v3w0{I}jcoklNx--I0jfU*__`?Eg#*_UTrKcVv?KCg zZh9ON%aaZWXL5YlcA;YS-hZHb|G-{IEQf2&>@&>%!`=J)Or!U(F!v1}?CBmf5BB#T z=^HYKx_buuOqr%0^QV&kQ<8eI6>`o$EK6P`zZb1BEgci#O90bOSe_+3*K#r`%d-#2 zfeXxlPg1gciM>jQFM)gkfLWqDl~4~#X_mg3$fV6N%Sm7c|G+`8N+ca~GGiwwAHT${ zX*&sUF`UVeJIc?84*|@+1HB)b_FtOCU+NYn<_V!^PL6xlFi6i;a*S(`@o&2mLU+=h zt&cjB`h=UFuwCz@4;r3K!WSmV1VPI=OiV1D5 zowATXwTYA`bU94jv!|dg4~Fih<)PB;F>}PV#%*&f0bJG;!?ax2f`KA~>)_ZLPsX9w zH28v@E;~@pAiP44r^m-_2cq(CD7fx`OQraYK?D7OvgCCKcZIh8@(EDzo);ysllUw( z!ddV-fOY((^7D@opC$fZ*c zehc`xmSR4yw^(WvFdQRRna}H8uNPSI za|7E4&tLrR2)p3;3ymyE;yTJ-g8W}Yqn}^tJ3;mlh%bZe+dp>>){2nTh z{wS{j#Q1rLzatFVv(EBW;NaSoE_=bxOP3qb+w%FMv}K+7uR{Z#JIv>GD}NWt-+$uy zkA-=B9Nz^D +#include +#include + +char* cloneString(const char* str) { + if (str == NULL) { + return NULL; + } + + size_t len = strlen(str); + char* clone = malloc((len + 1) * sizeof(char)); + + if (clone == NULL) { + return NULL; + } + + strcpy(clone, str); + return clone; +} diff --git a/src/cloneString/cloneString.h b/src/cloneString/cloneString.h new file mode 100644 index 0000000..ae093d6 --- /dev/null +++ b/src/cloneString/cloneString.h @@ -0,0 +1,8 @@ +#ifndef CLONESTRING_H +#define CLONESTRING_H + +#include + +char* cloneString(const char* str); + +#endif // CLONESTRING_H diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..440eb2f --- /dev/null +++ b/src/main.c @@ -0,0 +1,21 @@ +#include "cloneString/cloneString.h" + +#include +#include + +int main() { + const char* str = "Hello, World!"; + char* clone = cloneString(str); + + if (clone == NULL) { + printf("Failed to clone string\n"); + return 1; + } + + printf("Original string: %s\n", str); + printf("Cloned string: %s\n", clone); + + free(clone); + + return 0; +} \ No newline at end of file diff --git a/src/number/number.c b/src/number/number.c new file mode 100644 index 0000000..861eb98 --- /dev/null +++ b/src/number/number.c @@ -0,0 +1,9 @@ +#include "number.h" + +#include + +struct number translateNumber(char *code) { + struct number num; + num.sign = code[0] == '-' ? 1 : 0; + return num; +} diff --git a/src/number/number.h b/src/number/number.h new file mode 100644 index 0000000..0e93d1e --- /dev/null +++ b/src/number/number.h @@ -0,0 +1,14 @@ +#ifndef NUMBER_H +#define CLONESTRING_HNUMBER_H + +#include + +struct number { + uint8_t sign; + uint64_t numerator; + uint64_t denominator; +}; + +struct number translateNumber(char *code); + +#endif // NUMBER_H