summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2020-09-12 22:36:02 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2020-09-12 22:36:02 +0100
commitde8b3788bf93574df99c69735e47da30598e7630 (patch)
treed95e3911b5f27af20915d2528c26ea7f5b20c59e
parent35d81dadb64289ccf6e7bcc8d455b1fa5d4a68dd (diff)
downloadswig-de8b3788bf93574df99c69735e47da30598e7630.tar.gz
Sphinx doc corrections - Extending.rst
-rw-r--r--SphinxDocs/source/Manual/Extending.rst240
1 files changed, 119 insertions, 121 deletions
diff --git a/SphinxDocs/source/Manual/Extending.rst b/SphinxDocs/source/Manual/Extending.rst
index ba1891ecc..17aa3e90a 100644
--- a/SphinxDocs/source/Manual/Extending.rst
+++ b/SphinxDocs/source/Manual/Extending.rst
@@ -158,7 +158,7 @@ intended to simplify the implementation of the internals. For instance,
rather than having to support dozens of special directives, it is easier
to have a few basic primitives such as ``%feature`` or ``%insert``.
-The *``langconfig.swg``* file is supplied by the target language. This
+The ``langconfig.swg`` file is supplied by the target language. This
file contains language-specific configuration information. More often
than not, this file provides run-time wrapper support code (e.g., the
type-checker) as well as a collection of typemaps that define the
@@ -819,7 +819,7 @@ these primitive types. Specifically:
Strings
~~~~~~~~~~~~~~
-**``String *NewString(const String_or_char *val)``**
+``String *NewString(const String_or_char *val)``
.. container:: indent
@@ -827,7 +827,7 @@ Strings
``char *`` or another ``String`` object. If you want to create an
empty string, use "" for val.
-**``String *NewStringf(const char *fmt, ...)``**
+``String *NewStringf(const char *fmt, ...)``
.. container:: indent
@@ -835,37 +835,37 @@ Strings
``printf`` style format string in ``fmt``. Additional arguments
follow depending on ``fmt``.
-**``String *Copy(String *s)``**
+``String *Copy(String *s)``
.. container:: indent
Make a copy of the string ``s``.
-**``void Delete(String *s)``**
+``void Delete(String *s)``
.. container:: indent
Deletes ``s``.
-**``int Len(const String_or_char *s)``**
+``int Len(const String_or_char *s)``
.. container:: indent
Returns the length of the string.
-**``char *Char(const String_or_char *s)``**
+``char *Char(const String_or_char *s)``
.. container:: indent
Returns a pointer to the first character in a string.
-**``void Append(String *s, const String_or_char *t)``**
+``void Append(String *s, const String_or_char *t)``
.. container:: indent
Appends ``t`` to the end of string ``s``.
-**``void Insert(String *s, int pos, const String_or_char *t)``**
+``void Insert(String *s, int pos, const String_or_char *t)``
.. container:: indent
@@ -874,40 +874,40 @@ Strings
for ``pos`` to indicate insertion at the end of the string
(appending).
-**``int Strcmp(const String_or_char *s, const String_or_char *t)``**
+``int Strcmp(const String_or_char *s, const String_or_char *t)``
.. container:: indent
Compare strings ``s`` and ``t``. Same as the C ``strcmp()`` function.
-**``int Strncmp(const String_or_char *s, const String_or_char *t, int len)``**
+``int Strncmp(const String_or_char *s, const String_or_char *t, int len)``
.. container:: indent
Compare the first ``len`` characters of strings ``s`` and ``t``. Same
as the C ``strncmp()`` function.
-**``char *Strstr(const String_or_char *s, const String_or_char *pat)``**
+``char *Strstr(const String_or_char *s, const String_or_char *pat)``
.. container:: indent
Returns a pointer to the first occurrence of ``pat`` in ``s``. Same
as the C ``strstr()`` function.
-**``char *Strchr(const String_or_char *s, char ch)``**
+``char *Strchr(const String_or_char *s, char ch)``
.. container:: indent
Returns a pointer to the first occurrence of character ``ch`` in
``s``. Same as the C ``strchr()`` function.
-**``void Chop(String *s)``**
+``void Chop(String *s)``
.. container:: indent
Chops trailing whitespace off the end of ``s``.
-**``int Replace(String *s, const String_or_char *pat, const String_or_char *rep, int flags)``**
+``int Replace(String *s, const String_or_char *pat, const String_or_char *rep, int flags)``
.. container:: indent
@@ -928,38 +928,38 @@ Strings
Hashes
~~~~~~~~~~~~~
-**``Hash *NewHash()``**
+``Hash *NewHash()``
.. container:: indent
Creates a new empty hash table.
-**``Hash *Copy(Hash *h)``**
+``Hash *Copy(Hash *h)``
.. container:: indent
Make a shallow copy of the hash ``h``.
-**``void Delete(Hash *h)``**
+``void Delete(Hash *h)``
.. container:: indent
Deletes ``h``.
-**``int Len(Hash *h)``**
+``int Len(Hash *h)``
.. container:: indent
Returns the number of items in ``h``.
-**``Object *Getattr(Hash *h, const String_or_char *key)``**
+``Object *Getattr(Hash *h, const String_or_char *key)``
.. container:: indent
Gets an object from ``h``. ``key`` may be a string or a simple
``char *`` string. Returns NULL if not found.
-**``int Setattr(Hash *h, const String_or_char *key, const Object_or_char *val)``**
+``int Setattr(Hash *h, const String_or_char *key, const Object_or_char *val)``
.. container:: indent
@@ -971,7 +971,7 @@ Hashes
``val``. Returns 1 if this operation replaced an existing hash entry,
0 otherwise.
-**``int Delattr(Hash *h, const String_or_char *key)``**
+``int Delattr(Hash *h, const String_or_char *key)``
.. container:: indent
@@ -979,7 +979,7 @@ Hashes
count on the corresponding object (if any). Returns 1 if an object
was removed, 0 otherwise.
-**``List *Keys(Hash *h)``**
+``List *Keys(Hash *h)``
.. container:: indent
@@ -988,31 +988,31 @@ Hashes
Lists
~~~~~~~~~~~~
-**``List *NewList()``**
+``List *NewList()``
.. container:: indent
Creates a new empty list.
-**``List *Copy(List *x)``**
+``List *Copy(List *x)``
.. container:: indent
Make a shallow copy of the List ``x``.
-**``void Delete(List *x)``**
+``void Delete(List *x)``
.. container:: indent
Deletes ``x``.
-**``int Len(List *x)``**
+``int Len(List *x)``
.. container:: indent
Returns the number of items in ``x``.
-**``Object *Getitem(List *x, int n)``**
+``Object *Getitem(List *x, int n)``
.. container:: indent
@@ -1020,7 +1020,7 @@ Lists
end of the list, the last item is returned. If ``n`` is negative, the
first item is returned.
-**``int *Setitem(List *x, int n, const Object_or_char *val)``**
+``int *Setitem(List *x, int n, const Object_or_char *val)``
.. container:: indent
@@ -1029,7 +1029,7 @@ Lists
used to construct a ``String`` that is stored in the list. ``n`` must
be in range. Otherwise, an assertion will be raised.
-**``int *Delitem(List *x, int n)``**
+``int *Delitem(List *x, int n)``
.. container:: indent
@@ -1037,7 +1037,7 @@ Lists
To delete the last item in the list, use the special value
``DOH_END`` for ``n``.
-**``void Append(List *x, const Object_or_char *t)``**
+``void Append(List *x, const Object_or_char *t)``
.. container:: indent
@@ -1045,7 +1045,7 @@ Lists
it is assumed to be a ``char *`` and is used to create a String
object.
-**``void Insert(String *s, int pos, const Object_or_char *t)``**
+``void Insert(String *s, int pos, const Object_or_char *t)``
.. container:: indent
@@ -1060,39 +1060,39 @@ Common operations
The following operations are applicable to all datatypes.
-**``Object *Copy(Object *x)``**
+``Object *Copy(Object *x)``
.. container:: indent
Make a copy of the object ``x``.
-**``void Delete(Object *x)``**
+``void Delete(Object *x)``
.. container:: indent
Deletes ``x``.
-**``void Setfile(Object *x, String_or_char *f)``**
+``void Setfile(Object *x, String_or_char *f)``
.. container:: indent
Sets the filename associated with ``x``. Used to track objects and
report errors.
-**``String *Getfile(Object *x)``**
+``String *Getfile(Object *x)``
.. container:: indent
Gets the filename associated with ``x``.
-**``void Setline(Object *x, int n)``**
+``void Setline(Object *x, int n)``
.. container:: indent
Sets the line number associated with ``x``. Used to track objects and
report errors.
-**``int Getline(Object *x)``**
+``int Getline(Object *x)``
.. container:: indent
@@ -1104,7 +1104,7 @@ Iterating over Lists and Hashes
To iterate over the elements of a list or a hash table, the following
functions are used:
-**``Iterator First(Object *x)``**
+``Iterator First(Object *x)``
.. container:: indent
@@ -1115,7 +1115,7 @@ functions are used:
key. The ``item`` and ``key`` attributes are NULL if the object
contains no items or if there are no more items.
-**``Iterator Next(Iterator i)``**
+``Iterator Next(Iterator i)``
.. container:: indent
@@ -1147,7 +1147,7 @@ Special I/O functions are used for all internal I/O. These operations
work on C ``FILE *`` objects, String objects, and special ``File``
objects (which are merely a wrapper around ``FILE *``).
-**``int Printf(String_or_FILE *f, const char *fmt, ...)``**
+``int Printf(String_or_FILE *f, const char *fmt, ...)``
.. container:: indent
@@ -1156,7 +1156,7 @@ objects (which are merely a wrapper around ``FILE *``).
format specifier works with both strings and ``char *``. All other
format operators have the same meaning.
-**``int Printv(String_or_FILE *f, String_or_char *arg1, ..., NULL)``**
+``int Printv(String_or_FILE *f, String_or_char *arg1, ..., NULL)``
.. container:: indent
@@ -1164,50 +1164,50 @@ objects (which are merely a wrapper around ``FILE *``).
argument to this function must be NULL. The other arguments can
either be ``char *`` or string objects.
-**``int Putc(int ch, String_or_FILE *f)``**
+``int Putc(int ch, String_or_FILE *f)``
.. container:: indent
Same as the C ``fputc()`` function.
-**``int Write(String_or_FILE *f, void *buf, int len)``**
+``int Write(String_or_FILE *f, void *buf, int len)``
.. container:: indent
Same as the C ``write()`` function.
-**``int Read(String_or_FILE *f, void *buf, int maxlen)``**
+``int Read(String_or_FILE *f, void *buf, int maxlen)``
.. container:: indent
Same as the C ``read()`` function.
-**``int Getc(String_or_FILE *f)``**
+``int Getc(String_or_FILE *f)``
.. container:: indent
Same as the C ``fgetc()`` function.
-**``int Ungetc(int ch, String_or_FILE *f)``**
+``int Ungetc(int ch, String_or_FILE *f)``
.. container:: indent
Same as the C ``ungetc()`` function.
-**``int Seek(String_or_FILE *f, int offset, int whence)``**
+``int Seek(String_or_FILE *f, int offset, int whence)``
.. container:: indent
Same as the C ``seek()`` function. ``offset`` is the number of bytes.
``whence`` is one of ``SEEK_SET``, ``SEEK_CUR``, or ``SEEK_END``..
-**``long Tell(String_or_FILE *f)``**
+``long Tell(String_or_FILE *f)``
.. container:: indent
Same as the C ``tell()`` function.
-**``File *NewFile(const char *filename, const char *mode, List *newfiles)``**
+``File *NewFile(const char *filename, const char *mode, List *newfiles)``
.. container:: indent
@@ -1217,7 +1217,7 @@ objects (which are merely a wrapper around ``FILE *``).
``newfiles`` list if ``newfiles`` is non-zero and the file was
created successfully.
-**``File *NewFileFromFile(FILE *f)``**
+``File *NewFileFromFile(FILE *f)``
.. container:: indent
@@ -1255,42 +1255,42 @@ table in which arbitrary attributes can be stored. Certain attributes in
the hash table provide links to other parse tree nodes. The following
macros can be used to move around the parse tree.
-**``String *nodeType(Node *n)``**
+``String *nodeType(Node *n)``
.. container:: indent
Returns the node type tag as a string. The returned string indicates
the type of parse tree node.
-**``Node *nextSibling(Node *n)``**
+``Node *nextSibling(Node *n)``
.. container:: indent
Returns the next node in the parse tree. For example, the next C
declaration.
-**``Node *previousSibling(Node *n)``**
+``Node *previousSibling(Node *n)``
.. container:: indent
Returns the previous node in the parse tree. For example, the
previous C declaration.
-**``Node *firstChild(Node *n)``**
+``Node *firstChild(Node *n)``
.. container:: indent
Returns the first child node. For example, if ``n`` was a C++ class
node, this would return the node for the first class member.
-**``Node *lastChild(Node *n)``**
+``Node *lastChild(Node *n)``
.. container:: indent
Returns the last child node. You might use this if you wanted to
append a new node to the children of a class.
-**``Node *parentNode(Node *n)``**
+``Node *parentNode(Node *n)``
.. container:: indent
@@ -1300,37 +1300,37 @@ The following macros can be used to change all of the above attributes.
Normally, these functions are only used by the parser. Changing them
without knowing what you are doing is likely to be dangerous.
-**``void set_nodeType(Node *n, const String_or_char)``**
+``void set_nodeType(Node *n, const String_or_char)``
.. container:: indent
Change the node type. tree node.
-**``void set_nextSibling(Node *n, Node *s)``**
+``void set_nextSibling(Node *n, Node *s)``
.. container:: indent
Set the next sibling.
-**``void set_previousSibling(Node *n, Node *s)``**
+``void set_previousSibling(Node *n, Node *s)``
.. container:: indent
Set the previous sibling.
-**``void set_firstChild(Node *n, Node *c)``**
+``void set_firstChild(Node *n, Node *c)``
.. container:: indent
Set the first child node.
-**``void set_lastChild(Node *n, Node *c)``**
+``void set_lastChild(Node *n, Node *c)``
.. container:: indent
Set the last child node.
-**``void set_parentNode(Node *n, Node *p)``**
+``void set_parentNode(Node *n, Node *p)``
.. container:: indent
@@ -1339,14 +1339,14 @@ without knowing what you are doing is likely to be dangerous.
The following utility functions are used to alter the parse tree (at
your own risk)
-**``void appendChild(Node *parent, Node *child)``**
+``void appendChild(Node *parent, Node *child)``
.. container:: indent
Append a child to ``parent``. The appended node becomes the last
child.
-**``void deleteNode(Node *node)``**
+``void deleteNode(Node *node)``
.. container:: indent
@@ -1401,7 +1401,7 @@ modifies a node, it is required to restore modified attributes to their
original values. To simplify the task of saving/restoring attributes,
the following functions are used:
-**``int Swig_save(const char *ns, Node *n, const char *name1, const char *name2, ..., NIL)``**
+``int Swig_save(const char *ns, Node *n, const char *name1, const char *name2, ..., NIL)``
.. container:: indent
@@ -1414,7 +1414,7 @@ the following functions are used:
this can be examined to find out where previous values of attributes
might have been saved.
-**``int Swig_restore(Node *n)``**
+``int Swig_restore(Node *n)``
.. container:: indent
@@ -1446,7 +1446,7 @@ the following functions are used:
return SWIG_OK;
}
-**``int Swig_require(const char *ns, Node *n, const char *name1, const char *name2, ..., NIL)``**
+``int Swig_require(const char *ns, Node *n, const char *name1, const char *name2, ..., NIL)``
.. container:: indent
@@ -1555,68 +1555,68 @@ Type construction
The following functions are used to construct types. You should use
these functions instead of trying to build the type strings yourself.
-**``void SwigType_add_pointer(SwigType *ty)``**
+``void SwigType_add_pointer(SwigType *ty)``
.. container:: indent
Adds a pointer to ``ty``.
-**``void SwigType_del_pointer(SwigType *ty)``**
+``void SwigType_del_pointer(SwigType *ty)``
.. container:: indent
Removes a single pointer from ``ty``.
-**``void SwigType_add_reference(SwigType *ty)``**
+``void SwigType_add_reference(SwigType *ty)``
.. container:: indent
Adds a reference to ``ty``.
-**``void SwigType_add_array(SwigType *ty, const String_or_char *size)``**
+``void SwigType_add_array(SwigType *ty, const String_or_char *size)``
.. container:: indent
Adds an array with dimension ``dim`` to ``ty``.
-**``void SwigType_del_array(SwigType *ty)``**
+``void SwigType_del_array(SwigType *ty)``
.. container:: indent
Removes a single array dimension from ``ty``.
-**``int SwigType_array_ndim(SwigType *ty)``**
+``int SwigType_array_ndim(SwigType *ty)``
.. container:: indent
Returns number of array dimensions of ``ty``.
-**``String* SwigType_array_getdim(SwigType *ty, int n)``**
+``String* SwigType_array_getdim(SwigType *ty, int n)``
.. container:: indent
Returns ``n``\ th array dimension of ``ty``.
-**``void SwigType_array_setdim(SwigType *ty, int n, const String_or_char *rep)``**
+``void SwigType_array_setdim(SwigType *ty, int n, const String_or_char *rep)``
.. container:: indent
Sets ``n``\ th array dimensions of ``ty`` to ``rep``.
-**``void SwigType_add_qualifier(SwigType *ty, const String_or_char *q)``**
+``void SwigType_add_qualifier(SwigType *ty, const String_or_char *q)``
.. container:: indent
Adds a type qualifier ``q`` to ``ty``. ``q`` is typically ``"const"``
or ``"volatile"``.
-**``void SwigType_add_memberpointer(SwigType *ty, const String_or_char *cls)``**
+``void SwigType_add_memberpointer(SwigType *ty, const String_or_char *cls)``
.. container:: indent
Adds a pointer to a member of class ``cls`` to ``ty``.
-**``void SwigType_add_function(SwigType *ty, ParmList *p)``**
+``void SwigType_add_function(SwigType *ty, ParmList *p)``
.. container:: indent
@@ -1624,7 +1624,7 @@ these functions instead of trying to build the type strings yourself.
as generated by the parser. See the section on parameter lists for
details about the representation.
-**``void SwigType_add_template(SwigType *ty, ParmList *p)``**
+``void SwigType_add_template(SwigType *ty, ParmList *p)``
.. container:: indent
@@ -1632,21 +1632,21 @@ these functions instead of trying to build the type strings yourself.
as generated by the parser. See the section on parameter lists for
details about the representation.
-**``SwigType *SwigType_pop(SwigType *ty)``**
+``SwigType *SwigType_pop(SwigType *ty)``
.. container:: indent
Removes the last type constructor from ``ty`` and returns it. ``ty``
is modified.
-**``void SwigType_push(SwigType *ty, SwigType *op)``**
+``void SwigType_push(SwigType *ty, SwigType *op)``
.. container:: indent
Pushes the type operators in ``op`` onto type ``ty``. The opposite of
``SwigType_pop()``.
-**``SwigType *SwigType_pop_arrays(SwigType *ty)``**
+``SwigType *SwigType_pop_arrays(SwigType *ty)``
.. container:: indent
@@ -1656,7 +1656,7 @@ these functions instead of trying to build the type strings yourself.
``"a(20).a(10)."`` and modify ``ty`` so that it has the value
``"p.int"``.
-**``SwigType *SwigType_pop_function(SwigType *ty)``**
+``SwigType *SwigType_pop_function(SwigType *ty)``
.. container:: indent
@@ -1665,7 +1665,7 @@ these functions instead of trying to build the type strings yourself.
this function would return ``"f(int)."`` and modify ``ty`` so that it
has the value ``"int"``.
-**``SwigType *SwigType_base(SwigType *ty)``**
+``SwigType *SwigType_base(SwigType *ty)``
.. container:: indent
@@ -1673,7 +1673,7 @@ these functions instead of trying to build the type strings yourself.
``"p.a(20).int"``, this function would return ``"int"``. ``ty`` is
unmodified.
-**``SwigType *SwigType_prefix(SwigType *ty)``**
+``SwigType *SwigType_prefix(SwigType *ty)``
.. container:: indent
@@ -1686,61 +1686,61 @@ Type tests
The following functions can be used to test properties of a datatype.
-**``int SwigType_ispointer(SwigType *ty)``**
+``int SwigType_ispointer(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a standard pointer.
-**``int SwigType_ismemberpointer(SwigType *ty)``**
+``int SwigType_ismemberpointer(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a member pointer.
-**``int SwigType_isreference(SwigType *ty)``**
+``int SwigType_isreference(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a C++ reference.
-**``int SwigType_isarray(SwigType *ty)``**
+``int SwigType_isarray(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is an array.
-**``int SwigType_isfunction(SwigType *ty)``**
+``int SwigType_isfunction(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a function.
-**``int SwigType_isqualifier(SwigType *ty)``**
+``int SwigType_isqualifier(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a qualifier.
-**``int SwigType_issimple(SwigType *ty)``**
+``int SwigType_issimple(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a simple type. No operators applied.
-**``int SwigType_isconst(SwigType *ty)``**
+``int SwigType_isconst(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a const type.
-**``int SwigType_isvarargs(SwigType *ty)``**
+``int SwigType_isvarargs(SwigType *ty)``
.. container:: indent
Checks if ``ty`` is a varargs type.
-**``int SwigType_istemplate(SwigType *ty)``**
+``int SwigType_istemplate(SwigType *ty)``
.. container:: indent
@@ -1785,7 +1785,7 @@ produces two trees like this:
To resolve a single typedef relationship, the following function is
used:
-**``SwigType *SwigType_typedef_resolve(SwigType *ty)``**
+``SwigType *SwigType_typedef_resolve(SwigType *ty)``
.. container:: indent
@@ -1825,7 +1825,7 @@ reduction of a function pointer:
Two types are equivalent if their full type reductions are the same. The
following function will fully reduce a datatype:
-**``SwigType *SwigType_typedef_resolve_all(SwigType *ty)``**
+``SwigType *SwigType_typedef_resolve_all(SwigType *ty)``
.. container:: indent
@@ -1841,7 +1841,7 @@ However, not all C datatypes can be used in this way---especially arrays
and const-qualified types. To generate a type that can be used as an
lvalue, use the following function:
-**``SwigType *SwigType_ltype(SwigType *ty)``**
+``SwigType *SwigType_ltype(SwigType *ty)``
.. container:: indent
@@ -1868,7 +1868,7 @@ Output functions
The following functions produce strings that are suitable for output.
-**``String *SwigType_str(SwigType *ty, const String_or_char *id = 0)``**
+``String *SwigType_str(SwigType *ty, const String_or_char *id = 0)``
.. container:: indent
@@ -1878,14 +1878,14 @@ The following functions produce strings that are suitable for output.
function is used to convert string-encoded types back into a form
that is valid C syntax.
-**``String *SwigType_lstr(SwigType *ty, const String_or_char *id = 0)``**
+``String *SwigType_lstr(SwigType *ty, const String_or_char *id = 0)``
.. container:: indent
This is the same as ``SwigType_str()`` except that the result is
generated from the type's lvalue (as generated from SwigType_ltype).
-**``String *SwigType_lcaststr(SwigType *ty, const String_or_char *id = 0)``**
+``String *SwigType_lcaststr(SwigType *ty, const String_or_char *id = 0)``
.. container:: indent
@@ -1894,7 +1894,7 @@ The following functions produce strings that are suitable for output.
example, if ``ty`` is "``q(const).p.char``" and ``id`` is "``foo``",
this function produces the string "``(char *) foo``".
-**``String *SwigType_rcaststr(SwigType *ty, const String_or_char *id = 0)``**
+``String *SwigType_rcaststr(SwigType *ty, const String_or_char *id = 0)``
.. container:: indent
@@ -1904,7 +1904,7 @@ The following functions produce strings that are suitable for output.
is "``foo``", this function produces the string
"``(const char *) foo``".
-**``String *SwigType_manglestr(SwigType *ty)``**
+``String *SwigType_manglestr(SwigType *ty)``
.. container:: indent
@@ -1954,39 +1954,39 @@ An empty list of parameters is denoted by a NULL pointer.
Since parameter lists are fairly common, the following utility functions
are provided to manipulate them:
-**``Parm *CopyParm(Parm *p);``**
+``Parm *CopyParm(Parm *p);``
.. container:: indent
Copies a single parameter.
-**``ParmList *CopyParmList(ParmList *p);``**
+``ParmList *CopyParmList(ParmList *p);``
.. container:: indent
Copies an entire list of parameters.
-**``int ParmList_len(ParmList *p);``**
+``int ParmList_len(ParmList *p);``
.. container:: indent
Returns the number of parameters in a parameter list.
-**``String *ParmList_str(ParmList *p);``**
+``String *ParmList_str(ParmList *p);``
.. container:: indent
Converts a parameter list into a C string. For example, produces a
string like "``(int *p, int n, double x);``".
-**``String *ParmList_protostr(ParmList *p);``**
+``String *ParmList_protostr(ParmList *p);``
.. container:: indent
The same as ``ParmList_str()`` except that parameter names are not
included. Used to emit prototypes.
-**``int ParmList_numrequired(ParmList *p);``**
+``int ParmList_numrequired(ParmList *p);``
.. container:: indent
@@ -2562,21 +2562,19 @@ uses, or be prepared to kludge.
The nickname is used in four places:
-**usage**
+.. list-table::
-**transform**
+ * - **usage**
+ - **transform**
-"skip" tag
+ * - "skip" tag
+ - (none)
-(none)
+ * - Examples/ subdir name
+ - (none)
-Examples/ subdir name
-
-(none)
-
-Examples/test-suite/ subdir name
-
-(none)
+ * - Examples/test-suite/ subdir name
+ - (none)
As you can see, most usages are direct.