summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile6
-rw-r--r--demo-exitclean.c12
3 files changed, 18 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 48ab12e..1c6b74c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ demo-printing
demo-input-char
demo-input-int
demo-exitcode
+demo-exitclean
diff --git a/Makefile b/Makefile
index 426e6cb..49698ee 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ LDFLAGS=
SRCDIR=src
BINDIR=build
-all: libmalice.o demo-printing demo-input-char demo-input-int demo-exitcode
+all: libmalice.o demo-printing demo-input-char demo-input-int demo-exitcode demo-exitclean
libmalice.o: libmalice.asm
nasm $(NASMFLAGS) -o $@ $<
@@ -27,6 +27,9 @@ demo-input-int: demo-input-int.o libmalice.o
demo-exitcode: demo-exitcode.o libmalice.o
ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+demo-exitclean: demo-exitclean.o libmalice.o
+ ld $(LDFLAGS) -nostdlib -e _lmStart -o $@ $^
+
.PHONY : clean
clean:
@@ -35,3 +38,4 @@ clean:
rm -f demo-input-char
rm -f demo-input-int
rm -f demo-exitcode
+ rm -f demo-exitclean
diff --git a/demo-exitclean.c b/demo-exitclean.c
new file mode 100644
index 0000000..a87c0f9
--- /dev/null
+++ b/demo-exitclean.c
@@ -0,0 +1,12 @@
+#include "libmalice.h"
+
+int lmMain(void)
+{
+ lmPrintString("This demo exits mid-program via lmExit() with code 23.\n");
+
+ lmExit(23);
+
+ lmPrintString("This line is never printed.\n");
+
+ return 42;
+}