summaryrefslogtreecommitdiff
path: root/ipl/packs/loadfuncpp/iexample.icn
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-01-28 19:02:21 +0000
committerIgor Pashev <pashev.igor@gmail.com>2013-01-28 19:02:21 +0000
commitd78e6c19ff93964183950f846868ade625e6b537 (patch)
treef2d588a9646c8496db23d3fe868d7dce4f7dfa83 /ipl/packs/loadfuncpp/iexample.icn
parentf944578414d5adc0c6c3fb22ad5808077444a410 (diff)
parentf627f77f23d1497c9e1f4269b5c8812d12b42f18 (diff)
downloadicon-d78e6c19ff93964183950f846868ade625e6b537.tar.gz
Merge tag 'upstream/9.5.0'
Upstream version 9.5.0
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