From 25ea50ae8acc32c8478fc397f6dec0e1efc66138 Mon Sep 17 00:00:00 2001 From: Atlas Cove Date: Sun, 21 Aug 2022 14:27:44 +0100 Subject: [PATCH] Switched to shellscript (less overhead overall) --- Makefile | 3 ++- add.c | 25 ------------------------- div.c | 25 ------------------------- mod.c | 25 ------------------------- mul.c | 25 ------------------------- shellmath.sh | 10 ++++++++++ sub.c | 25 ------------------------- 7 files changed, 12 insertions(+), 126 deletions(-) delete mode 100644 add.c delete mode 100644 div.c delete mode 100644 mod.c delete mode 100644 mul.c create mode 100644 shellmath.sh delete mode 100644 sub.c diff --git a/Makefile b/Makefile index cd0a490..607ce20 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -files = add div mean mod mul sub sum +#TODO: find way of installing shell library with make +files = mean sum all: $(files) diff --git a/add.c b/add.c deleted file mode 100644 index 4815fb2..0000000 --- a/add.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#ifndef eprintf -#define eprintf(...) fprintf(stderr, __VA_ARGS__) -#endif - -int main(int argc, char **argv) { - int v1; - int v2; - int out; - int e1; - int e2; - - e1 = sscanf(argv[1], "%i", &v1); - e2 = sscanf(argv[2], "%i", &v2); - if(e1==EOF) { - eprintf("%s: argument 1 cannot be parsed as int", *argv); - return 1; - } else if(e2==EOF) { - eprintf("%s: argument 2 cannot be parsed as int", *argv); - return 1; - } - out=v1+v2; - printf("%d\n",out); - return 0; -} diff --git a/div.c b/div.c deleted file mode 100644 index bb279fe..0000000 --- a/div.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#ifndef eprintf -#define eprintf(...) fprintf(stderr, __VA_ARGS__) -#endif - -int main(int argc, char **argv) { - int v1; - int v2; - int out; - int e1; - int e2; - - e1 = sscanf(argv[1], "%i", &v1); - e2 = sscanf(argv[2], "%i", &v2); - if(e1==EOF) { - eprintf("%s: argument 1 cannot be parsed as int", *argv); - return 1; - } else if(e2==EOF) { - eprintf("%s: argument 2 cannot be parsed as int", *argv); - return 1; - } - out=v1/v2; - printf("%d\n",out); - return 0; -} diff --git a/mod.c b/mod.c deleted file mode 100644 index 56a9434..0000000 --- a/mod.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#ifndef eprintf -#define eprintf(...) fprintf(stderr, __VA_ARGS__) -#endif - -int main(int argc, char **argv) { - int v1; - int v2; - int out; - int e1; - int e2; - - e1 = sscanf(argv[1], "%i", &v1); - e2 = sscanf(argv[2], "%i", &v2); - if(e1==EOF) { - eprintf("%s: argument 1 cannot be parsed as int", *argv); - return 1; - } else if(e2==EOF) { - eprintf("%s: argument 2 cannot be parsed as int", *argv); - return 1; - } - out=v1%v2; - printf("%d\n",out); - return 0; -} diff --git a/mul.c b/mul.c deleted file mode 100644 index b16bbf8..0000000 --- a/mul.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#ifndef eprintf -#define eprintf(...) fprintf(stderr, __VA_ARGS__) -#endif - -int main(int argc, char **argv) { - int v1; - int v2; - int out; - int e1; - int e2; - - e1 = sscanf(argv[1], "%i", &v1); - e2 = sscanf(argv[2], "%i", &v2); - if(e1==EOF) { - eprintf("%s: argument 1 cannot be parsed as int", *argv); - return 1; - } else if(e2==EOF) { - eprintf("%s: argument 2 cannot be parsed as int", *argv); - return 1; - } - out=v1*v2; - printf("%d\n",out); - return 0; -} diff --git a/shellmath.sh b/shellmath.sh new file mode 100644 index 0000000..2c3aa2f --- /dev/null +++ b/shellmath.sh @@ -0,0 +1,10 @@ +# Shellmath v2 +# Works in most bourne-type shells. +# Partially reimplemented in shell script due to less overhead. + +function add { echo $(($1+$2)); } +function sub { echo $(($1-$2)); } +function mul { echo $(($1*$2)); } +function div { echo $(($1/$2)); } +function mdl { echo $(($1%$2)); } +function randr { echo $(($1+$RANDOM%$2)); } diff --git a/sub.c b/sub.c deleted file mode 100644 index 02ba651..0000000 --- a/sub.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#ifndef eprintf -#define eprintf(...) fprintf(stderr, __VA_ARGS__) -#endif - -int main(int argc, char **argv) { - int v1; - int v2; - int out; - int e1; - int e2; - - e1 = sscanf(argv[1], "%i", &v1); - e2 = sscanf(argv[2], "%i", &v2); - if(e1==EOF) { - eprintf("%s: argument 1 cannot be parsed as int", *argv); - return 1; - } else if(e2==EOF) { - eprintf("%s: argument 2 cannot be parsed as int", *argv); - return 1; - } - out=v1-v2; - printf("%d\n",out); - return 0; -}