Mercurial > cpython-lru_cache-weakref
annotate Mac/Modules/macosmodule.c @ 4566:6403c94de50d legacy-trunk
Added safeguard against failure in __del__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 27 Nov 1996 19:39:58 +0000 |
| parents | d0c03c32e8d9 |
| children | d6b292a33cfe |
| rev | line source |
|---|---|
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /*********************************************************** |
| 2091 | 2 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, |
| 3 The Netherlands. | |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 All Rights Reserved |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 Permission to use, copy, modify, and distribute this software and its |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 documentation for any purpose and without fee is hereby granted, |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 provided that the above copyright notice appear in all copies and that |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 both that copyright notice and this permission notice appear in |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 supporting documentation, and that the names of Stichting Mathematisch |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 Centrum or CWI not be used in advertising or publicity pertaining to |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 distribution of the software without specific, written prior permission. |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 ******************************************************************/ |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 /* Macintosh OS-specific interface */ |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 #include "Python.h" |
|
2033
e43a1942e588
- Use PyErr_Mac for nicer exceptions
Jack Jansen <jack.jansen@cwi.nl>
parents:
1916
diff
changeset
|
28 #include "macglue.h" |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
30 #include <Windows.h> |
|
3425
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
31 #include <Files.h> |
|
4342
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
32 #include <LowMem.h> |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
33 |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 static PyObject *MacOS_Error; /* Exception MacOS.Error */ |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 |
|
2418
22b1ab0e6473
change SC ifdef to MPW
Guido van Rossum <guido@python.org>
parents:
2401
diff
changeset
|
36 #ifdef MPW |
| 2383 | 37 #define bufferIsSmall -607 /*error returns from Post and Accept */ |
| 38 #endif | |
| 39 | |
|
3425
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
40 static PyObject *ErrorObject; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
41 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
42 /* ----------------------------------------------------- */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
43 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
44 /* Declarations for objects of type Resource fork */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
45 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
46 typedef struct { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
47 PyObject_HEAD |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
48 short fRefNum; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
49 int isclosed; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
50 } rfobject; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
51 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
52 staticforward PyTypeObject Rftype; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
53 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
54 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
55 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
56 /* ---------------------------------------------------------------- */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
57 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
58 static void |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
59 do_close(self) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
60 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
61 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
62 if (self->isclosed ) return; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
63 (void)FSClose(self->fRefNum); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
64 self->isclosed = 1; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
65 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
66 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
67 static char rf_read__doc__[] = |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
68 "Read data from resource fork" |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
69 ; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
70 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
71 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
72 rf_read(self, args) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
73 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
74 PyObject *args; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
75 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
76 long n; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
77 PyObject *v; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
78 OSErr err; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
79 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
80 if (self->isclosed) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
81 PyErr_SetString(PyExc_ValueError, "Operation on closed file"); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
82 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
83 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
84 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
85 if (!PyArg_ParseTuple(args, "l", &n)) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
86 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
87 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
88 v = PyString_FromStringAndSize((char *)NULL, n); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
89 if (v == NULL) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
90 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
91 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
92 err = FSRead(self->fRefNum, &n, PyString_AsString(v)); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
93 if (err && err != eofErr) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
94 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
95 Py_DECREF(v); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
96 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
97 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
98 _PyString_Resize(&v, n); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
99 return v; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
100 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
101 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
102 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
103 static char rf_write__doc__[] = |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
104 "Write to resource fork" |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
105 ; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
106 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
107 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
108 rf_write(self, args) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
109 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
110 PyObject *args; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
111 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
112 char *buffer; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
113 long size; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
114 OSErr err; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
115 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
116 if (self->isclosed) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
117 PyErr_SetString(PyExc_ValueError, "Operation on closed file"); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
118 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
119 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
120 if (!PyArg_ParseTuple(args, "s#", &buffer, &size)) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
121 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
122 err = FSWrite(self->fRefNum, &size, buffer); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
123 if (err) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
124 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
125 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
126 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
127 Py_INCREF(Py_None); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
128 return Py_None; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
129 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
130 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
131 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
132 static char rf_seek__doc__[] = |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
133 "Set file position" |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
134 ; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
135 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
136 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
137 rf_seek(self, args) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
138 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
139 PyObject *args; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
140 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
141 long amount, pos; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
142 int whence = SEEK_SET; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
143 long eof; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
144 OSErr err; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
145 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
146 if (self->isclosed) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
147 PyErr_SetString(PyExc_ValueError, "Operation on closed file"); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
148 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
149 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
150 if (!PyArg_ParseTuple(args, "l|i", &amount, &whence)) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
151 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
152 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
153 if ( err = GetEOF(self->fRefNum, &eof)) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
154 goto ioerr; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
155 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
156 switch (whence) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
157 case SEEK_CUR: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
158 if (err = GetFPos(self->fRefNum, &pos)) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
159 goto ioerr; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
160 break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
161 case SEEK_END: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
162 pos = eof; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
163 break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
164 case SEEK_SET: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
165 pos = 0; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
166 break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
167 default: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
168 PyErr_BadArgument(); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
169 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
170 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
171 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
172 pos += amount; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
173 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
174 /* Don't bother implementing seek past EOF */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
175 if (pos > eof || pos < 0) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
176 PyErr_BadArgument(); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
177 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
178 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
179 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
180 if ( err = SetFPos(self->fRefNum, fsFromStart, pos) ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
181 ioerr: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
182 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
183 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
184 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
185 Py_INCREF(Py_None); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
186 return Py_None; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
187 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
188 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
189 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
190 static char rf_tell__doc__[] = |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
191 "Get file position" |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
192 ; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
193 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
194 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
195 rf_tell(self, args) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
196 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
197 PyObject *args; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
198 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
199 long where; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
200 OSErr err; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
201 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
202 if (self->isclosed) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
203 PyErr_SetString(PyExc_ValueError, "Operation on closed file"); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
204 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
205 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
206 if (!PyArg_ParseTuple(args, "")) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
207 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
208 if ( err = GetFPos(self->fRefNum, &where) ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
209 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
210 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
211 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
212 return PyInt_FromLong(where); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
213 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
214 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
215 static char rf_close__doc__[] = |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
216 "Close resource fork" |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
217 ; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
218 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
219 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
220 rf_close(self, args) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
221 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
222 PyObject *args; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
223 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
224 if (!PyArg_ParseTuple(args, "")) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
225 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
226 do_close(self); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
227 Py_INCREF(Py_None); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
228 return Py_None; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
229 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
230 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
231 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
232 static struct PyMethodDef rf_methods[] = { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
233 {"read", rf_read, 1, rf_read__doc__}, |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
234 {"write", rf_write, 1, rf_write__doc__}, |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
235 {"seek", rf_seek, 1, rf_seek__doc__}, |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
236 {"tell", rf_tell, 1, rf_tell__doc__}, |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
237 {"close", rf_close, 1, rf_close__doc__}, |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
238 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
239 {NULL, NULL} /* sentinel */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
240 }; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
241 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
242 /* ---------- */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
243 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
244 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
245 static rfobject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
246 newrfobject() |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
247 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
248 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
249 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
250 self = PyObject_NEW(rfobject, &Rftype); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
251 if (self == NULL) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
252 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
253 self->isclosed = 1; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
254 return self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
255 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
256 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
257 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
258 static void |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
259 rf_dealloc(self) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
260 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
261 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
262 do_close(self); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
263 PyMem_DEL(self); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
264 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
265 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
266 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
267 rf_getattr(self, name) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
268 rfobject *self; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
269 char *name; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
270 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
271 return Py_FindMethod(rf_methods, (PyObject *)self, name); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
272 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
273 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
274 static char Rftype__doc__[] = |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
275 "Resource fork file object" |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
276 ; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
277 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
278 static PyTypeObject Rftype = { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
279 PyObject_HEAD_INIT(&PyType_Type) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
280 0, /*ob_size*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
281 "Resource fork", /*tp_name*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
282 sizeof(rfobject), /*tp_basicsize*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
283 0, /*tp_itemsize*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
284 /* methods */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
285 (destructor)rf_dealloc, /*tp_dealloc*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
286 (printfunc)0, /*tp_print*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
287 (getattrfunc)rf_getattr, /*tp_getattr*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
288 (setattrfunc)0, /*tp_setattr*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
289 (cmpfunc)0, /*tp_compare*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
290 (reprfunc)0, /*tp_repr*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
291 0, /*tp_as_number*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
292 0, /*tp_as_sequence*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
293 0, /*tp_as_mapping*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
294 (hashfunc)0, /*tp_hash*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
295 (ternaryfunc)0, /*tp_call*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
296 (reprfunc)0, /*tp_str*/ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
297 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
298 /* Space for future expansion */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
299 0L,0L,0L,0L, |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
300 Rftype__doc__ /* Documentation string */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
301 }; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
302 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
303 /* End of code for Resource fork objects */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
304 /* -------------------------------------------------------- */ |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
305 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
306 /*----------------------------------------------------------------------*/ |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
307 /* Miscellaneous File System Operations */ |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
308 |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
309 static PyObject * |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
310 MacOS_GetCreatorAndType(PyObject *self, PyObject *args) |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
311 { |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
312 Str255 name; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
313 FInfo info; |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
314 PyObject *creator, *type, *res; |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
315 OSErr err; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
316 |
|
2209
4053d4cb50e0
renamed Get routines to PyMac_Get; added macfs to config.c
Guido van Rossum <guido@python.org>
parents:
2184
diff
changeset
|
317 if (!PyArg_ParseTuple(args, "O&", PyMac_GetStr255, &name)) |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
318 return NULL; |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
319 if ((err = GetFInfo(name, 0, &info)) != noErr) |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
320 return PyErr_Mac(MacOS_Error, err); |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
321 creator = PyString_FromStringAndSize((char *)&info.fdCreator, 4); |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
322 type = PyString_FromStringAndSize((char *)&info.fdType, 4); |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
323 res = Py_BuildValue("OO", creator, type); |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
324 Py_DECREF(creator); |
| 2136 | 325 Py_DECREF(type); |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
326 return res; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
327 } |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
328 |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
329 static PyObject * |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
330 MacOS_SetCreatorAndType(PyObject *self, PyObject *args) |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
331 { |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
332 Str255 name; |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
333 ResType creator, type; |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
334 FInfo info; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
335 OSErr err; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
336 |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
337 if (!PyArg_ParseTuple(args, "O&O&O&", |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
338 PyMac_GetStr255, &name, PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
339 return NULL; |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
340 if ((err = GetFInfo(name, 0, &info)) != noErr) |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
341 return PyErr_Mac(MacOS_Error, err); |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
342 info.fdCreator = creator; |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
343 info.fdType = type; |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
344 if ((err = SetFInfo(name, 0, &info)) != noErr) |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
345 return PyErr_Mac(MacOS_Error, err); |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
346 Py_INCREF(Py_None); |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
347 return Py_None; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
348 } |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
349 |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
350 /*----------------------------------------------------------------------*/ |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
351 /* STDWIN High Level Event interface */ |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
352 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
353 #include <EPPC.h> |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
354 #include <Events.h> |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
355 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
356 #ifdef USE_STDWIN |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
357 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
358 extern void (*_w_high_level_event_proc)(EventRecord *); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
359 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
360 static PyObject *MacOS_HighLevelEventHandler = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
361 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
362 static void |
|
2232
8d5e36b37a41
Got rid of the Resource and Sound interfaces, in favor of the ones
Guido van Rossum <guido@python.org>
parents:
2229
diff
changeset
|
363 MacOS_HighLevelEventProc(EventRecord *e) |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
364 { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
365 if (MacOS_HighLevelEventHandler != NULL) { |
|
2232
8d5e36b37a41
Got rid of the Resource and Sound interfaces, in favor of the ones
Guido van Rossum <guido@python.org>
parents:
2229
diff
changeset
|
366 PyObject *args = PyMac_BuildEventRecord(e); |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
367 PyObject *res; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
368 if (args == NULL) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
369 res = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
370 else { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
371 res = PyEval_CallObject(MacOS_HighLevelEventHandler, args); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
372 Py_DECREF(args); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
373 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
374 if (res == NULL) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
375 fprintf(stderr, "Exception in MacOS_HighLevelEventProc:\n"); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
376 PyErr_Print(); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
377 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
378 else |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
379 Py_DECREF(res); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
380 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
381 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
382 |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
383 /* XXXX Need to come here from PyMac_DoYield too... */ |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
384 |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
385 static PyObject * |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
386 MacOS_SetHighLevelEventHandler(self, args) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
387 PyObject *self; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
388 PyObject *args; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
389 { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
390 PyObject *previous = MacOS_HighLevelEventHandler; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
391 PyObject *next = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
392 if (!PyArg_ParseTuple(args, "|O", &next)) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
393 return NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
394 if (next == Py_None) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
395 next = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
396 Py_INCREF(next); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
397 MacOS_HighLevelEventHandler = next; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
398 if (next == NULL) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
399 _w_high_level_event_proc = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
400 else |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
401 _w_high_level_event_proc = MacOS_HighLevelEventProc; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
402 if (previous == NULL) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
403 Py_INCREF(Py_None); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
404 previous = Py_None; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
405 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
406 return previous; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
407 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
408 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
409 #endif /* USE_STDWIN */ |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
410 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
411 static PyObject * |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
412 MacOS_AcceptHighLevelEvent(self, args) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
413 PyObject *self; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
414 PyObject *args; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
415 { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
416 TargetID sender; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
417 unsigned long refcon; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
418 Ptr buf; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
419 unsigned long len; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
420 OSErr err; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
421 PyObject *res; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
422 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
423 buf = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
424 len = 0; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
425 err = AcceptHighLevelEvent(&sender, &refcon, buf, &len); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
426 if (err == bufferIsSmall) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
427 buf = malloc(len); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
428 if (buf == NULL) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
429 return PyErr_NoMemory(); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
430 err = AcceptHighLevelEvent(&sender, &refcon, buf, &len); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
431 if (err != noErr) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
432 free(buf); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
433 return PyErr_Mac(MacOS_Error, (int)err); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
434 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
435 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
436 else if (err != noErr) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
437 return PyErr_Mac(MacOS_Error, (int)err); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
438 res = Py_BuildValue("s#ls#", |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
439 (char *)&sender, (int)(sizeof sender), refcon, (char *)buf, (int)len); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
440 free(buf); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
441 return res; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
442 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
443 |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
444 /* |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
445 ** Set poll frequency and cpu-yield-time |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
446 */ |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
447 static PyObject * |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
448 MacOS_SetScheduleTimes(PyObject *self, PyObject *args) |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
449 { |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
450 long fgi, fgy, bgi, bgy; |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
451 |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
452 bgi = bgy = -2; |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
453 if (!PyArg_ParseTuple(args, "ll|ll", &fgi, &fgy, &bgi, &bgy)) |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
454 return NULL; |
| 2401 | 455 if ( bgi == -2 || bgy == -2 ) { |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
456 bgi = fgi; |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
457 bgy = fgy; |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
458 } |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
459 PyMac_SetYield(fgi, fgy, bgi, bgy); |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
460 Py_INCREF(Py_None); |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
461 return Py_None; |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
462 } |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
463 |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
464 static PyObject * |
|
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
465 MacOS_EnableAppswitch(PyObject *self, PyObject *args) |
|
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
466 { |
|
2429
efb0685a6c91
return old value of PyMac_DoYieldEnabled; -1 means do not even check for interrupts
Guido van Rossum <guido@python.org>
parents:
2418
diff
changeset
|
467 int old, new; |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
468 |
|
2429
efb0685a6c91
return old value of PyMac_DoYieldEnabled; -1 means do not even check for interrupts
Guido van Rossum <guido@python.org>
parents:
2418
diff
changeset
|
469 if (!PyArg_ParseTuple(args, "i", &new)) |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
470 return NULL; |
|
2429
efb0685a6c91
return old value of PyMac_DoYieldEnabled; -1 means do not even check for interrupts
Guido van Rossum <guido@python.org>
parents:
2418
diff
changeset
|
471 old = PyMac_DoYieldEnabled; |
|
efb0685a6c91
return old value of PyMac_DoYieldEnabled; -1 means do not even check for interrupts
Guido van Rossum <guido@python.org>
parents:
2418
diff
changeset
|
472 PyMac_DoYieldEnabled = new; |
|
efb0685a6c91
return old value of PyMac_DoYieldEnabled; -1 means do not even check for interrupts
Guido van Rossum <guido@python.org>
parents:
2418
diff
changeset
|
473 return Py_BuildValue("i", old); |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
474 } |
|
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
475 |
|
2276
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
476 |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
477 static PyObject * |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
478 MacOS_HandleEvent(PyObject *self, PyObject *args) |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
479 { |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
480 EventRecord ev; |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
481 |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
482 if (!PyArg_ParseTuple(args, "O&", PyMac_GetEventRecord, &ev)) |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
483 return NULL; |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
484 PyMac_HandleEvent(&ev); |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
485 Py_INCREF(Py_None); |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
486 return Py_None; |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
487 } |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
488 |
|
2831
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
489 static PyObject * |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
490 MacOS_GetErrorString(PyObject *self, PyObject *args) |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
491 { |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
492 int errn; |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
493 |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
494 if (!PyArg_ParseTuple(args, "i", &errn)) |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
495 return NULL; |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
496 return Py_BuildValue("s", PyMac_StrError(errn)); |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
497 } |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
498 |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
499 static char splash_doc[] = "Open a splash-screen dialog by resource-id (0=close)"; |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
500 |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
501 static PyObject * |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
502 MacOS_splash(PyObject *self, PyObject *args) |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
503 { |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
504 int resid = -1; |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
505 static DialogPtr curdialog; |
|
4328
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
506 WindowRef theWindow; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
507 CGrafPtr thePort; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
508 short xpos, ypos, width, height, swidth, sheight; |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
509 |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
510 if (!PyArg_ParseTuple(args, "|i", &resid)) |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
511 return NULL; |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
512 if (curdialog) |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
513 DisposeDialog(curdialog); |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
514 |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
515 if ( resid != -1 ) { |
|
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
516 curdialog = GetNewDialog(resid, NULL, (WindowPtr)-1); |
|
4328
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
517 if ( curdialog ) { |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
518 theWindow = GetDialogWindow(curdialog); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
519 thePort = GetWindowPort(theWindow); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
520 width = thePort->portRect.right - thePort->portRect.left; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
521 height = thePort->portRect.bottom - thePort->portRect.top; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
522 swidth = qd.screenBits.bounds.right - qd.screenBits.bounds.left; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
523 sheight = qd.screenBits.bounds.bottom - qd.screenBits.bounds.top - LMGetMBarHeight(); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
524 xpos = (swidth-width)/2; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
525 ypos = (sheight-height)/5 + LMGetMBarHeight(); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
526 MoveWindow(theWindow, xpos, ypos, 0); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
527 ShowWindow(theWindow); |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
528 DrawDialog(curdialog); |
|
4328
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
529 } |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
530 } |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
531 Py_INCREF(Py_None); |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
532 return Py_None; |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
533 } |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
534 |
|
4342
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
535 static char DebugStr_doc[] = "Switch to low-level debugger with a message"; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
536 |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
537 static PyObject * |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
538 MacOS_DebugStr(PyObject *self, PyObject *args) |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
539 { |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
540 Str255 message; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
541 PyObject *object = 0; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
542 |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
543 if (!PyArg_ParseTuple(args, "O&|O", PyMac_GetStr255, message, &object)) |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
544 return NULL; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
545 DebugStr(message); |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
546 Py_INCREF(Py_None); |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
547 return Py_None; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
548 } |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
549 |
|
3425
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
550 static char openrf_doc[] = "Open resource fork of a file"; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
551 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
552 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
553 MacOS_openrf(PyObject *self, PyObject *args) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
554 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
555 OSErr err; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
556 char *mode = "r"; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
557 FSSpec fss; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
558 SignedByte permission = 1; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
559 rfobject *fp; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
560 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
561 if (!PyArg_ParseTuple(args, "O&|s", PyMac_GetFSSpec, &fss, &mode)) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
562 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
563 while (*mode) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
564 switch (*mode++) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
565 case '*': break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
566 case 'r': permission = 1; break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
567 case 'w': permission = 2; break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
568 case 'b': break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
569 default: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
570 PyErr_BadArgument(); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
571 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
572 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
573 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
574 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
575 if ( (fp = newrfobject()) == NULL ) |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
576 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
577 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
578 err = HOpenRF(fss.vRefNum, fss.parID, fss.name, permission, &fp->fRefNum); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
579 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
580 if ( err == fnfErr ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
581 /* In stead of doing complicated things here to get creator/type |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
582 ** correct we let the standard i/o library handle it |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
583 */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
584 FILE *tfp; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
585 char pathname[257]; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
586 |
| 4524 | 587 if ( err=PyMac_GetFullPath(&fss, pathname) ) { |
|
3425
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
588 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
589 Py_DECREF(fp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
590 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
591 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
592 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
593 if ( (tfp = fopen(pathname, "w")) == NULL ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
594 PyMac_Error(fnfErr); /* What else... */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
595 Py_DECREF(fp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
596 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
597 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
598 fclose(tfp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
599 err = HOpenRF(fss.vRefNum, fss.parID, fss.name, permission, &fp->fRefNum); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
600 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
601 if ( err ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
602 Py_DECREF(fp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
603 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
604 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
605 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
606 fp->isclosed = 0; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
607 return (PyObject *)fp; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
608 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
609 |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
610 static PyMethodDef MacOS_Methods[] = { |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
611 {"AcceptHighLevelEvent", MacOS_AcceptHighLevelEvent, 1}, |
|
2227
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
612 {"GetCreatorAndType", MacOS_GetCreatorAndType, 1}, |
|
e53d019e7d47
Got rid of {Get,Set}FileType in favor of {Get,Set}CreatorAndType --
Guido van Rossum <guido@python.org>
parents:
2221
diff
changeset
|
613 {"SetCreatorAndType", MacOS_SetCreatorAndType, 1}, |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
614 #ifdef USE_STDWIN |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
615 {"SetHighLevelEventHandler", MacOS_SetHighLevelEventHandler, 1}, |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
616 #endif |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
617 {"SetScheduleTimes", MacOS_SetScheduleTimes, 1}, |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
618 {"EnableAppswitch", MacOS_EnableAppswitch, 1}, |
|
2276
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
619 {"HandleEvent", MacOS_HandleEvent, 1}, |
|
2831
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
620 {"GetErrorString", MacOS_GetErrorString, 1}, |
|
3425
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
621 {"openrf", MacOS_openrf, 1, openrf_doc}, |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
622 {"splash", MacOS_splash, 1, splash_doc}, |
|
4342
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
623 {"DebugStr", MacOS_DebugStr, 1, DebugStr_doc}, |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
624 {NULL, NULL} /* Sentinel */ |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
625 }; |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
626 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
627 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
628 void |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
629 MacOS_Init() |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
630 { |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
631 PyObject *m, *d; |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
632 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
633 m = Py_InitModule("MacOS", MacOS_Methods); |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
634 d = PyModule_GetDict(m); |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
635 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
636 /* Initialize MacOS.Error exception */ |
|
2232
8d5e36b37a41
Got rid of the Resource and Sound interfaces, in favor of the ones
Guido van Rossum <guido@python.org>
parents:
2229
diff
changeset
|
637 MacOS_Error = PyMac_GetOSErrException(); |
|
1916
e125f5021e67
config.c: add MacOS module
Guido van Rossum <guido@python.org>
parents:
1896
diff
changeset
|
638 if (MacOS_Error == NULL || PyDict_SetItemString(d, "Error", MacOS_Error) != 0) |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
639 Py_FatalError("can't define MacOS.Error"); |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
640 } |
|
2429
efb0685a6c91
return old value of PyMac_DoYieldEnabled; -1 means do not even check for interrupts
Guido van Rossum <guido@python.org>
parents:
2418
diff
changeset
|
641 |
