case mode fixes for allegrocl module

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6070 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Ahmon Dancy 2004-08-03 23:07:45 +00:00
commit 440a4592e3
3 changed files with 15 additions and 6 deletions

View file

@ -1,6 +1,12 @@
Version 1.3.22 (in progress)
==================================
08/03/2004: Ahmon Dancy <dancy@dancy>
[allegrocl] Additional case mode fixes. Also, make sure
foreign types are exported.
07/24/2004: mkoeppe
[Guile] In -scm mode, SWIG modules now exchange their pointer type
information via the Guile interpreter. It is no longer necessary to build a

View file

@ -14,7 +14,7 @@
(defun identifier-convert-null (id &key type)
(declare (ignore type))
(intern id))
(read-from-string id))
(defun identifier-convert-lispify (cname &key type)
(assert (stringp cname))
@ -42,7 +42,7 @@
else
(push char res)
(setf lastcase :other)))
(intern (coerce (nreverse res) 'string))))
(read-from-string (coerce (nreverse res) 'string))))
(defmacro swig-defconstant (string value)
(let ((symbol (funcall *swig-identifier-converter* string :type :constant)))
@ -57,7 +57,11 @@
(ff:def-foreign-call (,symbol ,name) ,@rest)
(export (quote ,symbol))))))
(defmacro swig-def-foreign-type (name &rest rest)
(let ((symbol (funcall *swig-identifier-converter* name :type :type)))
`(eval-when (compile load eval)
(ff:def-foreign-type ,symbol ,@rest)
(export (quote ,symbol)))))
) ;; eval-when
%}

View file

@ -360,10 +360,9 @@ int ALLEGROCL :: classDeclaration(Node *n) {
Printf(stderr, " (name: %s)\n", name);
SWIG_exit(EXIT_FAILURE);
}
Printf(f_cl,
"(ff:def-foreign-type #.(%s \"%s\" :type :type)\n (:struct\n",
identifier_converter,
"(swig-def-foreign-type \"%s\"\n (:struct\n",
name);
for (c=firstChild(n); c; c=nextSibling(c)) {