summaryrefslogtreecommitdiffstats
path: root/Mac/Modules/gestaltmodule.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1994-09-16 10:54:21 (GMT)
committerGuido van Rossum <guido@python.org>1994-09-16 10:54:21 (GMT)
commit2d16703d654e773b09fd73e66ef663a2d5256768 (patch)
tree4d5540e7ae487d5ffc93b050d763db08b2f829d7 /Mac/Modules/gestaltmodule.c
parentbf677edc45a08e61bc3147b65b6d9e40e07ba26e (diff)
downloadcpython-2d16703d654e773b09fd73e66ef663a2d5256768.zip
cpython-2d16703d654e773b09fd73e66ef663a2d5256768.tar.gz
cpython-2d16703d654e773b09fd73e66ef663a2d5256768.tar.bz2
gestaltmodule.c: interface to Gestalt Manager.
macosmodule.c: interface to random collection of Managers. macsetfiletype.c: set file type, for import.c.
Diffstat (limited to 'Mac/Modules/gestaltmodule.c')
-rw-r--r--Mac/Modules/gestaltmodule.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/Mac/Modules/gestaltmodule.c b/Mac/Modules/gestaltmodule.c
new file mode 100644
index 0000000..efc7b07
--- /dev/null
+++ b/Mac/Modules/gestaltmodule.c
@@ -0,0 +1,45 @@
+/* Macintosh Gestalt interface */
+
+#include "allobjects.h"
+#include "modsupport.h"
+
+#include <Types.h>
+#include <GestaltEqu.h>
+
+static object *
+gestalt_gestalt(self, args)
+ object *self;
+ object *args;
+{
+ OSErr iErr;
+ char *str;
+ int size;
+ OSType selector;
+ long response;
+ if (!getargs(args, "s#", &str, &size))
+ return NULL;
+ if (size != 4) {
+ err_setstr(TypeError, "gestalt arg must be 4-char string");
+ return NULL;
+ }
+ selector = *(OSType*)str;
+ iErr = Gestalt ( selector, &response );
+ if (iErr != 0) {
+ char buf[100];
+ sprintf(buf, "Gestalt error code %d", iErr);
+ err_setstr(RuntimeError, buf);
+ return NULL;
+ }
+ return newintobject(response);
+}
+
+static struct methodlist gestalt_methods[] = {
+ {"gestalt", gestalt_gestalt},
+ {NULL, NULL} /* Sentinel */
+};
+
+void
+initgestalt()
+{
+ initmodule("gestalt", gestalt_methods);
+}