annotate Python/mactoolboxglue.c @ 40069:4eefce8bc2f7 2.4

[Partial backport of r45947 | neal.norwitz] Fix problems found by Coverity. longobject.c: also fix an ssize_t problem <a> could have been NULL, so hoist the size calc to not use <a>. [The ssize_t change isn't needed for 2.4. The other changes in this revision are to modules not present in 2.4. --amk]
author Andrew M. Kuchling <amk@amk.ca>
date Mon, 09 Oct 2006 18:42:49 +0000
parents 693ff5d73412
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 */