aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2023-06-28 18:46:36 -0500
committerNic Gaffney <gaffney_nic@protonmail.com>2023-06-28 18:46:36 -0500
commit8262abdea18cdb873b2012411bfebe131fb37d52 (patch)
tree920903ef91ffe2d4b7dd24b0d34a616d424c3732
parent73843fa284968b4efb0ae51858cb37d0189c4b83 (diff)
downloadsloth-8262abdea18cdb873b2012411bfebe131fb37d52.tar.gz
std
-rw-r--r--examples/arguments.sloth9
-rw-r--r--examples/guessing.sloth3
-rw-r--r--examples/system.sloth5
-rw-r--r--std/stdlib.c2
-rw-r--r--std/stdlib.sloth1
5 files changed, 18 insertions, 2 deletions
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;