summaryrefslogtreecommitdiff
path: root/ipl/packs/loadfuncpp/iexample.icn
diff options
context:
space:
mode:
Diffstat (limited to 'ipl/packs/loadfuncpp/iexample.icn')
-rw-r--r--ipl/packs/loadfuncpp/iexample.icn37
1 files changed, 37 insertions, 0 deletions
diff --git a/ipl/packs/loadfuncpp/iexample.icn b/ipl/packs/loadfuncpp/iexample.icn
new file mode 100644
index 0000000..1d615f3
--- /dev/null
+++ b/ipl/packs/loadfuncpp/iexample.icn
@@ -0,0 +1,37 @@
+
+link loadfuncpp
+
+global integertobytes, bytestointeger, base64, base64tostring, base64tointeger
+
+procedure main()
+ integertobytes := loadfuncpp("iexample.so", "integertobytes", 1)
+ bytestointeger := loadfuncpp("iexample.so", "bytestointeger", 1)
+ base64 := loadfuncpp("iexample.so", "base64", 1)
+ base64tostring := loadfuncpp("iexample.so", "base64tostring", 1)
+ base64tointeger := loadfuncpp("iexample.so", "base64tointeger", 1)
+
+ #test1()
+ test2()
+ #test3()
+end
+
+procedure test3()
+ while write(base64tointeger(base64(integer(read()))))
+end
+
+procedure test2()
+ while write(base64tostring(base64(read())))
+end
+
+procedure test1()
+ i := 16rBEADEDCEDEDBEEFEDCEDEDBEADEDBEEFED
+
+ s := "\x00" || integertobytes(i)
+ ii := bytestointeger(s)
+ ss := integertobytes(ii)
+
+ write( image(s) )
+ write( image(ss) )
+ write(i)
+ write(ii)
+end