blob: c6e5960ff2ae41fd945e280c0e29ce0622989e8a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
(load "../common")
(with-dyn-lib (libc)
(deffi qsort "qsort" void ((ptr (array str)) size-t size-t closure))
(deffi-cb qsort-cb int ((ptr str-d) (ptr str-d)))
(deffi qsortw "qsort" void ((ptr (array wstr)) size-t size-t closure))
(deffi-cb qsortw-cb int ((ptr wstr-d) (ptr wstr-d))))
(let ((vec #("the" "quick" "brown" "fox" "jumped" "over" "the" "lazy" "dogs")))
(prinl vec)
(qsort vec (length vec) (sizeof str) [qsort-cb cmp-str])
(prinl vec))
(let ((vec #("the" "quick" "brown" "fox" "jumped" "over" "the" "lazy" "dogs")))
(prinl vec)
(qsortw vec (length vec) (sizeof str) [qsortw-cb cmp-str])
(prinl vec))
(let ((vec #("the" "quick" "brown" "fox" "jumped" "over" "the" "lazy" "dogs")))
(prinl vec)
(prinl (block foo
(qsort vec (length vec) (sizeof str)
[qsort-cb (lambda (x y) (return-from foo 42))])))
(prinl vec))
(let ((vec #("the" "quick")))
(prinl vec)
(prinl (block foo
(qsortw vec (length vec) (sizeof str)
[qsortw-cb (lambda (x y) (return-from foo 42))])))
(prinl vec))
|