uffi/doc html.tar.gz,1.16,1.17 ref.sgml,1.34,1.35 uffi.pdf,1.20,1.21
"Kevin M. Rosenberg" <[email protected]> Thu, 14 Aug 2003 19:35:07 +0000
| Newsgroups | gmane.lisp.uffi.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /pubcvs/uffi/doc
In directory boa.b9.com:/tmp/cvs-serv14284/doc
Modified Files:
html.tar.gz ref.sgml uffi.pdf
Log Message:
Index: ref.sgml
===================================================================
RCS file: /pubcvs/uffi/doc/ref.sgml,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** ref.sgml 5 May 2003 21:57:50 -0000 1.34
--- ref.sgml 14 Aug 2003 19:35:05 -0000 1.35
***************
*** 760,764 ****
<title>Examples</title>
<programlisting>
! (def-array ca :char)
(let ((fs (convert-to-foreign-string "ab")))
(values (null-char-p (deref-array fs 'ca 0))
--- 760,764 ----
<title>Examples</title>
<programlisting>
! (def-array-pointer ca :char)
(let ((fs (convert-to-foreign-string "ab")))
(values (null-char-p (deref-array fs 'ca 0))
***************
*** 769,772 ****
--- 769,780 ----
</refsect1>
<refsect1>
+ <title>Notes</title>
+ <para>
+ The TYPE argument is ignored for CL implementations other than
+ AllegroCL. If you want to cast a pointer to another type use
+ WITH-CAST-POINTER together with DEREF-POINTER/DEREF-ARRAY.
+ </para>
+ </refsect1>
+ <refsect1>
<title>Side Effects</title>
<para>None.</para>
***************
*** 1218,1221 ****
--- 1226,1237 ----
</refsect1>
<refsect1>
+ <title>Notes</title>
+ <para>
+ The TYPE argument is ignored for CL implementations other than
+ AllegroCL. If you want to cast a pointer to another type use
+ WITH-CAST-POINTER together with DEREF-POINTER/DEREF-ARRAY.
+ </para>
+ </refsect1>
+ <refsect1>
<title>Side Effects</title>
<para>None.</para>
***************
*** 1267,1272 ****
<title>Description</title>
<para>
! Ensures that an object obtained by dereferencing a
! <constant>:char</constant> pointer is a character.
</para>
</refsect1>
--- 1283,1289 ----
<title>Description</title>
<para>
! Ensures that an objects obtained by dereferencing
! <constant>:char</constant> and <constant>:unsigned-char</constant>
! pointers are a lisp character.
</para>
</refsect1>
***************
*** 1489,1492 ****
--- 1506,1580 ----
</refentry>
+ <refentry id="with-cast-pointer">
+ <refnamediv>
+ <refname>with-cast-pointer</refname>
+ <refpurpose>Wraps a body of code with a pointer cast to a new type.
+ </refpurpose>
+ <refclass>Macro</refclass>
+ </refnamediv>
+ <refsynopsisdiv>
+ <title>Syntax</title>
+ <synopsis>
+ <function>with-cast-pointer</function> <replaceable>binding-name ptr type & body body</replaceable> => <returnvalue>value</returnvalue>
+ </synopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>Arguments and Values</title>
+ <variablelist>
+ <varlistentry>
+ <term><parameter>ptr</parameter></term>
+ <listitem>
+ <para>A pointer to a foreign object.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><parameter>type</parameter></term>
+ <listitem>
+ <para>A foreign type of the object being pointed to.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><returnvalue>value</returnvalue></term>
+ <listitem>
+ <para>The value of the object where the pointer points.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>Description</title>
+ <para>
+ Executes BODY with POINTER casted to be a pointer to type TYPE. If
+ BINDING-NAME is provided the casted pointer will be bound to this
+ name during the execution of BODY. If BINDING-NAME is not provided
+ POINTER must be a name bound to the pointer which should be
+ casted. This name will be bound to the casted pointer during the
+ execution of BODY.
+
+ This is a no-op in AllegroCL but will wrap BODY in a LET form if
+ BINDING-NAME is provided.
+
+ This macro is meant to be used in conjunction with DEREF-POINTER or
+ DEREF-ARRAY. In Allegro CL the "cast" will actually take place in
+ DEREF-POINTER or DEREF-ARRAY.
+ </para>
+ </refsect1>
+ <refsect1>
+ <title>Side Effects</title>
+ <para>None.</para>
+ </refsect1>
+ <refsect1>
+ <title>Affected by</title>
+ <para>None.</para>
+ </refsect1>
+ <refsect1>
+ <title>Exceptional Situations</title>
+ <para>None.</para>
+ </refsect1>
+ </refentry>
+
</reference>
***************
*** 2075,2079 ****
<title>Syntax</title>
<synopsis>
! <function>load-foreign-library</function> <replaceable>filename &key module supporting-libraries</replaceable> => <returnvalue>success</returnvalue>
</synopsis>
</refsect1>
--- 2163,2167 ----
<title>Syntax</title>
<synopsis>
! <function>load-foreign-library</function> <replaceable>filename &key module supporting-libraries force-load</replaceable> => <returnvalue>success</returnvalue>
</synopsis>
</refsect1>
***************
*** 2107,2110 ****
--- 2195,2205 ----
</varlistentry>
<varlistentry>
+ <term><parameter>force-load</parameter></term>
+ <listitem>
+ <para>Forces the loading of the library if it has been previously loaded.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term><returnvalue>success</returnvalue></term>
<listitem>
***************
*** 2121,2125 ****
<para>Loads a foreign library. Applies a module name to functions
within the library. Ensures that a library is only loaded once during
! a session.
</para>
</refsect1>
--- 2216,2220 ----
<para>Loads a foreign library. Applies a module name to functions
within the library. Ensures that a library is only loaded once during
! a session. A library can be reloaded by using the <symbol>:force-load</symbol> key.
</para>
</refsect1>
Index: html.tar.gz
===================================================================
RCS file: /pubcvs/uffi/doc/html.tar.gz,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
Binary files /tmp/cvsZRftSK and /tmp/cvsEipXrl differ
Index: uffi.pdf
===================================================================
RCS file: /pubcvs/uffi/doc/uffi.pdf,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
Binary files /tmp/cvsUhG9AM and /tmp/cvsyA7wxv differ