annotate Python/mactoolboxglue.c @ 40053:693ff5d73412 2.4

Port of universal binary support for Mac OSX from python 2.5. This takes away the need for the out-of-tree universal binary support that was used to build the 2.4.3 installer. Missing here relative to that tree are some changes to IDLE, IMHO those patches aren't appropriate for the 2.4 branch and users are better of using 2.5's IDLE.
author Ronald Oussoren <ronaldoussoren@mac.com>
date Sun, 08 Oct 2006 17:41:25 +0000
parents 7ed899b61182
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
1 /***********************************************************
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
2 Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
3 The Netherlands.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
4
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
5 All Rights Reserved
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
7 Permission to use, copy, modify, and distribute this software and its
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
8 documentation for any purpose and without fee is hereby granted,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
9 provided that the above copyright notice appear in all copies and that
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
10 both that copyright notice and this permission notice appear in
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
11 supporting documentation, and that the names of Stichting Mathematisch
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
12 Centrum or CWI not be used in advertising or publicity pertaining to
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
13 distribution of the software without specific, written prior permission.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
14
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
22
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
23 ******************************************************************/
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
24
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26 #include "Python.h"
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 #include "pymactoolbox.h"
40053
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
28 #include <arpa/inet.h> /* for ntohl, htonl */
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
29
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
30 /* Like strerror() but for Mac OS error numbers */
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
31 char *
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
32 PyMac_StrError(int err)
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
33 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34 static char buf[256];
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
35 PyObject *m;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
36 PyObject *rv;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
37
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
38 m = PyImport_ImportModule("MacOS");
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
39 if (!m) {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
40 if (Py_VerboseFlag)
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
41 PyErr_Print();
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
42 PyErr_Clear();
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
43 rv = NULL;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
44 }
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
45 else {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
46 rv = PyObject_CallMethod(m, "GetErrorString", "i", err);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
47 if (!rv)
26100
756319a137b8 Got rid of the python.rsrc resource file. The error message strings and
Jack Jansen <jack.jansen@cwi.nl>
parents: 25868
diff changeset
48 PyErr_Clear();
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
49 }
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
50 if (!rv) {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
51 buf[0] = '\0';
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
52 }
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
53 else {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
54 char *input = PyString_AsString(rv);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
55 if (!input) {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
56 PyErr_Clear();
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
57 buf[0] = '\0';
26100
756319a137b8 Got rid of the python.rsrc resource file. The error message strings and
Jack Jansen <jack.jansen@cwi.nl>
parents: 25868
diff changeset
58 } else {
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
59 strncpy(buf, input, sizeof(buf) - 1);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
60 buf[sizeof(buf) - 1] = '\0';
26100
756319a137b8 Got rid of the python.rsrc resource file. The error message strings and
Jack Jansen <jack.jansen@cwi.nl>
parents: 25868
diff changeset
61 }
756319a137b8 Got rid of the python.rsrc resource file. The error message strings and
Jack Jansen <jack.jansen@cwi.nl>
parents: 25868
diff changeset
62 }
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
63
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
64 return buf;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
65 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
66
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
67 /* Exception object shared by all Mac specific modules for Mac OS errors */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
68 PyObject *PyMac_OSErrException;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
69
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
70 /* Initialize and return PyMac_OSErrException */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
71 PyObject *
19841
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
72 PyMac_GetOSErrException(void)
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
73 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
74 if (PyMac_OSErrException == NULL)
25868
2b158267b00e Made MacOS.Error a class style exception (at last!).
Jack Jansen <jack.jansen@cwi.nl>
parents: 24480
diff changeset
75 PyMac_OSErrException = PyErr_NewException("MacOS.Error", NULL, NULL);
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
76 return PyMac_OSErrException;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
77 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
78
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
79 /* Set a MAC-specific error from errno, and return NULL; return None if no error */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
80 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
81 PyErr_Mac(PyObject *eobj, int err)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
82 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
83 char *msg;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
84 PyObject *v;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
85
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
86 if (err == 0 && !PyErr_Occurred()) {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
87 Py_INCREF(Py_None);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
88 return Py_None;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
90 if (err == -1 && PyErr_Occurred())
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
91 return NULL;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
92 msg = PyMac_StrError(err);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
93 v = Py_BuildValue("(is)", err, msg);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
94 PyErr_SetObject(eobj, v);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
95 Py_DECREF(v);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
96 return NULL;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
97 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
98
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
99 /* Call PyErr_Mac with PyMac_OSErrException */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
100 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
101 PyMac_Error(OSErr err)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
102 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
103 return PyErr_Mac(PyMac_GetOSErrException(), err);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
104 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
105
19841
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
106
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
107 OSErr
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
108 PyMac_GetFullPathname(FSSpec *fss, char *path, int len)
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
109 {
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
110 PyObject *fs, *exc;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
111 PyObject *rv = NULL;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
112 char *input;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
113 OSErr err = noErr;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
114
19841
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
115 *path = '\0';
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
116
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
117 fs = PyMac_BuildFSSpec(fss);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
118 if (!fs)
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
119 goto error;
19841
d8dd75e3b304 Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents: 19645
diff changeset
120
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
121 rv = PyObject_CallMethod(fs, "as_pathname", "");
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
122 if (!rv)
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
123 goto error;
24480
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
124
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
125 input = PyString_AsString(rv);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
126 if (!input)
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
127 goto error;
24480
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
128
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
129 strncpy(path, input, len - 1);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
130 path[len - 1] = '\0';
24480
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
131
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
132 Py_XDECREF(rv);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
133 Py_XDECREF(fs);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
134 return err;
24480
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
135
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
136 error:
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
137 exc = PyErr_Occurred();
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
138 if (exc && PyErr_GivenExceptionMatches(exc,
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
139 PyMac_GetOSErrException())) {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
140 PyObject *args = PyObject_GetAttrString(exc, "args");
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
141 if (args) {
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
142 char *ignore;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
143 PyArg_ParseTuple(args, "is", &err, &ignore);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
144 Py_XDECREF(args);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
145 }
24480
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
146 }
33908
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
147 if (err == noErr)
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
148 err = -1;
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
149 PyErr_Clear();
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
150 Py_XDECREF(rv);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
151 Py_XDECREF(fs);
7ed899b61182 SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents: 32689
diff changeset
152 return err;
24480
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
153 }
03d85d197052 Added one call to Py_Main(), for OSX framework builds only, that will get the
Jack Jansen <jack.jansen@cwi.nl>
parents: 21178
diff changeset
154
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
155 /* Convert a 4-char string object argument to an OSType value */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
156 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
157 PyMac_GetOSType(PyObject *v, OSType *pr)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
158 {
40053
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
159 int32_t tmp;
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
160 if (!PyString_Check(v) || PyString_Size(v) != 4) {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
161 PyErr_SetString(PyExc_TypeError,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
162 "OSType arg must be string of 4 chars");
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
163 return 0;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
164 }
40053
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
165 memcpy((char *)&tmp, PyString_AsString(v), 4);
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
166 *pr = (OSType)ntohl(tmp);
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
167 return 1;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
168 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
169
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
170 /* Convert an OSType value to a 4-char string object */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
171 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
172 PyMac_BuildOSType(OSType t)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
173 {
40053
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
174 uint32_t tmp = htonl((uint32_t)t);
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
175 return PyString_FromStringAndSize((char *)&tmp, 4);
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
176 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
177
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
178 /* Convert an NumVersion value to a 4-element tuple */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
179 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
180 PyMac_BuildNumVersion(NumVersion t)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
181 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
182 return Py_BuildValue("(hhhh)", t.majorRev, t.minorAndBugRev, t.stage, t.nonRelRev);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
183 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
184
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
185
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
186 /* Convert a Python string object to a Str255 */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
187 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
188 PyMac_GetStr255(PyObject *v, Str255 pbuf)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
189 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
190 int len;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
191 if (!PyString_Check(v) || (len = PyString_Size(v)) > 255) {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
192 PyErr_SetString(PyExc_TypeError,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
193 "Str255 arg must be string of at most 255 chars");
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
194 return 0;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
195 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
196 pbuf[0] = len;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
197 memcpy((char *)(pbuf+1), PyString_AsString(v), len);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
198 return 1;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
199 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
200
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
201 /* Convert a Str255 to a Python string object */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
202 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
203 PyMac_BuildStr255(Str255 s)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
204 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
205 if ( s == NULL ) {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
206 PyErr_SetString(PyExc_SystemError, "Str255 pointer is NULL");
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
207 return NULL;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
208 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
209 return PyString_FromStringAndSize((char *)&s[1], (int)s[0]);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
210 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
211
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
212 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
213 PyMac_BuildOptStr255(Str255 s)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
214 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
215 if ( s == NULL ) {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
216 Py_INCREF(Py_None);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
217 return Py_None;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
218 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
219 return PyString_FromStringAndSize((char *)&s[1], (int)s[0]);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
220 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
221
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
222
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
223
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
224 /* Convert a Python object to a Rect.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
225 The object must be a (left, top, right, bottom) tuple.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
226 (This differs from the order in the struct but is consistent with
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
227 the arguments to SetRect(), and also with STDWIN). */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
228 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
229 PyMac_GetRect(PyObject *v, Rect *r)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
230 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
231 return PyArg_Parse(v, "(hhhh)", &r->left, &r->top, &r->right, &r->bottom);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
232 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
233
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
234 /* Convert a Rect to a Python object */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
235 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
236 PyMac_BuildRect(Rect *r)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
237 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
238 return Py_BuildValue("(hhhh)", r->left, r->top, r->right, r->bottom);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
239 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
240
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
241
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
242 /* Convert a Python object to a Point.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
243 The object must be a (h, v) tuple.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
244 (This differs from the order in the struct but is consistent with
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
245 the arguments to SetPoint(), and also with STDWIN). */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
246 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
247 PyMac_GetPoint(PyObject *v, Point *p)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
248 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
249 return PyArg_Parse(v, "(hh)", &p->h, &p->v);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
250 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
251
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
252 /* Convert a Point to a Python object */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
253 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
254 PyMac_BuildPoint(Point p)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
255 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
256 return Py_BuildValue("(hh)", p.h, p.v);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
257 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
258
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
259
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
260 /* Convert a Python object to an EventRecord.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
261 The object must be a (what, message, when, (v, h), modifiers) tuple. */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
262 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
263 PyMac_GetEventRecord(PyObject *v, EventRecord *e)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
264 {
28655
16f47bd431c4 Oops, 'k' is the new format code for un unchecked 32 bit quantity,
Jack Jansen <jack.jansen@cwi.nl>
parents: 28654
diff changeset
265 return PyArg_Parse(v, "(Hkk(hh)H)",
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
266 &e->what,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
267 &e->message,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
268 &e->when,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
269 &e->where.h,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
270 &e->where.v,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
271 &e->modifiers);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
272 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
273
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
274 /* Convert a Rect to an EventRecord object */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
275 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
276 PyMac_BuildEventRecord(EventRecord *e)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
277 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
278 return Py_BuildValue("(hll(hh)h)",
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
279 e->what,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
280 e->message,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
281 e->when,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
282 e->where.h,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
283 e->where.v,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
284 e->modifiers);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
285 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
286
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
287 /* Convert Python object to Fixed */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
288 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
289 PyMac_GetFixed(PyObject *v, Fixed *f)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
290 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
291 double d;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
292
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
293 if( !PyArg_Parse(v, "d", &d))
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
294 return 0;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
295 *f = (Fixed)(d * 0x10000);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
296 return 1;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
297 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
298
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
299 /* Convert a Fixed to a Python object */
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
300 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
301 PyMac_BuildFixed(Fixed f)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
302 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
303 double d;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
304
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
305 d = f;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
306 d = d / 0x10000;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
307 return Py_BuildValue("d", d);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
308 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
309
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
310 /* Convert wide to/from Python int or (hi, lo) tuple. XXXX Should use Python longs */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
311 int
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
312 PyMac_Getwide(PyObject *v, wide *rv)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
313 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
314 if (PyInt_Check(v)) {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
315 rv->hi = 0;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
316 rv->lo = PyInt_AsLong(v);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
317 if( rv->lo & 0x80000000 )
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
318 rv->hi = -1;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
319 return 1;
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
320 }
28655
16f47bd431c4 Oops, 'k' is the new format code for un unchecked 32 bit quantity,
Jack Jansen <jack.jansen@cwi.nl>
parents: 28654
diff changeset
321 return PyArg_Parse(v, "(kk)", &rv->hi, &rv->lo);
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
322 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
323
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
324
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
325 PyObject *
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
326 PyMac_Buildwide(wide *w)
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
327 {
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
328 if ( (w->hi == 0 && (w->lo & 0x80000000) == 0) ||
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
329 (w->hi == -1 && (w->lo & 0x80000000) ) )
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
330 return PyInt_FromLong(w->lo);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
331 return Py_BuildValue("(ll)", w->hi, w->lo);
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
332 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
333
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
334 #ifdef USE_TOOLBOX_OBJECT_GLUE
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
335 /*
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
336 ** Glue together the toolbox objects.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
337 **
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
338 ** Because toolbox modules interdepend on each other, they use each others
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
339 ** object types, on MacOSX/MachO this leads to the situation that they
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
340 ** cannot be dynamically loaded (or they would all have to be lumped into
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
341 ** a single .so, but this would be bad for extensibility).
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
342 **
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
343 ** This file defines wrappers for all the _New and _Convert functions,
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
344 ** which are the Py_BuildValue and PyArg_ParseTuple helpers. The wrappers
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
345 ** check an indirection function pointer, and if it isn't filled in yet
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
346 ** they import the appropriate module, whose init routine should fill in
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
347 ** the pointer.
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
348 */
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
349
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
350 #define GLUE_NEW(object, routinename, module) \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
351 PyObject *(*PyMacGluePtr_##routinename)(object); \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
352 \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
353 PyObject *routinename(object cobj) { \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
354 if (!PyMacGluePtr_##routinename) { \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
355 if (!PyImport_ImportModule(module)) return NULL; \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
356 if (!PyMacGluePtr_##routinename) { \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
357 PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
358 return NULL; \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
359 } \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
360 } \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
361 return (*PyMacGluePtr_##routinename)(cobj); \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
362 }
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
363
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
364 #define GLUE_CONVERT(object, routinename, module) \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
365 int (*PyMacGluePtr_##routinename)(PyObject *, object *); \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
366 \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
367 int routinename(PyObject *pyobj, object *cobj) { \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
368 if (!PyMacGluePtr_##routinename) { \
40053
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
369 if (!PyImport_ImportModule(module)) return 0; \
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
370 if (!PyMacGluePtr_##routinename) { \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
371 PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \
40053
693ff5d73412 Port of universal binary support for Mac OSX from python 2.5. This takes away
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 33908
diff changeset
372 return 0; \
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
373 } \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
374 } \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
375 return (*PyMacGluePtr_##routinename)(pyobj, cobj); \
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
376 }
19645
d55b75ac2fb4 Added glue routine for PyMac_BuildFSSpec, PyMac_GetFSRef and PyMac_BuildFSRef.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19496
diff changeset
377
28138
eb15de6a4a4c Use Carbon.File for FSSpec and FSRef conversion, not macfs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 27286
diff changeset
378 GLUE_NEW(FSSpec *, PyMac_BuildFSSpec, "Carbon.File")
eb15de6a4a4c Use Carbon.File for FSSpec and FSRef conversion, not macfs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 27286
diff changeset
379 GLUE_CONVERT(FSSpec, PyMac_GetFSSpec, "Carbon.File")
eb15de6a4a4c Use Carbon.File for FSSpec and FSRef conversion, not macfs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 27286
diff changeset
380 GLUE_NEW(FSRef *, PyMac_BuildFSRef, "Carbon.File")
eb15de6a4a4c Use Carbon.File for FSSpec and FSRef conversion, not macfs.
Jack Jansen <jack.jansen@cwi.nl>
parents: 27286
diff changeset
381 GLUE_CONVERT(FSRef, PyMac_GetFSRef, "Carbon.File")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
382
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
383 GLUE_NEW(AppleEvent *, AEDesc_New, "Carbon.AE") /* XXXX Why by address? */
27286
04e5610c5efe It turns out that some calls return AEDesc records that are "borrowed",
Jack Jansen <jack.jansen@cwi.nl>
parents: 26764
diff changeset
384 GLUE_NEW(AppleEvent *, AEDesc_NewBorrowed, "Carbon.AE")
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
385 GLUE_CONVERT(AppleEvent, AEDesc_Convert, "Carbon.AE")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
386
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
387 GLUE_NEW(Component, CmpObj_New, "Carbon.Cm")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
388 GLUE_CONVERT(Component, CmpObj_Convert, "Carbon.Cm")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
389 GLUE_NEW(ComponentInstance, CmpInstObj_New, "Carbon.Cm")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
390 GLUE_CONVERT(ComponentInstance, CmpInstObj_Convert, "Carbon.Cm")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
391
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
392 GLUE_NEW(ControlHandle, CtlObj_New, "Carbon.Ctl")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
393 GLUE_CONVERT(ControlHandle, CtlObj_Convert, "Carbon.Ctl")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
394
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
395 GLUE_NEW(DialogPtr, DlgObj_New, "Carbon.Dlg")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
396 GLUE_CONVERT(DialogPtr, DlgObj_Convert, "Carbon.Dlg")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
397 GLUE_NEW(DialogPtr, DlgObj_WhichDialog, "Carbon.Dlg")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
398
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
399 GLUE_NEW(DragReference, DragObj_New, "Carbon.Drag")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
400 GLUE_CONVERT(DragReference, DragObj_Convert, "Carbon.Drag")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
401
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
402 GLUE_NEW(ListHandle, ListObj_New, "Carbon.List")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
403 GLUE_CONVERT(ListHandle, ListObj_Convert, "Carbon.List")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
404
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
405 GLUE_NEW(MenuHandle, MenuObj_New, "Carbon.Menu")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
406 GLUE_CONVERT(MenuHandle, MenuObj_Convert, "Carbon.Menu")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
407
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
408 GLUE_NEW(GrafPtr, GrafObj_New, "Carbon.Qd")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
409 GLUE_CONVERT(GrafPtr, GrafObj_Convert, "Carbon.Qd")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
410 GLUE_NEW(BitMapPtr, BMObj_New, "Carbon.Qd")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
411 GLUE_CONVERT(BitMapPtr, BMObj_Convert, "Carbon.Qd")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
412 GLUE_NEW(RGBColor *, QdRGB_New, "Carbon.Qd") /* XXXX Why? */
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
413 GLUE_CONVERT(RGBColor, QdRGB_Convert, "Carbon.Qd")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
414
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
415 GLUE_NEW(GWorldPtr, GWorldObj_New, "Carbon.Qdoffs")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
416 GLUE_CONVERT(GWorldPtr, GWorldObj_Convert, "Carbon.Qdoffs")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
417
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
418 GLUE_NEW(Track, TrackObj_New, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
419 GLUE_CONVERT(Track, TrackObj_Convert, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
420 GLUE_NEW(Movie, MovieObj_New, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
421 GLUE_CONVERT(Movie, MovieObj_Convert, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
422 GLUE_NEW(MovieController, MovieCtlObj_New, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
423 GLUE_CONVERT(MovieController, MovieCtlObj_Convert, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
424 GLUE_NEW(TimeBase, TimeBaseObj_New, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
425 GLUE_CONVERT(TimeBase, TimeBaseObj_Convert, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
426 GLUE_NEW(UserData, UserDataObj_New, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
427 GLUE_CONVERT(UserData, UserDataObj_Convert, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
428 GLUE_NEW(Media, MediaObj_New, "Carbon.Qt")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
429 GLUE_CONVERT(Media, MediaObj_Convert, "Carbon.Qt")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
430
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
431 GLUE_NEW(Handle, ResObj_New, "Carbon.Res")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
432 GLUE_CONVERT(Handle, ResObj_Convert, "Carbon.Res")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
433 GLUE_NEW(Handle, OptResObj_New, "Carbon.Res")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
434 GLUE_CONVERT(Handle, OptResObj_Convert, "Carbon.Res")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
435
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
436 GLUE_NEW(TEHandle, TEObj_New, "Carbon.TE")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
437 GLUE_CONVERT(TEHandle, TEObj_Convert, "Carbon.TE")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
438
19496
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
439 GLUE_NEW(WindowPtr, WinObj_New, "Carbon.Win")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
440 GLUE_CONVERT(WindowPtr, WinObj_Convert, "Carbon.Win")
617555579611 Refer to the toolbox modules by their official name (Carbon.AE), not the internal name (_AE). This can slow things down (once) but it's the only way I can get things to work on OSX, OS9 dynamically loaded and OS9 frozen.
Jack Jansen <jack.jansen@cwi.nl>
parents: 19442
diff changeset
441 GLUE_NEW(WindowPtr, WinObj_WhichWindow, "Carbon.Win")
19064
e57a4614469e Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
442
29279
b372b903d10e Added functions CFObj_New and CFObj_Convert, general functions to convert
Jack Jansen <jack.jansen@cwi.nl>
parents: 28655
diff changeset
443 GLUE_CONVERT(CFTypeRef, CFObj_Convert, "Carbon.CF")
b372b903d10e Added functions CFObj_New and CFObj_Convert, general functions to convert
Jack Jansen <jack.jansen@cwi.nl>
parents: 28655
diff changeset
444 GLUE_NEW(CFTypeRef, CFObj_New, "Carbon.CF")
b372b903d10e Added functions CFObj_New and CFObj_Convert, general functions to convert
Jack Jansen <jack.jansen@cwi.nl>
parents: 28655
diff changeset
445
20877
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
446 GLUE_CONVERT(CFTypeRef, CFTypeRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
447 GLUE_NEW(CFTypeRef, CFTypeRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
448
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
449 GLUE_CONVERT(CFStringRef, CFStringRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
450 GLUE_NEW(CFStringRef, CFStringRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
451 GLUE_CONVERT(CFMutableStringRef, CFMutableStringRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
452 GLUE_NEW(CFMutableStringRef, CFMutableStringRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
453
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
454 GLUE_CONVERT(CFArrayRef, CFArrayRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
455 GLUE_NEW(CFArrayRef, CFArrayRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
456 GLUE_CONVERT(CFMutableArrayRef, CFMutableArrayRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
457 GLUE_NEW(CFMutableArrayRef, CFMutableArrayRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
458
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
459 GLUE_CONVERT(CFDictionaryRef, CFDictionaryRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
460 GLUE_NEW(CFDictionaryRef, CFDictionaryRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
461 GLUE_CONVERT(CFMutableDictionaryRef, CFMutableDictionaryRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
462 GLUE_NEW(CFMutableDictionaryRef, CFMutableDictionaryRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
463
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
464 GLUE_CONVERT(CFURLRef, CFURLRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
465 GLUE_CONVERT(CFURLRef, OptionalCFURLRefObj_Convert, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
466 GLUE_NEW(CFURLRef, CFURLRefObj_New, "Carbon.CF")
d54e294484b2 Make the CoreFoundation object _New and _Convert routines available to other modules. Idea by Donovan Preston, implementaion by me.
Jack Jansen <jack.jansen@cwi.nl>
parents: 20789
diff changeset
467
26134
076512a0c6c2 Restore to ANSI C.
Michael W. Hudson <mwh@python.net>
parents: 26100
diff changeset
468 #endif /* USE_TOOLBOX_OBJECT_GLUE */