summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2000-09-01 05:30:00 (GMT)
committerFred Drake <fdrake@acm.org>2000-09-01 05:30:00 (GMT)
commite0d9a83bea5f78964217fd1f2dd82027841c9444 (patch)
treeea185f70081409f20c96a96d348031b1176c5f94
parent045946d4ee89ea6377868f557079a6057f5692f9 (diff)
downloadcpython-e0d9a83bea5f78964217fd1f2dd82027841c9444.zip
cpython-e0d9a83bea5f78964217fd1f2dd82027841c9444.tar.gz
cpython-e0d9a83bea5f78964217fd1f2dd82027841c9444.tar.bz2
Document PyImport_AppendInittab(), PyImport_ExtendInittab(), and
struct _inittab. This closes SourceForge bug #111499.
-rw-r--r--Doc/api/api.tex40
1 files changed, 39 insertions, 1 deletions
diff --git a/Doc/api/api.tex b/Doc/api/api.tex
index c8731c9..3c313c5 100644
--- a/Doc/api/api.tex
+++ b/Doc/api/api.tex
@@ -1238,7 +1238,7 @@ already imported.)
This is the structure type definition for frozen module descriptors,
as generated by the \program{freeze}\index{freeze utility} utility
(see \file{Tools/freeze/} in the Python source distribution). Its
-definition is:
+definition, found in \file{Include/import.h}, is:
\begin{verbatim}
struct _frozen {
@@ -1257,6 +1257,44 @@ this table. Third-party code could play tricks with this to provide a
dynamically created collection of frozen modules.
\end{cvardesc}
+\begin{cfuncdesc}{int}{PyImport_AppendInittab}{char *name,
+ void (*initfunc)(void)}
+Add a single module to the existing table of built-in modules. This
+is a convenience wrapper around \cfunction{PyImport_ExtendInittab()},
+returning \code{-1} if the table could not be extended. The new
+module can be imported by the name \var{name}, and uses the function
+\var{initfunc} as the initialization function called on the first
+attempted import. This should be called before
+\cfunction{Py_Initialize()}.
+\end{cfuncdesc}
+
+\begin{ctypedesc}[_inittab]{struct _inittab}
+Structure describing a single entry in the list of built-in modules.
+Each of these structures gives the name and initialization function
+for a module built into the interpreter. Programs which embed Python
+may use an array of these structures in conjunction with
+\cfunction{PyImport_ExtendInittab()} to provide additional built-in
+modules. The structure is defined in \file{Include/import.h} as:
+
+\begin{verbatim}
+struct _inittab {
+ char *name;
+ void (*initfunc)(void);
+};
+\end{verbatim}
+\end{ctypedesc}
+
+\begin{cfuncdesc}{int}{PyImport_ExtendInittab}{struct _inittab *newtab}
+Add a collection of modules to the table of built-in modules. The
+\var{newtab} array must end with a sentinel entry which contains
+\NULL{} for the \member{name} field; failure to provide the sentinel
+value can result in a memory fault. Returns \code{0} on success or
+\code{-1} if insufficient memory could be allocated to extend the
+internal table. In the event of failure, no modules are added to the
+internal table. This should be called before
+\cfunction{Py_Initialize()}.
+\end{cfuncdesc}
+
\chapter{Abstract Objects Layer \label{abstract}}