/* Macintosh Gestalt interface */ #include "allobjects.h" #include "modsupport.h" #include #include 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); }