Mercurial > cpython-lru_cache-weakref
annotate Mac/Modules/macosmodule.c @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | abe8634466b2 |
| children | 5088ec5a12a6 |
| rev | line source |
|---|---|
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 /*********************************************************** |
|
5079
d6b292a33cfe
Added/updated copyright notices
Jack Jansen <jack.jansen@cwi.nl>
parents:
4524
diff
changeset
|
2 Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, |
| 2091 | 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 } |
|
5429
ac235c9e6881
- Changed the m# format for PyArg_ParseTuple back to s#
Jack Jansen <jack.jansen@cwi.nl>
parents:
5258
diff
changeset
|
120 if (!PyArg_ParseTuple(args, "s#", &buffer, &size)) |
|
3425
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 |
| 5713 | 309 static char getcrtp_doc[] = "Obsolete, use macfs module"; |
| 310 | |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
311 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
|
312 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
|
313 { |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
314 Str255 name; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
315 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
|
316 PyObject *creator, *type, *res; |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
317 OSErr err; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
318 |
|
2209
4053d4cb50e0
renamed Get routines to PyMac_Get; added macfs to config.c
Guido van Rossum <guido@python.org>
parents:
2184
diff
changeset
|
319 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
|
320 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
|
321 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
|
322 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
|
323 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
|
324 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
|
325 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
|
326 Py_DECREF(creator); |
| 2136 | 327 Py_DECREF(type); |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
328 return res; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
329 } |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
330 |
| 5713 | 331 static char setcrtp_doc[] = "Obsolete, use macfs module"; |
| 332 | |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
333 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
|
334 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
|
335 { |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
336 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
|
337 ResType creator, type; |
|
2092
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
338 FInfo info; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
339 OSErr err; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
340 |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
341 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
|
342 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
|
343 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
|
344 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
|
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 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
|
347 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
|
348 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
|
349 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
|
350 Py_INCREF(Py_None); |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
351 return Py_None; |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
352 } |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
353 |
|
b03b43bee1ab
Used new getargs interface; added {Get,Set}FileInfo.
Guido van Rossum <guido@python.org>
parents:
2091
diff
changeset
|
354 /*----------------------------------------------------------------------*/ |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
355 /* STDWIN High Level Event interface */ |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
356 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
357 #include <EPPC.h> |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
358 #include <Events.h> |
|
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 #ifdef USE_STDWIN |
|
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 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
|
363 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
364 static PyObject *MacOS_HighLevelEventHandler = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
365 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
366 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
|
367 MacOS_HighLevelEventProc(EventRecord *e) |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
368 { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
369 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
|
370 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
|
371 PyObject *res; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
372 if (args == NULL) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
373 res = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
374 else { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
375 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
|
376 Py_DECREF(args); |
|
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 if (res == NULL) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
379 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
|
380 PyErr_Print(); |
|
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 else |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
383 Py_DECREF(res); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
384 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
385 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
386 |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
387 /* 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
|
388 |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
389 static PyObject * |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
390 MacOS_SetHighLevelEventHandler(self, args) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
391 PyObject *self; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
392 PyObject *args; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
393 { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
394 PyObject *previous = MacOS_HighLevelEventHandler; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
395 PyObject *next = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
396 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
|
397 return NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
398 if (next == Py_None) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
399 next = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
400 Py_INCREF(next); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
401 MacOS_HighLevelEventHandler = next; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
402 if (next == NULL) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
403 _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
|
404 else |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
405 _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
|
406 if (previous == NULL) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
407 Py_INCREF(Py_None); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
408 previous = Py_None; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
409 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
410 return previous; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
411 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
412 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
413 #endif /* USE_STDWIN */ |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
414 |
| 5713 | 415 static char accepthle_doc[] = "Get arguments of pending high-level event"; |
| 416 | |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
417 static PyObject * |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
418 MacOS_AcceptHighLevelEvent(self, args) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
419 PyObject *self; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
420 PyObject *args; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
421 { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
422 TargetID sender; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
423 unsigned long refcon; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
424 Ptr buf; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
425 unsigned long len; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
426 OSErr err; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
427 PyObject *res; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
428 |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
429 buf = NULL; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
430 len = 0; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
431 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
|
432 if (err == bufferIsSmall) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
433 buf = malloc(len); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
434 if (buf == NULL) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
435 return PyErr_NoMemory(); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
436 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
|
437 if (err != noErr) { |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
438 free(buf); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
439 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
|
440 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
441 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
442 else if (err != noErr) |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
443 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
|
444 res = Py_BuildValue("s#ls#", |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
445 (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
|
446 free(buf); |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
447 return res; |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
448 } |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
449 |
| 5713 | 450 static char schedparams_doc[] = "Set/return mainloop interrupt check flag, etc"; |
| 451 | |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
452 /* |
| 5713 | 453 ** Set scheduler parameters |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
454 */ |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
455 static PyObject * |
| 5713 | 456 MacOS_SchedParams(PyObject *self, PyObject *args) |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
457 { |
| 5713 | 458 PyMacSchedParams old, new; |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
459 |
| 5713 | 460 PyMac_GetSchedParams(&old); |
| 461 new = old; | |
| 462 if (!PyArg_ParseTuple(args, "|iiidd", &new.check_interrupt, &new.process_events, | |
| 463 &new.besocial, &new.check_interval, &new.bg_yield)) | |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
464 return NULL; |
| 5713 | 465 PyMac_SetSchedParams(&new); |
| 466 return Py_BuildValue("iiidd", old.check_interrupt, old.process_events, | |
| 467 old.besocial, old.check_interval, old.bg_yield); | |
|
2251
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
468 } |
|
e0a3242d5ae7
Added eventhandling in mainloop/busywait routine plus leaving some
Jack Jansen <jack.jansen@cwi.nl>
parents:
2232
diff
changeset
|
469 |
| 5713 | 470 static char appswitch_doc[] = "Obsolete, use SchedParams"; |
| 471 | |
| 472 /* Obsolete, for backward compatability */ | |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
473 static PyObject * |
|
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
474 MacOS_EnableAppswitch(PyObject *self, PyObject *args) |
|
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
475 { |
| 5713 | 476 int new, old; |
| 477 PyMacSchedParams schp; | |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
478 |
|
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
|
479 if (!PyArg_ParseTuple(args, "i", &new)) |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
480 return NULL; |
| 5713 | 481 PyMac_GetSchedParams(&schp); |
| 482 if ( schp.process_events ) | |
| 483 old = 1; | |
| 484 else if ( schp.check_interrupt ) | |
| 485 old = -1; | |
| 486 else | |
| 487 old = 0; | |
| 488 if ( new > 0 ) { | |
| 489 schp.process_events = mDownMask|keyDownMask|osMask; | |
| 490 schp.check_interrupt = 1; | |
| 491 } else if ( new < 0 ) { | |
| 492 schp.process_events = 0; | |
| 493 schp.check_interrupt = 1; | |
| 494 } else { | |
| 495 schp.process_events = 0; | |
| 496 schp.check_interrupt = 0; | |
| 497 } | |
| 498 PyMac_SetSchedParams(&schp); | |
|
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
|
499 return Py_BuildValue("i", old); |
|
2262
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
500 } |
|
03bd79432f06
- Moved interrupt code to macglue.c
Jack Jansen <jack.jansen@cwi.nl>
parents:
2251
diff
changeset
|
501 |
| 5746 | 502 static char setevh_doc[] = "Set python event handler to be called in mainloop"; |
| 503 | |
| 504 static PyObject * | |
| 505 MacOS_SetEventHandler(self, args) | |
| 506 PyObject *self; | |
| 507 PyObject *args; | |
| 508 { | |
| 509 PyObject *evh = NULL; | |
| 510 | |
| 511 if (!PyArg_ParseTuple(args, "|O", &evh)) | |
| 512 return NULL; | |
| 513 if (evh == Py_None) | |
| 514 evh = NULL; | |
| 515 if ( evh && !PyCallable_Check(evh) ) { | |
| 516 PyErr_SetString(PyExc_ValueError, "SetEventHandler argument must be callable"); | |
| 517 return NULL; | |
| 518 } | |
| 519 if ( !PyMac_SetEventHandler(evh) ) | |
| 520 return NULL; | |
| 521 Py_INCREF(Py_None); | |
| 522 return Py_None; | |
| 523 } | |
| 524 | |
| 5713 | 525 static char handleev_doc[] = "Pass event to other interested parties like sioux"; |
|
2276
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
526 |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
527 static PyObject * |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
528 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
|
529 { |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
530 EventRecord ev; |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
531 |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
532 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
|
533 return NULL; |
| 5746 | 534 PyMac_HandleEventIntern(&ev); |
|
2276
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
535 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
|
536 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
|
537 } |
|
66d6d13df4f8
Added HandleEvent method to macos, so python programs can hand back
Jack Jansen <jack.jansen@cwi.nl>
parents:
2262
diff
changeset
|
538 |
| 5713 | 539 static char geterr_doc[] = "Convert OSErr number to string"; |
| 540 | |
|
2831
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
541 static PyObject * |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
542 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
|
543 { |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
544 int errn; |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
545 |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
546 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
|
547 return NULL; |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
548 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
|
549 } |
|
eedd6c1f3ae7
Added GetErrorString method (convert OSErr number to string)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2429
diff
changeset
|
550 |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
551 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
|
552 |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
553 static PyObject * |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
554 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
|
555 { |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
556 int resid = -1; |
|
5488
2e89c55d9a29
Don't free the MacOS_Splash() dialog twice...
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
557 static DialogPtr curdialog = NULL; |
|
4328
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
558 WindowRef theWindow; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
559 CGrafPtr thePort; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
560 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
|
561 |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
562 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
|
563 return NULL; |
|
5488
2e89c55d9a29
Don't free the MacOS_Splash() dialog twice...
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
564 if (curdialog) { |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
565 DisposeDialog(curdialog); |
|
5488
2e89c55d9a29
Don't free the MacOS_Splash() dialog twice...
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
566 curdialog = NULL; |
|
2e89c55d9a29
Don't free the MacOS_Splash() dialog twice...
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
567 } |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
568 |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
569 if ( resid != -1 ) { |
|
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
570 curdialog = GetNewDialog(resid, NULL, (WindowPtr)-1); |
|
4328
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
571 if ( curdialog ) { |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
572 theWindow = GetDialogWindow(curdialog); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
573 thePort = GetWindowPort(theWindow); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
574 width = thePort->portRect.right - thePort->portRect.left; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
575 height = thePort->portRect.bottom - thePort->portRect.top; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
576 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
|
577 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
|
578 xpos = (swidth-width)/2; |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
579 ypos = (sheight-height)/5 + LMGetMBarHeight(); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
580 MoveWindow(theWindow, xpos, ypos, 0); |
|
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
581 ShowWindow(theWindow); |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
582 DrawDialog(curdialog); |
|
4328
b03ab35d52df
Added dialog-centering code to splash()
Jack Jansen <jack.jansen@cwi.nl>
parents:
4309
diff
changeset
|
583 } |
|
4309
ecbeb445f62e
Fixed macos.splash to actually *draw* the splash box:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3567
diff
changeset
|
584 } |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
585 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
|
586 return Py_None; |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
587 } |
|
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
588 |
|
4342
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
589 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
|
590 |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
591 static PyObject * |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
592 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
|
593 { |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
594 Str255 message; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
595 PyObject *object = 0; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
596 |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
597 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
|
598 return NULL; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
599 DebugStr(message); |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
600 Py_INCREF(Py_None); |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
601 return Py_None; |
|
897297abe5b4
Added DebugStr method to drop into low-level debugger
Jack Jansen <jack.jansen@cwi.nl>
parents:
4328
diff
changeset
|
602 } |
|
3567
6f715bff17e4
Added splash method (to quickly display splash screen without first
Jack Jansen <jack.jansen@cwi.nl>
parents:
3430
diff
changeset
|
603 |
|
3425
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
604 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
|
605 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
606 static PyObject * |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
607 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
|
608 { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
609 OSErr err; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
610 char *mode = "r"; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
611 FSSpec fss; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
612 SignedByte permission = 1; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
613 rfobject *fp; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
614 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
615 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
|
616 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
617 while (*mode) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
618 switch (*mode++) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
619 case '*': break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
620 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
|
621 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
|
622 case 'b': break; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
623 default: |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
624 PyErr_BadArgument(); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
625 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
626 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
627 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
628 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
629 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
|
630 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
631 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
632 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
|
633 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
634 if ( err == fnfErr ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
635 /* 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
|
636 ** 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
|
637 */ |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
638 FILE *tfp; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
639 char pathname[257]; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
640 |
| 4524 | 641 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
|
642 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
643 Py_DECREF(fp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
644 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
645 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
646 |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
647 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
|
648 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
|
649 Py_DECREF(fp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
650 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
651 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
652 fclose(tfp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
653 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
|
654 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
655 if ( err ) { |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
656 Py_DECREF(fp); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
657 PyMac_Error(err); |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
658 return NULL; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
659 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
660 fp->isclosed = 0; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
661 return (PyObject *)fp; |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
662 } |
|
23254daa247b
Added openrf method, which opens resource fork. The resulting object
Jack Jansen <jack.jansen@cwi.nl>
parents:
2831
diff
changeset
|
663 |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
664 static PyMethodDef MacOS_Methods[] = { |
| 5713 | 665 {"AcceptHighLevelEvent", MacOS_AcceptHighLevelEvent, 1, accepthle_doc}, |
| 666 {"GetCreatorAndType", MacOS_GetCreatorAndType, 1, getcrtp_doc}, | |
| 667 {"SetCreatorAndType", MacOS_SetCreatorAndType, 1, setcrtp_doc}, | |
|
2184
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
668 #ifdef USE_STDWIN |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
669 {"SetHighLevelEventHandler", MacOS_SetHighLevelEventHandler, 1}, |
|
87f4d6d2e9c8
added high level event interface (requires stdwin patch)
Guido van Rossum <guido@python.org>
parents:
2175
diff
changeset
|
670 #endif |
| 5713 | 671 {"SchedParams", MacOS_SchedParams, 1, schedparams_doc}, |
| 672 {"EnableAppswitch", MacOS_EnableAppswitch, 1, appswitch_doc}, | |
| 5746 | 673 {"SetEventHandler", MacOS_SetEventHandler, 1, setevh_doc}, |
| 5713 | 674 {"HandleEvent", MacOS_HandleEvent, 1, handleev_doc}, |
| 675 {"GetErrorString", MacOS_GetErrorString, 1, geterr_doc}, | |
| 676 {"openrf", MacOS_openrf, 1, openrf_doc}, | |
| 677 {"splash", MacOS_splash, 1, splash_doc}, | |
| 678 {"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
|
679 {NULL, NULL} /* Sentinel */ |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
680 }; |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
681 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
682 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
683 void |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
684 MacOS_Init() |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
685 { |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
686 PyObject *m, *d; |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
687 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
688 m = Py_InitModule("MacOS", MacOS_Methods); |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
689 d = PyModule_GetDict(m); |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
690 |
|
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
691 /* 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
|
692 MacOS_Error = PyMac_GetOSErrException(); |
|
1916
e125f5021e67
config.c: add MacOS module
Guido van Rossum <guido@python.org>
parents:
1896
diff
changeset
|
693 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
|
694 Py_FatalError("can't define MacOS.Error"); |
|
5258
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
695 /* |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
696 ** This is a hack: the following constant added to the id() of a string |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
697 ** object gives you the address of the data. Unfortunately, it is needed for |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
698 ** some of the image and sound processing interfaces on the mac:-( |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
699 */ |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
700 { |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
701 PyStringObject *p = 0; |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
702 long off = (long)&(p->ob_sval[0]); |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
703 |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
704 if( PyDict_SetItemString(d, "string_id_to_buffer", Py_BuildValue("i", off)) != 0) |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
705 Py_FatalError("Can't define MacOS.string_id_to_buffer"); |
|
40d2fd472284
Added an attribute string_id_to_buffer, which gives the offset you
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
706 } |
|
1892
eec0dc5aba60
gestaltmodule.c: interface to Gestalt Manager.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
707 } |
|
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
|
708 |
