- <refentry id="ensure-char">
- <refnamediv>
- <refname>ensure-char</refname>
- <refpurpose>Ensures value is a character.
- </refpurpose>
- <refclass>Macro</refclass>
- </refnamediv>
- <refsynopsisdiv>
- <title>Syntax</title>
- <synopsis>
- <function>ensure-char</function> <replaceable>obj</replaceable> => <returnvalue>char</returnvalue>
- </synopsis>
- </refsynopsisdiv>
- <refsect1>
- <title>Arguments and Values</title>
- <variablelist>
- <varlistentry>
- <term><parameter>obj</parameter></term>
- <listitem>
- <para>A character or integer.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>char</parameter></term>
- <listitem>
- <para>A character value.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
- </refsect1>
- <refsect1>
- <title>Description</title>
- <para>
- Enscapsulates the fact that some implementations return a character
-and others return an integer when dereferencing a character pointer.
- </para>
- </refsect1>
- <refsect1>
- <title>Examples</title>
- <para>
-<programlisting>
-(let ((fs (convert-to-foreign-string "a")))
- (prog1
- (ensure-char (deref-pointer fs :char))
- (free-foreign-object fs)))
-=> #\a
-</programlisting>
- </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>Signals an error if <parameter>obj</parameter> is not
-an integer or character.</para>
- </refsect1>
- </refentry>
-</reference>
-
-<reference>
- <title>Aggregate Types</title>