From 8262abdea18cdb873b2012411bfebe131fb37d52 Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Wed, 28 Jun 2023 18:46:36 -0500 Subject: [PATCH] std --- examples/arguments.sloth | 9 +++++++++ examples/guessing.sloth | 3 ++- examples/system.sloth | 5 +++++ std/stdlib.c | 2 +- std/stdlib.sloth | 1 + 5 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 examples/arguments.sloth create mode 100644 examples/system.sloth diff --git a/examples/arguments.sloth b/examples/arguments.sloth new file mode 100644 index 0000000..3e44dcc --- /dev/null +++ b/examples/arguments.sloth @@ -0,0 +1,9 @@ +fn main(argc: Int, argv: [String]) Int { + if argc == 2 { + print("The argument supplied is "); + println(argv); + } else { + println("Wrong # of args"); + } + return 0; +} diff --git a/examples/guessing.sloth b/examples/guessing.sloth index 49c0bde..ef680c9 100644 --- a/examples/guessing.sloth +++ b/examples/guessing.sloth @@ -20,7 +20,8 @@ fn main() Int { } print("It took you "); - print(istr(tries)); + var s: String = istr(tries); + print(s); println(" to guess correctly!"); return 0; diff --git a/examples/system.sloth b/examples/system.sloth new file mode 100644 index 0000000..affe588 --- /dev/null +++ b/examples/system.sloth @@ -0,0 +1,5 @@ +fn main() Int { + system("neofetch"); + println(istr(12)); + return 0; +} diff --git a/std/stdlib.c b/std/stdlib.c index 3878817..4a650a4 100644 --- a/std/stdlib.c +++ b/std/stdlib.c @@ -41,7 +41,7 @@ int as_int(float x) { } char* istr(int x) { - char* snum[100]; + char* snum = malloc(12); sprintf(snum, "%d", x); //char* result = snum; return snum; diff --git a/std/stdlib.sloth b/std/stdlib.sloth index 4213e0a..4d3617f 100644 --- a/std/stdlib.sloth +++ b/std/stdlib.sloth @@ -6,5 +6,6 @@ foreign fn parse_int(str: String) Int; foreign fn termpos(x: Int, y: Int); foreign fn as_int(x: Float) Int; foreign fn istr(x: Int) String; +foreign fn system(cmd: String) Int; foreign fn termclear() Void;