diff options
author | Guido van Rossum <guido@python.org> | 1997-12-25 04:51:41 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-12-25 04:51:41 (GMT) |
commit | 81e84c95c5c3701fb3ede3b67d21004500387faf (patch) | |
tree | f74ae6b81bb6023115c8f35ccd509b710f3059b7 /Demo/embed | |
parent | 643f8f62b4a81d8d842d530f54d83f7751b2fb6e (diff) | |
download | cpython-81e84c95c5c3701fb3ede3b67d21004500387faf.zip cpython-81e84c95c5c3701fb3ede3b67d21004500387faf.tar.gz cpython-81e84c95c5c3701fb3ede3b67d21004500387faf.tar.bz2 |
Just for fun, add a static module, "xyzzy" -- show that calling its
initxyzzy() works.
Diffstat (limited to 'Demo/embed')
-rw-r--r-- | Demo/embed/demo.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Demo/embed/demo.c b/Demo/embed/demo.c index 418b225..9a1883f 100644 --- a/Demo/embed/demo.c +++ b/Demo/embed/demo.c @@ -4,6 +4,8 @@ static char *argv0; +void initxyzzy(); /* Forward */ + main(argc, argv) int argc; char **argv; @@ -14,6 +16,9 @@ main(argc, argv) /* Initialize the Python interpreter. Required. */ Py_Initialize(); + /* Add a static module */ + initxyzzy(); + /* Define sys.argv. It is up to the application if you want this; you can also let it undefined (since the Python code is generally not a main program it has no business @@ -26,6 +31,7 @@ main(argc, argv) /* Execute some Python statements (in module __main__) */ PyRun_SimpleString("import sys\n"); PyRun_SimpleString("print sys.builtin_module_names\n"); + PyRun_SimpleString("print sys.modules.keys()\n"); PyRun_SimpleString("print sys.argv\n"); /* Note that you can call any public function of the Python @@ -45,3 +51,27 @@ getprogramname() { return argv0; } + +/* A static module */ + +static PyObject * +xyzzy_foo(self, args) + PyObject *self; /* Not used */ + PyObject *args; +{ + if (!PyArg_ParseTuple(args, "")) + return NULL; + return PyInt_FromLong(42L); +} + +static PyMethodDef xyzzy_methods[] = { + {"foo", xyzzy_foo, 1}, + {NULL, NULL} /* sentinel */ +}; + +void +initxyzzy() +{ + PyImport_AddModule("xyzzy"); + Py_InitModule("xyzzy", xyzzy_methods); +} |