Mercurial > cpython-lru_cache-weakref
annotate Python/mactoolboxglue.c @ 39496:352ffe77b71d legacy-trunk
Patch #1535500: fix segfault in BZ2File.writelines and make sure it
raises the correct exceptions.
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Mon, 14 Aug 2006 21:42:55 +0000 |
| parents | f50b9da5e361 |
| children | bff9ebabfc15 0cbe94bea2c7 |
| 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" |
|
37798
81bf4d378b9e
This patches fixes a number of byteorder problems in MacOSX specific code.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
36501
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 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 /* 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
|
32 char * |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
33 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
|
34 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
35 static char buf[256]; |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
36 PyObject *m; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
37 PyObject *rv; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
38 |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
39 m = PyImport_ImportModule("MacOS"); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
40 if (!m) { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
41 if (Py_VerboseFlag) |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
42 PyErr_Print(); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
43 PyErr_Clear(); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
44 rv = NULL; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
45 } |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
46 else { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
47 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
|
48 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
|
49 PyErr_Clear(); |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
50 } |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
51 if (!rv) { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
52 buf[0] = '\0'; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
53 } |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
54 else { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
55 char *input = PyString_AsString(rv); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
56 if (!input) { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
57 PyErr_Clear(); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
58 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
|
59 } else { |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
60 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
|
61 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
|
62 } |
|
39063
f50b9da5e361
Add missing Py_DECREFs.
Thomas Heller <theller@ctypes.org>
parents:
37798
diff
changeset
|
63 Py_DECREF(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
|
64 } |
|
39063
f50b9da5e361
Add missing Py_DECREFs.
Thomas Heller <theller@ctypes.org>
parents:
37798
diff
changeset
|
65 Py_XDECREF(m); |
|
19064
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
66 return buf; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
67 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
68 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
69 /* 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
|
70 PyObject *PyMac_OSErrException; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
71 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
72 /* 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
|
73 PyObject * |
|
19841
d8dd75e3b304
Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents:
19645
diff
changeset
|
74 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
|
75 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
76 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
|
77 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
|
78 return PyMac_OSErrException; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
79 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
80 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
81 /* 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
|
82 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
83 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
|
84 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
85 char *msg; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
86 PyObject *v; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
87 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
88 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
|
89 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
|
90 return Py_None; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
91 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
92 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
|
93 return NULL; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
94 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
|
95 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
|
96 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
|
97 Py_DECREF(v); |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
98 return NULL; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
99 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
100 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
101 /* 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
|
102 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
103 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
|
104 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
105 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
|
106 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
107 |
|
19841
d8dd75e3b304
Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents:
19645
diff
changeset
|
108 |
|
d8dd75e3b304
Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents:
19645
diff
changeset
|
109 OSErr |
|
d8dd75e3b304
Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents:
19645
diff
changeset
|
110 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
|
111 { |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
112 PyObject *fs, *exc; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
113 PyObject *rv = NULL; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
114 char *input; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
115 OSErr err = noErr; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
116 |
|
19841
d8dd75e3b304
Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
Jack Jansen <jack.jansen@cwi.nl>
parents:
19645
diff
changeset
|
117 *path = '\0'; |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
118 |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
119 fs = PyMac_BuildFSSpec(fss); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
120 if (!fs) |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
121 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
|
122 |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
123 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
|
124 if (!rv) |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
125 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
|
126 |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
127 input = PyString_AsString(rv); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
128 if (!input) |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
129 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
|
130 |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
131 strncpy(path, input, len - 1); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
132 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
|
133 |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
134 Py_XDECREF(rv); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
135 Py_XDECREF(fs); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
136 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
|
137 |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
138 error: |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
139 exc = PyErr_Occurred(); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
140 if (exc && PyErr_GivenExceptionMatches(exc, |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
141 PyMac_GetOSErrException())) { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
142 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
|
143 if (args) { |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
144 char *ignore; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
145 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
|
146 Py_XDECREF(args); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
147 } |
|
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
|
148 } |
|
33908
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
149 if (err == noErr) |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
150 err = -1; |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
151 PyErr_Clear(); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
152 Py_XDECREF(rv); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
153 Py_XDECREF(fs); |
|
7ed899b61182
SF patch #1035255: Remove CoreServices / CoreFoundation dependencies in core
Raymond Hettinger <python@rcn.com>
parents:
32689
diff
changeset
|
154 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
|
155 } |
|
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
|
156 |
|
19064
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
157 /* 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
|
158 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
159 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
|
160 { |
|
37798
81bf4d378b9e
This patches fixes a number of byteorder problems in MacOSX specific code.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
36501
diff
changeset
|
161 uint32_t tmp; |
|
19064
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
162 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
|
163 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
|
164 "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
|
165 return 0; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
166 } |
|
37798
81bf4d378b9e
This patches fixes a number of byteorder problems in MacOSX specific code.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
36501
diff
changeset
|
167 memcpy((char *)&tmp, PyString_AsString(v), 4); |
|
81bf4d378b9e
This patches fixes a number of byteorder problems in MacOSX specific code.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
36501
diff
changeset
|
168 *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
|
169 return 1; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
170 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
171 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
172 /* 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
|
173 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
174 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
|
175 { |
|
37798
81bf4d378b9e
This patches fixes a number of byteorder problems in MacOSX specific code.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
36501
diff
changeset
|
176 uint32_t tmp = htonl((uint32_t)t); |
|
81bf4d378b9e
This patches fixes a number of byteorder problems in MacOSX specific code.
Ronald Oussoren <ronaldoussoren@mac.com>
parents:
36501
diff
changeset
|
177 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
|
178 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
179 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
180 /* 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
|
181 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
182 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
|
183 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
184 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
|
185 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
186 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
187 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
188 /* 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
|
189 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
190 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
|
191 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
192 int len; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
193 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
|
194 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
|
195 "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
|
196 return 0; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
197 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
198 pbuf[0] = len; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
199 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
|
200 return 1; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
201 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
202 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
203 /* 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
|
204 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
205 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
|
206 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
207 if ( s == NULL ) { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
208 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
|
209 return NULL; |
|
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 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
|
212 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
213 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
214 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
215 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
|
216 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
217 if ( s == NULL ) { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
218 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
|
219 return Py_None; |
|
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 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
|
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 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
225 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
226 /* 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
|
227 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
|
228 (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
|
229 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
|
230 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
231 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
|
232 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
233 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
|
234 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
235 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
236 /* 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
|
237 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
238 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
|
239 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
240 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
|
241 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
242 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
243 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
244 /* 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
|
245 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
|
246 (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
|
247 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
|
248 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
249 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
|
250 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
251 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
|
252 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
253 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
254 /* 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
|
255 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
256 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
|
257 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
258 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
|
259 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
260 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
261 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
262 /* 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
|
263 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
|
264 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
265 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
|
266 { |
|
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
|
267 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
|
268 &e->what, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
269 &e->message, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
270 &e->when, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
271 &e->where.h, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
272 &e->where.v, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
273 &e->modifiers); |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
274 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
275 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
276 /* 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
|
277 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
278 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
|
279 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
280 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
|
281 e->what, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
282 e->message, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
283 e->when, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
284 e->where.h, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
285 e->where.v, |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
286 e->modifiers); |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
287 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
288 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
289 /* 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
|
290 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
291 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
|
292 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
293 double d; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
294 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
295 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
|
296 return 0; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
297 *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
|
298 return 1; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
299 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
300 |
|
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
|
301 /* 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
|
302 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
303 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
|
304 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
305 double d; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
306 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
307 d = f; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
308 d = d / 0x10000; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
309 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
|
310 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
311 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
312 /* 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
|
313 int |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
314 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
|
315 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
316 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
|
317 rv->hi = 0; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
318 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
|
319 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
|
320 rv->hi = -1; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
321 return 1; |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
322 } |
|
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
|
323 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
|
324 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
325 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
326 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
327 PyObject * |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
328 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
|
329 { |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
330 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
|
331 (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
|
332 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
|
333 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
|
334 } |
|
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 #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
|
337 /* |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
338 ** 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
|
339 ** |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
340 ** 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
|
341 ** 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
|
342 ** 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
|
343 ** 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
|
344 ** |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
345 ** 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
|
346 ** 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
|
347 ** 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
|
348 ** 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
|
349 ** the pointer. |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
350 */ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
351 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
352 #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
|
353 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
|
354 \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
355 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
|
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 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
|
358 if (!PyMacGluePtr_##routinename) { \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
359 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
|
360 return NULL; \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
361 } \ |
|
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 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
|
364 } |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
365 |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
366 #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
|
367 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
|
368 \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
369 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
|
370 if (!PyMacGluePtr_##routinename) { \ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
33908
diff
changeset
|
371 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
|
372 if (!PyMacGluePtr_##routinename) { \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
373 PyErr_SetString(PyExc_ImportError, "Module did not provide routine: " module ": " #routinename); \ |
|
36501
7fdc639bc5b4
Merge ssize_t branch.
Martin v. Löwis <martin@v.loewis.de>
parents:
33908
diff
changeset
|
374 return 0; \ |
|
19064
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
375 } \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
376 } \ |
|
e57a4614469e
Split macglue.c into two: a new mactoolboxglue.c (in ./Python)
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
377 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
|
378 } |
|
19645
d55b75ac2fb4
Added glue routine for PyMac_BuildFSSpec, PyMac_GetFSRef and PyMac_BuildFSRef.
Jack Jansen <jack.jansen@cwi.nl>
parents:
19496
diff
changeset
|
379 |
|
28138
eb15de6a4a4c
Use Carbon.File for FSSpec and FSRef conversion, not macfs.
Jack Jansen <jack.jansen@cwi.nl>
parents:
27286
diff
changeset
|
380 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
|
381 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
|
382 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
|
383 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
|
384 |
|
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_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
|
386 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
|
387 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
|
388 |
|
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
|
389 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
|
390 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
|
391 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
|
392 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
|
393 |
|
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
|
394 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
|
395 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
|
396 |
|
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
|
397 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
|
398 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
|
399 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
|
400 |
|
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
|
401 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
|
402 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
|
403 |
|
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
|
404 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
|
405 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
|
406 |
|
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
|
407 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
|
408 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
|
409 |
|
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
|
410 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
|
411 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
|
412 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
|
413 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
|
414 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
|
415 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
|
416 |
|
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
|
417 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
|
418 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
|
419 |
|
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
|
420 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
|
421 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
|
422 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
|
423 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
|
424 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
|
425 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
|
426 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
|
427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 |
|
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
|
433 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
|
434 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
|
435 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
|
436 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
|
437 |
|
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
|
438 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
|
439 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
|
440 |
|
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
|
441 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
|
442 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
|
443 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
|
444 |
|
29279
b372b903d10e
Added functions CFObj_New and CFObj_Convert, general functions to convert
Jack Jansen <jack.jansen@cwi.nl>
parents:
28655
diff
changeset
|
445 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
|
446 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
|
447 |
|
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
|
448 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
|
449 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
|
450 |
|
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(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
|
452 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
|
453 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
|
454 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
|
455 |
|
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(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
|
457 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
|
458 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
|
459 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
|
460 |
|
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(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
|
462 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
|
463 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
|
464 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
|
465 |
|
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_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
|
467 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
|
468 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
|
469 |
| 26134 | 470 #endif /* USE_TOOLBOX_OBJECT_GLUE */ |
