Mercurial > cpython-lru_cache-weakref
annotate Mac/Modules/macfsmodule.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 | c606dd61544a |
| children | 172c7febd755 |
| rev | line source |
|---|---|
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
1 /*********************************************************** |
|
5079
d6b292a33cfe
Added/updated copyright notices
Jack Jansen <jack.jansen@cwi.nl>
parents:
5071
diff
changeset
|
2 Copyright 1991-1997 by Stichting Mathematisch Centrum, Amsterdam, |
|
2254
67e8ef698a42
added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents:
2249
diff
changeset
|
3 The Netherlands. |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
4 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
5 All Rights Reserved |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
6 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
7 Permission to use, copy, modify, and distribute this software and its |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
8 documentation for any purpose and without fee is hereby granted, |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
9 provided that the above copyright notice appear in all copies and that |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
10 both that copyright notice and this permission notice appear in |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
11 supporting documentation, and that the names of Stichting Mathematisch |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
12 Centrum or CWI not be used in advertising or publicity pertaining to |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
13 distribution of the software without specific, written prior permission. |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
14 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
22 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
23 ******************************************************************/ |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
24 |
| 5071 | 25 #include "Python.h" |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
26 #include "macglue.h" |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
27 |
| 2337 | 28 #include <Memory.h> |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
29 #include <Files.h> |
|
2748
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
30 #include <Folders.h> |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
31 #include <StandardFile.h> |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
32 #include <Aliases.h> |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
33 #include <LowMem.h> |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
34 |
|
4319
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
35 #include "getapplbycreator.h" |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
36 |
|
2186
95cb52b85f78
ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents:
2180
diff
changeset
|
37 #ifdef THINK_C |
|
95cb52b85f78
ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents:
2180
diff
changeset
|
38 #define FileFilterUPP FileFilterProcPtr |
|
95cb52b85f78
ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents:
2180
diff
changeset
|
39 #endif |
|
95cb52b85f78
ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents:
2180
diff
changeset
|
40 |
| 5071 | 41 static PyObject *ErrorObject; |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
42 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
43 /* ----------------------------------------------------- */ |
| 2249 | 44 /* Declarations for objects of type Alias */ |
| 45 | |
| 46 typedef struct { | |
| 5071 | 47 PyObject_HEAD |
| 2249 | 48 AliasHandle alias; |
| 49 } mfsaobject; | |
| 50 | |
| 5071 | 51 staticforward PyTypeObject Mfsatype; |
| 2249 | 52 |
| 53 #define is_mfsaobject(v) ((v)->ob_type == &Mfsatype) | |
| 54 | |
| 55 /* ---------------------------------------------------------------- */ | |
| 56 /* Declarations for objects of type FSSpec */ | |
| 57 | |
| 58 typedef struct { | |
| 5071 | 59 PyObject_HEAD |
| 2249 | 60 FSSpec fsspec; |
| 61 } mfssobject; | |
| 62 | |
| 5071 | 63 staticforward PyTypeObject Mfsstype; |
| 2249 | 64 |
| 65 #define is_mfssobject(v) ((v)->ob_type == &Mfsstype) | |
| 66 | |
|
2254
67e8ef698a42
added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents:
2249
diff
changeset
|
67 |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
68 /* ---------------------------------------------------------------- */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
69 /* Declarations for objects of type FInfo */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
70 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
71 typedef struct { |
| 5071 | 72 PyObject_HEAD |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
73 FInfo finfo; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
74 } mfsiobject; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
75 |
| 5071 | 76 staticforward PyTypeObject Mfsitype; |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
77 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
78 #define is_mfsiobject(v) ((v)->ob_type == &Mfsitype) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
79 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
80 |
|
2254
67e8ef698a42
added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents:
2249
diff
changeset
|
81 mfssobject *newmfssobject(FSSpec *fss); /* Forward */ |
|
67e8ef698a42
added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents:
2249
diff
changeset
|
82 |
| 2249 | 83 /* ---------------------------------------------------------------- */ |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
84 |
| 5071 | 85 static PyObject * |
| 2249 | 86 mfsa_Resolve(self, args) |
| 87 mfsaobject *self; | |
| 5071 | 88 PyObject *args; |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
89 { |
| 2249 | 90 FSSpec from, *fromp, result; |
| 91 Boolean changed; | |
| 92 OSErr err; | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
93 |
| 2249 | 94 from.name[0] = 0; |
| 5071 | 95 if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &from)) |
| 2249 | 96 return NULL; |
| 97 if (from.name[0] ) | |
| 98 fromp = &from; | |
| 99 else | |
| 100 fromp = NULL; | |
| 101 err = ResolveAlias(fromp, self->alias, &result, &changed); | |
|
5743
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
102 if ( err && err != fnfErr ) { |
| 2249 | 103 PyErr_Mac(ErrorObject, err); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
104 return NULL; |
| 2249 | 105 } |
| 5071 | 106 return Py_BuildValue("(Oi)", newmfssobject(&result), (int)changed); |
| 2249 | 107 } |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
108 |
| 5071 | 109 static PyObject * |
| 2249 | 110 mfsa_GetInfo(self, args) |
| 111 mfsaobject *self; | |
| 5071 | 112 PyObject *args; |
| 2249 | 113 { |
| 114 Str63 value; | |
| 115 int i; | |
| 116 OSErr err; | |
| 117 | |
| 5071 | 118 if (!PyArg_ParseTuple(args, "i", &i)) |
| 2249 | 119 return NULL; |
| 120 err = GetAliasInfo(self->alias, (AliasInfoType)i, value); | |
| 121 if ( err ) { | |
| 122 PyErr_Mac(ErrorObject, err); | |
| 123 return 0; | |
| 124 } | |
| 5071 | 125 return PyString_FromStringAndSize((char *)&value[1], value[0]); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
126 } |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
127 |
| 5071 | 128 static PyObject * |
| 2249 | 129 mfsa_Update(self, args) |
| 130 mfsaobject *self; | |
| 5071 | 131 PyObject *args; |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
132 { |
| 2249 | 133 FSSpec target, fromfile, *fromfilep; |
| 134 OSErr err; | |
| 135 Boolean changed; | |
| 136 | |
| 137 fromfile.name[0] = 0; | |
| 5071 | 138 if (!PyArg_ParseTuple(args, "O&|O&", PyMac_GetFSSpec, &target, |
| 2249 | 139 PyMac_GetFSSpec, &fromfile)) |
| 140 return NULL; | |
| 141 if ( fromfile.name[0] ) | |
| 142 fromfilep = &fromfile; | |
| 143 else | |
| 144 fromfilep = NULL; | |
| 145 err = UpdateAlias(fromfilep, &target, self->alias, &changed); | |
| 146 if ( err ) { | |
| 147 PyErr_Mac(ErrorObject, err); | |
| 148 return 0; | |
| 149 } | |
| 5071 | 150 return Py_BuildValue("i", (int)changed); |
| 2249 | 151 } |
| 152 | |
| 5071 | 153 static struct PyMethodDef mfsa_methods[] = { |
| 154 {"Resolve", (PyCFunction)mfsa_Resolve, 1}, | |
| 155 {"GetInfo", (PyCFunction)mfsa_GetInfo, 1}, | |
| 156 {"Update", (PyCFunction)mfsa_Update, 1}, | |
| 2249 | 157 |
| 158 {NULL, NULL} /* sentinel */ | |
| 159 }; | |
| 160 | |
| 161 /* ---------- */ | |
| 162 | |
| 5071 | 163 static PyObject * |
| 2249 | 164 mfsa_getattr(self, name) |
| 165 mfsaobject *self; | |
| 166 char *name; | |
| 167 { | |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
168 if ( strcmp(name, "data") == 0 ) { |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
169 int size; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
170 PyObject *rv; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
171 |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
172 size = GetHandleSize((Handle)self->alias); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
173 HLock((Handle)self->alias); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
174 rv = PyString_FromStringAndSize(*(Handle)self->alias, size); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
175 HUnlock((Handle)self->alias); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
176 return rv; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
177 } |
| 5071 | 178 return Py_FindMethod(mfsa_methods, (PyObject *)self, name); |
| 2249 | 179 } |
| 180 | |
| 181 mfsaobject * | |
| 182 newmfsaobject(alias) | |
| 183 AliasHandle alias; | |
| 184 { | |
| 185 mfsaobject *self; | |
| 186 | |
| 5071 | 187 self = PyObject_NEW(mfsaobject, &Mfsatype); |
| 2249 | 188 if (self == NULL) |
| 189 return NULL; | |
| 190 self->alias = alias; | |
| 191 return self; | |
| 192 } | |
| 193 | |
| 194 | |
| 195 static void | |
| 196 mfsa_dealloc(self) | |
| 197 mfsaobject *self; | |
| 198 { | |
| 199 #if 0 | |
| 200 if ( self->alias ) { | |
| 201 should we do something here? | |
| 202 } | |
| 203 #endif | |
| 204 | |
| 5071 | 205 PyMem_DEL(self); |
| 2249 | 206 } |
| 207 | |
| 5071 | 208 statichere PyTypeObject Mfsatype = { |
| 209 PyObject_HEAD_INIT(&PyType_Type) | |
| 2249 | 210 0, /*ob_size*/ |
| 211 "Alias", /*tp_name*/ | |
| 212 sizeof(mfsaobject), /*tp_basicsize*/ | |
| 213 0, /*tp_itemsize*/ | |
| 214 /* methods */ | |
| 215 (destructor)mfsa_dealloc, /*tp_dealloc*/ | |
|
2408
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
216 (printfunc)0, /*tp_print*/ |
| 2249 | 217 (getattrfunc)mfsa_getattr, /*tp_getattr*/ |
|
2408
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
218 (setattrfunc)0, /*tp_setattr*/ |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
219 (cmpfunc)0, /*tp_compare*/ |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
220 (reprfunc)0, /*tp_repr*/ |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
221 0, /*tp_as_number*/ |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
222 0, /*tp_as_sequence*/ |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
223 0, /*tp_as_mapping*/ |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
224 (hashfunc)0, /*tp_hash*/ |
| 2249 | 225 }; |
| 226 | |
| 227 /* End of code for Alias objects */ | |
| 228 /* -------------------------------------------------------- */ | |
| 229 | |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
230 /* ---------------------------------------------------------------- */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
231 |
| 5071 | 232 static struct PyMethodDef mfsi_methods[] = { |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
233 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
234 {NULL, NULL} /* sentinel */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
235 }; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
236 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
237 /* ---------- */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
238 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
239 static mfsiobject * |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
240 newmfsiobject() |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
241 { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
242 mfsiobject *self; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
243 |
| 5071 | 244 self = PyObject_NEW(mfsiobject, &Mfsitype); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
245 if (self == NULL) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
246 return NULL; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
247 memset((char *)&self->finfo, '\0', sizeof(self->finfo)); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
248 return self; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
249 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
250 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
251 static void |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
252 mfsi_dealloc(self) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
253 mfsiobject *self; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
254 { |
| 5071 | 255 PyMem_DEL(self); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
256 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
257 |
| 5071 | 258 static PyObject * |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
259 mfsi_getattr(self, name) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
260 mfsiobject *self; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
261 char *name; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
262 { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
263 if ( strcmp(name, "Type") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
264 return PyMac_BuildOSType(self->finfo.fdType); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
265 else if ( strcmp(name, "Creator") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
266 return PyMac_BuildOSType(self->finfo.fdCreator); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
267 else if ( strcmp(name, "Flags") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
268 return Py_BuildValue("i", (int)self->finfo.fdFlags); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
269 else if ( strcmp(name, "Location") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
270 return PyMac_BuildPoint(self->finfo.fdLocation); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
271 else if ( strcmp(name, "Fldr") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
272 return Py_BuildValue("i", (int)self->finfo.fdFldr); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
273 else |
| 5071 | 274 return Py_FindMethod(mfsi_methods, (PyObject *)self, name); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
275 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
276 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
277 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
278 static int |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
279 mfsi_setattr(self, name, v) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
280 mfsiobject *self; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
281 char *name; |
| 5071 | 282 PyObject *v; |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
283 { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
284 int rv; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
285 int i; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
286 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
287 if ( v == NULL ) { |
| 5071 | 288 PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute"); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
289 return -1; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
290 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
291 if ( strcmp(name, "Type") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
292 rv = PyMac_GetOSType(v, &self->finfo.fdType); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
293 else if ( strcmp(name, "Creator") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
294 rv = PyMac_GetOSType(v, &self->finfo.fdCreator); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
295 else if ( strcmp(name, "Flags") == 0 ) { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
296 rv = PyArg_Parse(v, "i", &i); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
297 self->finfo.fdFlags = (short)i; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
298 } else if ( strcmp(name, "Location") == 0 ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
299 rv = PyMac_GetPoint(v, &self->finfo.fdLocation); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
300 else if ( strcmp(name, "Fldr") == 0 ) { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
301 rv = PyArg_Parse(v, "i", &i); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
302 self->finfo.fdFldr = (short)i; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
303 } else { |
| 5071 | 304 PyErr_SetString(PyExc_AttributeError, "No such attribute"); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
305 return -1; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
306 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
307 if (rv) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
308 return 0; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
309 return -1; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
310 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
311 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
312 |
| 5071 | 313 static PyTypeObject Mfsitype = { |
| 314 PyObject_HEAD_INIT(&PyType_Type) | |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
315 0, /*ob_size*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
316 "FInfo object", /*tp_name*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
317 sizeof(mfsiobject), /*tp_basicsize*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
318 0, /*tp_itemsize*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
319 /* methods */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
320 (destructor)mfsi_dealloc, /*tp_dealloc*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
321 (printfunc)0, /*tp_print*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
322 (getattrfunc)mfsi_getattr, /*tp_getattr*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
323 (setattrfunc)mfsi_setattr, /*tp_setattr*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
324 (cmpfunc)0, /*tp_compare*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
325 (reprfunc)0, /*tp_repr*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
326 0, /*tp_as_number*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
327 0, /*tp_as_sequence*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
328 0, /*tp_as_mapping*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
329 (hashfunc)0, /*tp_hash*/ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
330 }; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
331 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
332 /* End of code for FInfo object objects */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
333 /* -------------------------------------------------------- */ |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
334 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
335 |
| 2249 | 336 /* |
| 337 ** Helper routine for other modules: return an FSSpec * if the | |
| 338 ** object is a python fsspec object, else NULL | |
| 339 */ | |
| 340 FSSpec * | |
| 341 mfs_GetFSSpecFSSpec(self) | |
| 5071 | 342 PyObject *self; |
| 2249 | 343 { |
| 344 if ( is_mfssobject(self) ) | |
| 345 return &((mfssobject *)self)->fsspec; | |
| 346 return NULL; | |
| 347 } | |
| 348 | |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
349 /* |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
350 ** Two generally useful routines |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
351 */ |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
352 static OSErr |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
353 PyMac_GetFileDates(fss, crdat, mddat, bkdat) |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
354 FSSpec *fss; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
355 unsigned long *crdat, *mddat, *bkdat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
356 { |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
357 CInfoPBRec pb; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
358 OSErr error; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
359 |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
360 pb.dirInfo.ioNamePtr = fss->name; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
361 pb.dirInfo.ioFDirIndex = 0; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
362 pb.dirInfo.ioVRefNum = fss->vRefNum; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
363 pb.dirInfo.ioDrDirID = fss->parID; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
364 error = PBGetCatInfoSync(&pb); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
365 if ( error ) return error; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
366 *crdat = pb.hFileInfo.ioFlCrDat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
367 *mddat = pb.hFileInfo.ioFlMdDat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
368 *bkdat = pb.hFileInfo.ioFlBkDat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
369 return 0; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
370 } |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
371 |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
372 static OSErr |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
373 PyMac_SetFileDates(fss, crdat, mddat, bkdat) |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
374 FSSpec *fss; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
375 unsigned long crdat, mddat, bkdat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
376 { |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
377 CInfoPBRec pb; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
378 OSErr error; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
379 |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
380 pb.dirInfo.ioNamePtr = fss->name; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
381 pb.dirInfo.ioFDirIndex = 0; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
382 pb.dirInfo.ioVRefNum = fss->vRefNum; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
383 pb.dirInfo.ioDrDirID = fss->parID; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
384 error = PBGetCatInfoSync(&pb); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
385 if ( error ) return error; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
386 pb.dirInfo.ioNamePtr = fss->name; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
387 pb.dirInfo.ioFDirIndex = 0; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
388 pb.dirInfo.ioVRefNum = fss->vRefNum; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
389 pb.dirInfo.ioDrDirID = fss->parID; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
390 pb.hFileInfo.ioFlCrDat = crdat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
391 pb.hFileInfo.ioFlMdDat = mddat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
392 pb.hFileInfo.ioFlBkDat = bkdat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
393 error = PBSetCatInfoSync(&pb); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
394 return error; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
395 } |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
396 |
| 5071 | 397 static PyObject * |
| 2249 | 398 mfss_as_pathname(self, args) |
| 399 mfssobject *self; | |
| 5071 | 400 PyObject *args; |
| 2249 | 401 { |
| 402 char strbuf[257]; | |
| 403 OSErr err; | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
404 |
| 5071 | 405 if (!PyArg_ParseTuple(args, "")) |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
406 return NULL; |
| 4524 | 407 err = PyMac_GetFullPath(&self->fsspec, strbuf); |
| 2249 | 408 if ( err ) { |
| 409 PyErr_Mac(ErrorObject, err); | |
| 410 return NULL; | |
| 411 } | |
| 5071 | 412 return PyString_FromString(strbuf); |
| 2249 | 413 } |
| 414 | |
| 5071 | 415 static PyObject * |
| 2249 | 416 mfss_as_tuple(self, args) |
| 417 mfssobject *self; | |
| 5071 | 418 PyObject *args; |
| 2249 | 419 { |
| 5071 | 420 if (!PyArg_ParseTuple(args, "")) |
| 2249 | 421 return NULL; |
| 422 return Py_BuildValue("(iis#)", self->fsspec.vRefNum, self->fsspec.parID, | |
| 423 &self->fsspec.name[1], self->fsspec.name[0]); | |
| 424 } | |
| 425 | |
| 5071 | 426 static PyObject * |
| 2249 | 427 mfss_NewAlias(self, args) |
| 428 mfssobject *self; | |
| 5071 | 429 PyObject *args; |
| 2249 | 430 { |
| 431 FSSpec src, *srcp; | |
| 432 OSErr err; | |
| 433 AliasHandle alias; | |
| 434 | |
| 435 src.name[0] = 0; | |
| 5071 | 436 if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &src)) |
| 2249 | 437 return NULL; |
| 438 if ( src.name[0] ) | |
| 439 srcp = &src; | |
| 440 else | |
| 441 srcp = NULL; | |
| 442 err = NewAlias(srcp, &self->fsspec, &alias); | |
| 443 if ( err ) { | |
| 444 PyErr_Mac(ErrorObject, err); | |
| 445 return NULL; | |
| 446 } | |
| 447 | |
| 5071 | 448 return (PyObject *)newmfsaobject(alias); |
| 2249 | 449 } |
| 450 | |
| 5071 | 451 static PyObject * |
| 2249 | 452 mfss_NewAliasMinimal(self, args) |
| 453 mfssobject *self; | |
| 5071 | 454 PyObject *args; |
| 2249 | 455 { |
| 456 OSErr err; | |
| 457 AliasHandle alias; | |
| 458 | |
| 5071 | 459 if (!PyArg_ParseTuple(args, "")) |
| 2249 | 460 return NULL; |
| 461 err = NewAliasMinimal(&self->fsspec, &alias); | |
| 462 if ( err ) { | |
| 463 PyErr_Mac(ErrorObject, err); | |
| 464 return NULL; | |
| 465 } | |
| 5071 | 466 return (PyObject *)newmfsaobject(alias); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
467 } |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
468 |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
469 /* XXXX These routines should be replaced by a wrapper to the *FInfo routines */ |
| 5071 | 470 static PyObject * |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
471 mfss_GetCreatorType(self, args) |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
472 mfssobject *self; |
| 5071 | 473 PyObject *args; |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
474 { |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
475 OSErr err; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
476 FInfo info; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
477 |
| 5071 | 478 if (!PyArg_ParseTuple(args, "")) |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
479 return NULL; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
480 err = FSpGetFInfo(&self->fsspec, &info); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
481 if ( err ) { |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
482 PyErr_Mac(ErrorObject, err); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
483 return NULL; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
484 } |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
485 return Py_BuildValue("(O&O&)", |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
486 PyMac_BuildOSType, info.fdCreator, PyMac_BuildOSType, info.fdType); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
487 } |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
488 |
| 5071 | 489 static PyObject * |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
490 mfss_SetCreatorType(self, args) |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
491 mfssobject *self; |
| 5071 | 492 PyObject *args; |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
493 { |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
494 OSErr err; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
495 OSType creator, type; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
496 FInfo info; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
497 |
| 5071 | 498 if (!PyArg_ParseTuple(args, "O&O&", PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
499 return NULL; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
500 err = FSpGetFInfo(&self->fsspec, &info); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
501 if ( err ) { |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
502 PyErr_Mac(ErrorObject, err); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
503 return NULL; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
504 } |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
505 info.fdType = type; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
506 info.fdCreator = creator; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
507 err = FSpSetFInfo(&self->fsspec, &info); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
508 if ( err ) { |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
509 PyErr_Mac(ErrorObject, err); |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
510 return NULL; |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
511 } |
| 5071 | 512 Py_INCREF(Py_None); |
| 513 return Py_None; | |
|
2275
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
514 } |
|
e5b9f644053e
Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2264
diff
changeset
|
515 |
| 5071 | 516 static PyObject * |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
517 mfss_GetFInfo(self, args) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
518 mfssobject *self; |
| 5071 | 519 PyObject *args; |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
520 { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
521 OSErr err; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
522 mfsiobject *fip; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
523 |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
524 |
| 5071 | 525 if (!PyArg_ParseTuple(args, "")) |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
526 return NULL; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
527 if ( (fip=newmfsiobject()) == NULL ) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
528 return NULL; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
529 err = FSpGetFInfo(&self->fsspec, &fip->finfo); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
530 if ( err ) { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
531 PyErr_Mac(ErrorObject, err); |
| 5071 | 532 Py_DECREF(fip); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
533 return NULL; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
534 } |
| 5071 | 535 return (PyObject *)fip; |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
536 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
537 |
| 5071 | 538 static PyObject * |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
539 mfss_SetFInfo(self, args) |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
540 mfssobject *self; |
| 5071 | 541 PyObject *args; |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
542 { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
543 OSErr err; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
544 mfsiobject *fip; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
545 |
| 5071 | 546 if (!PyArg_ParseTuple(args, "O!", &Mfsitype, &fip)) |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
547 return NULL; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
548 err = FSpSetFInfo(&self->fsspec, &fip->finfo); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
549 if ( err ) { |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
550 PyErr_Mac(ErrorObject, err); |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
551 return NULL; |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
552 } |
| 5071 | 553 Py_INCREF(Py_None); |
| 554 return Py_None; | |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
555 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
556 |
| 5071 | 557 static PyObject * |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
558 mfss_GetDates(self, args) |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
559 mfssobject *self; |
| 5071 | 560 PyObject *args; |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
561 { |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
562 OSErr err; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
563 unsigned long crdat, mddat, bkdat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
564 |
| 5071 | 565 if (!PyArg_ParseTuple(args, "")) |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
566 return NULL; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
567 err = PyMac_GetFileDates(&self->fsspec, &crdat, &mddat, &bkdat); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
568 if ( err ) { |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
569 PyErr_Mac(ErrorObject, err); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
570 return NULL; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
571 } |
| 5071 | 572 return Py_BuildValue("ddd", (double)crdat, (double)mddat, (double)bkdat); |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
573 } |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
574 |
| 5071 | 575 static PyObject * |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
576 mfss_SetDates(self, args) |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
577 mfssobject *self; |
| 5071 | 578 PyObject *args; |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
579 { |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
580 OSErr err; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
581 double crdat, mddat, bkdat; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
582 |
| 5071 | 583 if (!PyArg_ParseTuple(args, "ddd", &crdat, &mddat, &bkdat)) |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
584 return NULL; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
585 err = PyMac_SetFileDates(&self->fsspec, (unsigned long)crdat, |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
586 (unsigned long)mddat, (unsigned long)bkdat); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
587 if ( err ) { |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
588 PyErr_Mac(ErrorObject, err); |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
589 return NULL; |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
590 } |
| 5071 | 591 Py_INCREF(Py_None); |
| 592 return Py_None; | |
|
4308
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
593 } |
|
1a0f34c18163
Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents:
3787
diff
changeset
|
594 |
| 5071 | 595 static struct PyMethodDef mfss_methods[] = { |
| 596 {"as_pathname", (PyCFunction)mfss_as_pathname, 1}, | |
| 597 {"as_tuple", (PyCFunction)mfss_as_tuple, 1}, | |
| 598 {"NewAlias", (PyCFunction)mfss_NewAlias, 1}, | |
| 599 {"NewAliasMinimal", (PyCFunction)mfss_NewAliasMinimal, 1}, | |
| 600 {"GetCreatorType", (PyCFunction)mfss_GetCreatorType, 1}, | |
| 601 {"SetCreatorType", (PyCFunction)mfss_SetCreatorType, 1}, | |
| 602 {"GetFInfo", (PyCFunction)mfss_GetFInfo, 1}, | |
| 603 {"SetFInfo", (PyCFunction)mfss_SetFInfo, 1}, | |
| 604 {"GetDates", (PyCFunction)mfss_GetDates, 1}, | |
| 605 {"SetDates", (PyCFunction)mfss_SetDates, 1}, | |
| 2249 | 606 |
| 607 {NULL, NULL} /* sentinel */ | |
| 608 }; | |
| 609 | |
| 610 /* ---------- */ | |
| 611 | |
| 5071 | 612 static PyObject * |
| 2249 | 613 mfss_getattr(self, name) |
| 614 mfssobject *self; | |
| 615 char *name; | |
| 616 { | |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
617 if ( strcmp(name, "data") == 0) |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
618 return PyString_FromStringAndSize((char *)&self->fsspec, sizeof(FSSpec)); |
| 5071 | 619 return Py_FindMethod(mfss_methods, (PyObject *)self, name); |
| 2249 | 620 } |
| 621 | |
| 622 mfssobject * | |
| 623 newmfssobject(fss) | |
| 624 FSSpec *fss; | |
| 625 { | |
| 626 mfssobject *self; | |
| 627 | |
| 5071 | 628 self = PyObject_NEW(mfssobject, &Mfsstype); |
| 2249 | 629 if (self == NULL) |
| 630 return NULL; | |
| 631 self->fsspec = *fss; | |
| 632 return self; | |
| 633 } | |
| 634 | |
| 635 static void | |
| 636 mfss_dealloc(self) | |
| 637 mfssobject *self; | |
| 638 { | |
| 5071 | 639 PyMem_DEL(self); |
| 2249 | 640 } |
| 641 | |
| 5071 | 642 static PyObject * |
| 2249 | 643 mfss_repr(self) |
| 644 mfssobject *self; | |
| 645 { | |
| 646 char buf[512]; | |
| 647 | |
|
2408
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
648 sprintf(buf, "FSSpec((%d, %d, '%.*s'))", |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
649 self->fsspec.vRefNum, |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
650 self->fsspec.parID, |
|
77eb63716b4f
replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents:
2400
diff
changeset
|
651 self->fsspec.name[0], self->fsspec.name+1); |
| 5071 | 652 return PyString_FromString(buf); |
| 2249 | 653 } |
| 654 | |
| 655 static int | |
| 656 mfss_compare(v, w) | |
| 657 mfssobject *v, *w; | |
| 658 { | |
| 659 int minlen; | |
| 660 int res; | |
| 661 | |
| 662 if ( v->fsspec.vRefNum < w->fsspec.vRefNum ) return -1; | |
| 663 if ( v->fsspec.vRefNum > w->fsspec.vRefNum ) return 1; | |
| 664 if ( v->fsspec.parID < w->fsspec.parID ) return -1; | |
| 665 if ( v->fsspec.parID > w->fsspec.parID ) return 1; | |
| 666 minlen = v->fsspec.name[0]; | |
| 667 if ( w->fsspec.name[0] < minlen ) minlen = w->fsspec.name[0]; | |
| 668 res = strncmp((char *)v->fsspec.name+1, (char *)w->fsspec.name+1, minlen); | |
| 669 if ( res ) return res; | |
| 670 if ( v->fsspec.name[0] < w->fsspec.name[0] ) return -1; | |
| 671 if ( v->fsspec.name[0] > w->fsspec.name[0] ) return 1; | |
| 672 return res; | |
| 673 } | |
| 674 | |
| 5071 | 675 statichere PyTypeObject Mfsstype = { |
| 676 PyObject_HEAD_INIT(&PyType_Type) | |
| 2249 | 677 0, /*ob_size*/ |
| 678 "FSSpec", /*tp_name*/ | |
| 679 sizeof(mfssobject), /*tp_basicsize*/ | |
| 680 0, /*tp_itemsize*/ | |
| 681 /* methods */ | |
| 682 (destructor)mfss_dealloc, /*tp_dealloc*/ | |
| 683 (printfunc)0, /*tp_print*/ | |
| 684 (getattrfunc)mfss_getattr, /*tp_getattr*/ | |
| 685 (setattrfunc)0, /*tp_setattr*/ | |
| 686 (cmpfunc)mfss_compare, /*tp_compare*/ | |
| 687 (reprfunc)mfss_repr, /*tp_repr*/ | |
| 688 0, /*tp_as_number*/ | |
| 689 0, /*tp_as_sequence*/ | |
| 690 0, /*tp_as_mapping*/ | |
| 691 (hashfunc)0, /*tp_hash*/ | |
| 692 }; | |
| 693 | |
| 694 /* End of code for FSSpec objects */ | |
| 695 /* -------------------------------------------------------- */ | |
| 696 | |
| 5071 | 697 static PyObject * |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
698 mfs_ResolveAliasFile(self, args) |
| 5071 | 699 PyObject *self; /* Not used */ |
| 700 PyObject *args; | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
701 { |
| 2249 | 702 FSSpec fss; |
| 703 Boolean chain = 1, isfolder, wasaliased; | |
| 704 OSErr err; | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
705 |
| 5071 | 706 if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &chain)) |
| 2249 | 707 return NULL; |
| 708 err = ResolveAliasFile(&fss, chain, &isfolder, &wasaliased); | |
| 709 if ( err ) { | |
| 710 PyErr_Mac(ErrorObject, err); | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
711 return NULL; |
| 2249 | 712 } |
| 5071 | 713 return Py_BuildValue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased); |
| 2249 | 714 } |
| 715 | |
| 5071 | 716 static PyObject * |
| 2249 | 717 mfs_StandardGetFile(self, args) |
| 5071 | 718 PyObject *self; /* Not used */ |
| 719 PyObject *args; | |
| 2249 | 720 { |
|
2264
85aa2e4d0123
fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents:
2254
diff
changeset
|
721 SFTypeList list; |
| 2249 | 722 short numtypes; |
| 723 StandardFileReply reply; | |
| 724 | |
| 725 list[0] = list[1] = list[2] = list[3] = 0; | |
| 726 numtypes = 0; | |
| 5071 | 727 if (!PyArg_ParseTuple(args, "|O&O&O&O&", PyMac_GetOSType, &list[0], |
| 2249 | 728 PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2], |
| 729 PyMac_GetOSType, &list[3]) ) | |
| 730 return NULL; | |
|
2264
85aa2e4d0123
fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents:
2254
diff
changeset
|
731 while ( numtypes < 4 && list[numtypes] ) { |
| 2249 | 732 numtypes++; |
| 733 } | |
|
2717
6c864ad519a3
StandardGetFile without args now shows all files (in stead of none)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2408
diff
changeset
|
734 if ( numtypes == 0 ) |
|
6c864ad519a3
StandardGetFile without args now shows all files (in stead of none)
Jack Jansen <jack.jansen@cwi.nl>
parents:
2408
diff
changeset
|
735 numtypes = -1; |
|
2264
85aa2e4d0123
fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents:
2254
diff
changeset
|
736 StandardGetFile((FileFilterUPP)0, numtypes, list, &reply); |
| 5071 | 737 return Py_BuildValue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
738 } |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
739 |
| 5071 | 740 static PyObject * |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
741 mfs_PromptGetFile(self, args) |
| 5071 | 742 PyObject *self; /* Not used */ |
| 743 PyObject *args; | |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
744 { |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
745 SFTypeList list; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
746 short numtypes; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
747 StandardFileReply reply; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
748 char *prompt = NULL; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
749 |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
750 list[0] = list[1] = list[2] = list[3] = 0; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
751 numtypes = 0; |
| 5071 | 752 if (!PyArg_ParseTuple(args, "s|O&O&O&O&", &prompt, PyMac_GetOSType, &list[0], |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
753 PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2], |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
754 PyMac_GetOSType, &list[3]) ) |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
755 return NULL; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
756 while ( numtypes < 4 && list[numtypes] ) { |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
757 numtypes++; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
758 } |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
759 if ( numtypes == 0 ) |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
760 numtypes = -1; |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
761 PyMac_PromptGetFile(numtypes, list, &reply, prompt); |
| 5071 | 762 return Py_BuildValue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood); |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
763 } |
|
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
764 |
| 5071 | 765 static PyObject * |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
766 mfs_StandardPutFile(self, args) |
| 5071 | 767 PyObject *self; /* Not used */ |
| 768 PyObject *args; | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
769 { |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
770 Str255 prompt, dft; |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
771 StandardFileReply reply; |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
772 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
773 dft[0] = 0; |
| 5071 | 774 if (!PyArg_ParseTuple(args, "O&|O&", PyMac_GetStr255, &prompt, PyMac_GetStr255, &dft) ) |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
775 return NULL; |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
776 StandardPutFile(prompt, dft, &reply); |
| 5071 | 777 return Py_BuildValue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
778 } |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
779 |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
780 /* |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
781 ** Set initial directory for file dialogs */ |
| 5071 | 782 static PyObject * |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
783 mfs_SetFolder(self, args) |
| 5071 | 784 PyObject *self; |
| 785 PyObject *args; | |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
786 { |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
787 FSSpec spec; |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
788 FSSpec ospec; |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
789 short orefnum; |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
790 long oparid; |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
791 |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
792 /* Get old values */ |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
793 orefnum = -LMGetSFSaveDisk(); |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
794 oparid = LMGetCurDirStore(); |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
795 (void)FSMakeFSSpec(orefnum, oparid, "\pplaceholder", &ospec); |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
796 |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
797 /* Go to working directory by default */ |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
798 (void)FSMakeFSSpec(0, 0, "\p:placeholder", &spec); |
| 5071 | 799 if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &spec)) |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
800 return NULL; |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
801 /* Set standard-file working directory */ |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
802 LMSetSFSaveDisk(-spec.vRefNum); |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
803 LMSetCurDirStore(spec.parID); |
| 5071 | 804 return (PyObject *)newmfssobject(&ospec); |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
805 } |
|
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
806 |
| 5071 | 807 static PyObject * |
| 2249 | 808 mfs_FSSpec(self, args) |
| 5071 | 809 PyObject *self; /* Not used */ |
| 810 PyObject *args; | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
811 { |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
812 FSSpec fss; |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
813 |
| 5071 | 814 if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &fss)) |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
815 return NULL; |
| 5071 | 816 return (PyObject *)newmfssobject(&fss); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
817 } |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
818 |
| 5071 | 819 static PyObject * |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
820 mfs_RawFSSpec(self, args) |
| 5071 | 821 PyObject *self; /* Not used */ |
| 822 PyObject *args; | |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
823 { |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
824 FSSpec *fssp; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
825 int size; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
826 |
|
5429
ac235c9e6881
- Changed the m# format for PyArg_ParseTuple back to s#
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
827 if (!PyArg_ParseTuple(args, "s#", &fssp, &size)) |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
828 return NULL; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
829 if ( size != sizeof(FSSpec) ) { |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
830 PyErr_SetString(PyExc_TypeError, "Incorrect size for FSSpec record"); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
831 return NULL; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
832 } |
| 5071 | 833 return (PyObject *)newmfssobject(fssp); |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
834 } |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
835 |
| 5071 | 836 static PyObject * |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
837 mfs_RawAlias(self, args) |
| 5071 | 838 PyObject *self; /* Not used */ |
| 839 PyObject *args; | |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
840 { |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
841 char *dataptr; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
842 Handle h; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
843 int size; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
844 |
|
5429
ac235c9e6881
- Changed the m# format for PyArg_ParseTuple back to s#
Jack Jansen <jack.jansen@cwi.nl>
parents:
5152
diff
changeset
|
845 if (!PyArg_ParseTuple(args, "s#", &dataptr, &size)) |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
846 return NULL; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
847 h = NewHandle(size); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
848 if ( h == NULL ) { |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
849 PyErr_NoMemory(); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
850 return NULL; |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
851 } |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
852 HLock(h); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
853 memcpy((char *)*h, dataptr, size); |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
854 HUnlock(h); |
| 5071 | 855 return (PyObject *)newmfsaobject((AliasHandle)h); |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
856 } |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
857 |
| 5071 | 858 static PyObject * |
|
2400
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
859 mfs_GetDirectory(self, args) |
| 5071 | 860 PyObject *self; /* Not used */ |
| 861 PyObject *args; | |
|
2400
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
862 { |
|
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
863 FSSpec fsdir; |
|
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
864 int ok; |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
865 char *prompt = NULL; |
|
2400
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
866 |
| 5071 | 867 if (!PyArg_ParseTuple(args, "|s", &prompt) ) |
|
2400
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
868 return NULL; |
|
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
869 |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
870 ok = PyMac_GetDirectory(&fsdir, prompt); |
| 5071 | 871 return Py_BuildValue("(Oi)", newmfssobject(&fsdir), ok); |
|
2400
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
872 } |
|
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
873 |
| 5071 | 874 static PyObject * |
|
2748
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
875 mfs_FindFolder(self, args) |
| 5071 | 876 PyObject *self; /* Not used */ |
| 877 PyObject *args; | |
|
2748
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
878 { |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
879 OSErr err; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
880 short where; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
881 OSType which; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
882 int create; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
883 short refnum; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
884 long dirid; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
885 |
| 5071 | 886 if (!PyArg_ParseTuple(args, "hO&i", &where, PyMac_GetOSType, &which, &create) ) |
|
2748
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
887 return NULL; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
888 err = FindFolder(where, which, (Boolean)create, &refnum, &dirid); |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
889 if ( err ) { |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
890 PyErr_Mac(ErrorObject, err); |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
891 return NULL; |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
892 } |
| 5071 | 893 return Py_BuildValue("(ii)", refnum, dirid); |
|
2748
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
894 } |
|
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
895 |
| 5071 | 896 static PyObject * |
|
4319
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
897 mfs_FindApplication(self, args) |
| 5071 | 898 PyObject *self; /* Not used */ |
| 899 PyObject *args; | |
|
4319
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
900 { |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
901 OSErr err; |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
902 OSType which; |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
903 FSSpec fss; |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
904 |
| 5071 | 905 if (!PyArg_ParseTuple(args, "O&", PyMac_GetOSType, &which) ) |
|
4319
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
906 return NULL; |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
907 err = FindApplicationFromCreator(which, &fss); |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
908 if ( err ) { |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
909 PyErr_Mac(ErrorObject, err); |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
910 return NULL; |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
911 } |
| 5071 | 912 return (PyObject *)newmfssobject(&fss); |
|
4319
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
913 } |
|
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
914 |
| 5071 | 915 static PyObject * |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
916 mfs_FInfo(self, args) |
| 5071 | 917 PyObject *self; |
| 918 PyObject *args; | |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
919 { |
| 5071 | 920 return (PyObject *)newmfsiobject(); |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
921 } |
|
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
922 |
|
5743
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
923 static PyObject * |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
924 mfs_NewAliasMinimalFromFullPath(self, args) |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
925 PyObject *self; /* Not used */ |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
926 PyObject *args; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
927 { |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
928 OSErr err; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
929 char *fullpath; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
930 int fullpathlen; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
931 AliasHandle alias; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
932 Str32 zonename; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
933 Str31 servername; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
934 |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
935 if (!PyArg_ParseTuple(args, "s#", &fullpath, &fullpathlen) ) |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
936 return NULL; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
937 zonename[0] = 0; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
938 servername[0] = 0; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
939 err = NewAliasMinimalFromFullPath(fullpathlen, (Ptr)fullpath, zonename, |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
940 servername, &alias); |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
941 if ( err ) { |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
942 PyErr_Mac(ErrorObject, err); |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
943 return NULL; |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
944 } |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
945 return (PyObject *)newmfsaobject(alias); |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
946 } |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
947 |
|
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
948 |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
949 /* List of methods defined in the module */ |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
950 |
| 5071 | 951 static struct PyMethodDef mfs_methods[] = { |
| 2249 | 952 {"ResolveAliasFile", mfs_ResolveAliasFile, 1}, |
| 953 {"StandardGetFile", mfs_StandardGetFile, 1}, | |
|
2981
56ad247cbfcb
Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents:
2909
diff
changeset
|
954 {"PromptGetFile", mfs_PromptGetFile, 1}, |
| 2249 | 955 {"StandardPutFile", mfs_StandardPutFile, 1}, |
|
2400
d31f694c11a8
Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents:
2337
diff
changeset
|
956 {"GetDirectory", mfs_GetDirectory, 1}, |
|
3787
7766360b85b8
Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents:
3140
diff
changeset
|
957 {"SetFolder", mfs_SetFolder, 1}, |
| 2249 | 958 {"FSSpec", mfs_FSSpec, 1}, |
|
2319
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
959 {"RawFSSpec", mfs_RawFSSpec, 1}, |
|
1e7207128167
Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents:
2275
diff
changeset
|
960 {"RawAlias", mfs_RawAlias, 1}, |
|
2748
39cd25678b41
Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents:
2717
diff
changeset
|
961 {"FindFolder", mfs_FindFolder, 1}, |
|
4319
97133996e22f
Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents:
4308
diff
changeset
|
962 {"FindApplication", mfs_FindApplication, 1}, |
|
2909
f9b1069a3e26
Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents:
2748
diff
changeset
|
963 {"FInfo", mfs_FInfo, 1}, |
|
5743
c606dd61544a
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
Jack Jansen <jack.jansen@cwi.nl>
parents:
5429
diff
changeset
|
964 {"NewAliasMinimalFromFullPath", mfs_NewAliasMinimalFromFullPath, 1}, |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
965 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
966 {NULL, NULL} /* sentinel */ |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
967 }; |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
968 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
969 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
970 /* Initialization function for the module (*must* be called initmacfs) */ |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
971 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
972 void |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
973 initmacfs() |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
974 { |
| 5071 | 975 PyObject *m, *d; |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
976 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
977 /* Create the module and add the functions */ |
| 5071 | 978 m = Py_InitModule("macfs", mfs_methods); |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
979 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
980 /* Add some symbolic constants to the module */ |
| 5071 | 981 d = PyModule_GetDict(m); |
| 982 ErrorObject = PyString_FromString("macfs.error"); | |
| 983 PyDict_SetItemString(d, "error", ErrorObject); | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
984 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
985 /* XXXX Add constants here */ |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
986 |
|
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
987 /* Check for errors */ |
| 5071 | 988 if (PyErr_Occurred()) |
| 989 Py_FatalError("can't initialize module macfs"); | |
|
2180
9b451c84a7bf
Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff
changeset
|
990 } |
