Skip to content

Commit

Permalink
Added binding, no package
Browse files Browse the repository at this point in the history
  • Loading branch information
krzysz00 committed Jun 14, 2011
1 parent 50211bd commit a9d08b5
Show file tree
Hide file tree
Showing 4 changed files with 397 additions and 0 deletions.
1 change: 1 addition & 0 deletions README
@@ -0,0 +1 @@
cl-gettext is a Common Lisp binding to GNU gettext.
137 changes: 137 additions & 0 deletions gettext-cffi.isp
@@ -0,0 +1,137 @@
;;; This file was automatically generated by SWIG (http://www.swig.org).
;;; Version 1.3.40
;;;
;;; Do not make changes to this file unless you know what you are doing--modify
;;; the SWIG interface file instead.


;;;SWIG wrapper code starts here

(cl:defmacro defanonenum (&body enums)
"Converts anonymous enums to defconstants."
`(cl:progn ,@(cl:loop for value in enums
for index = 0 then (cl:1+ index)
when (cl:listp value) do (cl:setf index (cl:second value)
value (cl:first value))
collect `(cl:defconstant ,value ,index))))

(cl:eval-when (:compile-toplevel :load-toplevel)
(cl:unless (cl:fboundp 'swig-lispify)
(cl:defun swig-lispify (name flag cl:&optional (package cl:*package*))
(cl:labels ((helper (lst last rest cl:&aux (c (cl:car lst)))
(cl:cond
((cl:null lst)
rest)
((cl:upper-case-p c)
(helper (cl:cdr lst) 'upper
(cl:case last
((lower digit) (cl:list* c #\- rest))
(cl:t (cl:cons c rest)))))
((cl:lower-case-p c)
(helper (cl:cdr lst) 'lower (cl:cons (cl:char-upcase c) rest)))
((cl:digit-char-p c)
(helper (cl:cdr lst) 'digit
(cl:case last
((upper lower) (cl:list* c #\- rest))
(cl:t (cl:cons c rest)))))
((cl:char-equal c #\_)
(helper (cl:cdr lst) '_ (cl:cons #\- rest)))
(cl:t
(cl:error "Invalid character: ~A" c)))))
(cl:let ((fix (cl:case flag
((constant enumvalue) "+")
(variable "*")
(cl:t ""))))
(cl:intern
(cl:concatenate
'cl:string
fix
(cl:nreverse (helper (cl:concatenate 'cl:list name) cl:nil cl:nil))
fix)
package))))))

;;;SWIG wrapper code ends here


(cffi:defcfun ("gettext" gettext) :string
(__msgid :string))

(cffi:defcfun ("dgettext" dgettext) :string
(__domainname :string)
(__msgid :string))

(cffi:defcfun ("dcgettext" dcgettext) :string
(__domainname :string)
(__msgid :string)
(__category :int))

(cffi:defcfun ("ngettext" ngettext) :string
(__msgid1 :string)
(__msgid2 :string)
(__n :unsigned-long))

(cffi:defcfun ("dngettext" dngettext) :string
(__domainname :string)
(__msgid1 :string)
(__msgid2 :string)
(__n :unsigned-long))

(cffi:defcfun ("textdomain" textdomain) :string
(__domainname :string))

(cffi:defcfun ("bindtextdomain" bindtextdomain) :string
(__domainname :string)
(__dirname :string))

(cffi:defcfun ("bind_textdomain_codeset" bind_textdomain_codeset) :string
(__domainname :string)
(__codeset :string))

(defanonenum
(__LC_CTYPE #.0)
(__LC_NUMERIC #.1)
(__LC_TIME #.2)
(__LC_COLLATE #.3)
(__LC_MONETARY #.4)
(__LC_MESSAGES #.5)
(__LC_ALL #.6)
(__LC_PAPER #.7)
(__LC_NAME #.8)
(__LC_ADDRESS #.9)
(__LC_TELEPHONE #.10)
(__LC_MEASUREMENT #.11)
(__LC_IDENTIFICATION #.12))

(cffi:defcstruct lconv
(decimal_point :string)
(thousands_sep :string)
(grouping :string)
(int_curr_symbol :string)
(currency_symbol :string)
(mon_decimal_point :string)
(mon_thousands_sep :string)
(mon_grouping :string)
(positive_sign :string)
(negative_sign :string)
(int_frac_digits :char)
(frac_digits :char)
(p_cs_precedes :char)
(p_sep_by_space :char)
(n_cs_precedes :char)
(n_sep_by_space :char)
(p_sign_posn :char)
(n_sign_posn :char)
(__int_p_cs_precedes :char)
(__int_p_sep_by_space :char)
(__int_n_cs_precedes :char)
(__int_n_sep_by_space :char)
(__int_p_sign_posn :char)
(__int_n_sign_posn :char))

(cffi:defcfun ("setlocale" setlocale) :string
(__category :int)
(__locale :string))

(cffi:defcfun ("localeconv" localeconv) :pointer)


137 changes: 137 additions & 0 deletions gettext-cffi.lisp
@@ -0,0 +1,137 @@
;;; This file was automatically generated by SWIG (http://www.swig.org).
;;; Version 1.3.40
;;;
;;; Do not make changes to this file unless you know what you are doing--modify
;;; the SWIG interface file instead.


;;;SWIG wrapper code starts here

(cl:defmacro defanonenum (&body enums)
"Converts anonymous enums to defconstants."
`(cl:progn ,@(cl:loop for value in enums
for index = 0 then (cl:1+ index)
when (cl:listp value) do (cl:setf index (cl:second value)
value (cl:first value))
collect `(cl:defconstant ,value ,index))))

(cl:eval-when (:compile-toplevel :load-toplevel)
(cl:unless (cl:fboundp 'swig-lispify)
(cl:defun swig-lispify (name flag cl:&optional (package cl:*package*))
(cl:labels ((helper (lst last rest cl:&aux (c (cl:car lst)))
(cl:cond
((cl:null lst)
rest)
((cl:upper-case-p c)
(helper (cl:cdr lst) 'upper
(cl:case last
((lower digit) (cl:list* c #\- rest))
(cl:t (cl:cons c rest)))))
((cl:lower-case-p c)
(helper (cl:cdr lst) 'lower (cl:cons (cl:char-upcase c) rest)))
((cl:digit-char-p c)
(helper (cl:cdr lst) 'digit
(cl:case last
((upper lower) (cl:list* c #\- rest))
(cl:t (cl:cons c rest)))))
((cl:char-equal c #\_)
(helper (cl:cdr lst) '_ (cl:cons #\- rest)))
(cl:t
(cl:error "Invalid character: ~A" c)))))
(cl:let ((fix (cl:case flag
((constant enumvalue) "+")
(variable "*")
(cl:t ""))))
(cl:intern
(cl:concatenate
'cl:string
fix
(cl:nreverse (helper (cl:concatenate 'cl:list name) cl:nil cl:nil))
fix)
package))))))

;;;SWIG wrapper code ends here


(cffi:defcfun ("gettext" gettext) :string
(__msgid :string))

(cffi:defcfun ("dgettext" dgettext) :string
(__domainname :string)
(__msgid :string))

(cffi:defcfun ("dcgettext" dcgettext) :string
(__domainname :string)
(__msgid :string)
(__category :int))

(cffi:defcfun ("ngettext" ngettext) :string
(__msgid1 :string)
(__msgid2 :string)
(__n :unsigned-long))

(cffi:defcfun ("dngettext" dngettext) :string
(__domainname :string)
(__msgid1 :string)
(__msgid2 :string)
(__n :unsigned-long))

(cffi:defcfun ("textdomain" textdomain) :string
(__domainname :string))

(cffi:defcfun ("bindtextdomain" bindtextdomain) :string
(__domainname :string)
(__dirname :string))

(cffi:defcfun ("bind_textdomain_codeset" bind_textdomain_codeset) :string
(__domainname :string)
(__codeset :string))

(defanonenum
(__LC_CTYPE #.0)
(__LC_NUMERIC #.1)
(__LC_TIME #.2)
(__LC_COLLATE #.3)
(__LC_MONETARY #.4)
(__LC_MESSAGES #.5)
(__LC_ALL #.6)
(__LC_PAPER #.7)
(__LC_NAME #.8)
(__LC_ADDRESS #.9)
(__LC_TELEPHONE #.10)
(__LC_MEASUREMENT #.11)
(__LC_IDENTIFICATION #.12))

(cffi:defcstruct lconv
(decimal_point :string)
(thousands_sep :string)
(grouping :string)
(int_curr_symbol :string)
(currency_symbol :string)
(mon_decimal_point :string)
(mon_thousands_sep :string)
(mon_grouping :string)
(positive_sign :string)
(negative_sign :string)
(int_frac_digits :char)
(frac_digits :char)
(p_cs_precedes :char)
(p_sep_by_space :char)
(n_cs_precedes :char)
(n_sep_by_space :char)
(p_sign_posn :char)
(n_sign_posn :char)
(__int_p_cs_precedes :char)
(__int_p_sep_by_space :char)
(__int_n_cs_precedes :char)
(__int_n_sep_by_space :char)
(__int_p_sign_posn :char)
(__int_n_sign_posn :char))

(cffi:defcfun ("setlocale" setlocale) :string
(__category :int)
(__locale :string))

(cffi:defcfun ("localeconv" localeconv) :pointer)


0 comments on commit a9d08b5

Please sign in to comment.