summaryrefslogtreecommitdiff
path: root/Modules/xxmodule.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-08-04 12:41:02 +0000
committerGuido van Rossum <guido@python.org>1992-08-04 12:41:02 +0000
commit1984f1e1c6306d4e8073c28d2395638f80ea509b (patch)
tree4366039e7665e689aef04549c3e3d73f99bdab32 /Modules/xxmodule.c
parent4fbf798f866b10ee50cc91a394d19c0d4b2f79ab (diff)
downloadcpython-git-1984f1e1c6306d4e8073c28d2395638f80ea509b.tar.gz
* Makefile adapted to changes below.
* split pythonmain.c in two: most stuff goes to pythonrun.c, in the library. * new optional built-in threadmodule.c, build upon Sjoerd's thread.{c,h}. * new module from Sjoerd: mmmodule.c (dynamically loaded). * new module from Sjoerd: sv (svgen.py, svmodule.c.proto). * new files thread.{c,h} (from Sjoerd). * new xxmodule.c (example only). * myselect.h: bzero -> memset * select.c: bzero -> memset; removed global variable
Diffstat (limited to 'Modules/xxmodule.c')
-rw-r--r--Modules/xxmodule.c92
1 files changed, 92 insertions, 0 deletions
diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c
new file mode 100644
index 0000000000..070a6222cb
--- /dev/null
+++ b/Modules/xxmodule.c
@@ -0,0 +1,92 @@
+/***********************************************************
+Copyright 1991, 1992 by Stichting Mathematisch Centrum, Amsterdam, The
+Netherlands.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the names of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+******************************************************************/
+
+/* xx module */
+
+#include "allobjects.h"
+#include "modsupport.h"
+
+
+/* Function of two integers returning integer */
+
+static object *
+xx_foo(self, args)
+ object *self; /* Not used */
+ object *args;
+{
+ long i, j;
+ long res;
+ if (!getargs(args, "(ll)", &i, &j))
+ return NULL;
+ res = i+j; /* XXX Do something here */
+ return newintobject(res);
+}
+
+
+/* Function of no arguments returning None */
+
+static object *
+xx_bar(self, args)
+ object *self; /* Not used */
+ object *args;
+{
+ int i, j;
+ if (!getnoarg(args))
+ return NULL;
+ /* XXX Do something here */
+ INCREF(None);
+ return None;
+}
+
+
+/* List of functions defined in the module */
+
+static struct methodlist xx_methods[] = {
+ {"foo", xx_foo},
+ {"bar", xx_bar},
+ {NULL, NULL} /* sentinel */
+};
+
+
+/* Initialization function for the module (*must* be called initxx) */
+
+void
+initxx()
+{
+ object *m, *d, *x;
+
+ /* Create the module and add the functions */
+ m = initmodule("xx", xx_methods);
+
+ /* Add some symbolic constants to the module */
+ d = getmoduledict(m);
+ x = newstringobject("xx.error");
+ dictinsert(d, "error", x);
+ x = newintobject(42L);
+ dictinsert(d, "magic", x);
+
+ /* Check for errors */
+ if (err_occurred())
+ fatal("can't initialize module xx");
+}