blob: c18294c267032b9ad2b14c61f90d07e93d26d3ec (
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
;; $Id: ordrulei.lsp,v 1.5 2005/05/02 21:39:53 jschrod Exp $
;; ------------------------------------------------------------
;;;
;;; Interface definition of the ordrules module
;;;
(defpackage :ordrules
(:use :cl :ffi)
(:export :initialize
:add-keyword-sort-rule :add-keyword-merge-rule
:gen-keyword-sortkey :gen-keyword-mergekey))
(in-package :ordrules)
(c-lines "#include \"ordrules.h\"~%")
; Common OS definitions:
(def-c-type size_t uint)
(def-c-var *string-buffer*
(:name "ordrules_string_buffer")
(:type (c-array char 1024))
(:alloc :NONE))
(def-c-var *string-buffer-used-bytes*
(:name "ordrules_string_buffer_used_bytes")
(:type int)
(:alloc :NONE))
(def-c-var *string-buffer-used-bytes*
(:name "ordrules_string_buffer_used_bytes")
(:type int)
(:alloc :NONE))
(def-c-var *message-logging*
(:name "ordrules_msg_logging")
(:type int)
(:alloc :NONE))
(def-c-var *message-buffer*
(:name "ordrules_msg_buffer")
(:type c-string)
(:alloc :NONE))
(def-c-var *message-buffer-ptr*
(:name "ordrules_msg_buffer_ptr")
(:type int)
(:alloc :NONE))
(def-call-out initialize
(:language :stdc)
(:name "initialize")
(:arguments (num-sort-tables int))
(:return-type int))
(def-call-out add-keyword-sort-rule
(:language :stdc)
(:name "add_sort_rule")
(:arguments (run int)
(left c-string)
(right c-string)
(isreject int)
(ruletype int))
(:return-type int))
(def-call-out add-keyword-merge-rule
(:language :stdc)
(:name "add_merge_rule")
(:arguments (left c-string)
(right c-string)
(isreject int)
(ruletype int))
(:return-type int))
(def-call-out gen-keyword-sortkey
(:language :stdc)
(:name "gen_sortkey")
(:arguments (key c-string)
(run int))
(:return-type c-string :malloc-free))
(def-call-out gen-keyword-mergekey
(:language :stdc)
(:name "gen_mergekey")
(:arguments (key c-string))
(:return-type c-string :malloc-free))
#|
$Log: ordrulei.lsp,v $
Revision 1.5 2005/05/02 21:39:53 jschrod
xindy run time engine 3.0; as used for CLISP 2.33.2.
Revision 1.4 1997/10/20 11:23:12 kehr
New version of sorting rules. Sorting of more complex indexes (i.e.
French) is now possible.
Revision 1.3 1997/01/17 16:43:38 kehr
Several changes for new version 1.1.
Revision 1.2 1996/04/30 15:56:38 kehr
Renamed some of the functions to avoid conflicts with other functions
in other packages (only for the sake of convenience).
Revision 1.1 1996/03/27 20:29:07 kehr
It works. Today I had my first success in getting the FFI running with
the ordrules-library. The interface is defined in `ordrulei.lsp' and
allows direct access to the functions in `ordrules.c'.
|#
|