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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
71e60871c681 ported to Think C
Guido van Rossum <guido@python.org>
parents: 2319
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
44 /* Declarations for objects of type Alias */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
45
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
46 typedef struct {
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
47 PyObject_HEAD
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
48 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
49 } mfsaobject;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
50
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
51 staticforward PyTypeObject Mfsatype;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
52
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
53 #define is_mfsaobject(v) ((v)->ob_type == &Mfsatype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
54
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
55 /* ---------------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
56 /* Declarations for objects of type FSSpec */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
57
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
58 typedef struct {
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
59 PyObject_HEAD
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
60 FSSpec fsspec;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
61 } mfssobject;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
62
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
63 staticforward PyTypeObject Mfsstype;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
64
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
65 #define is_mfssobject(v) ((v)->ob_type == &Mfsstype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
85 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
86 mfsa_Resolve(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
87 mfsaobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
90 FSSpec from, *fromp, result;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
91 Boolean changed;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
94 from.name[0] = 0;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
95 if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &from))
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
96 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
97 if (from.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
98 fromp = &from;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
99 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
100 fromp = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
105 }
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
106 return Py_BuildValue("(Oi)", newmfssobject(&result), (int)changed);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
109 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
110 mfsa_GetInfo(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
111 mfsaobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
112 PyObject *args;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
113 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
114 Str63 value;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
115 int i;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
116 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
117
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
118 if (!PyArg_ParseTuple(args, "i", &i))
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
119 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
120 err = GetAliasInfo(self->alias, (AliasInfoType)i, value);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
121 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
122 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
123 return 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
124 }
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
128 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
129 mfsa_Update(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
130 mfsaobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
133 FSSpec target, fromfile, *fromfilep;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
134 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
135 Boolean changed;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
136
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
137 fromfile.name[0] = 0;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
138 if (!PyArg_ParseTuple(args, "O&|O&", PyMac_GetFSSpec, &target,
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
139 PyMac_GetFSSpec, &fromfile))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
140 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
141 if ( fromfile.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
142 fromfilep = &fromfile;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
143 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
144 fromfilep = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
145 err = UpdateAlias(fromfilep, &target, self->alias, &changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
146 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
147 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
148 return 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
149 }
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
150 return Py_BuildValue("i", (int)changed);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
151 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
152
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
153 static struct PyMethodDef mfsa_methods[] = {
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
154 {"Resolve", (PyCFunction)mfsa_Resolve, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
155 {"GetInfo", (PyCFunction)mfsa_GetInfo, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
156 {"Update", (PyCFunction)mfsa_Update, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
157
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
158 {NULL, NULL} /* sentinel */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
159 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
160
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
161 /* ---------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
162
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
163 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
164 mfsa_getattr(self, name)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
165 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
166 char *name;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
178 return Py_FindMethod(mfsa_methods, (PyObject *)self, name);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
179 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
180
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
181 mfsaobject *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
182 newmfsaobject(alias)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
183 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
184 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
185 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
186
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
187 self = PyObject_NEW(mfsaobject, &Mfsatype);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
188 if (self == NULL)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
189 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
190 self->alias = alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
191 return self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
192 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
193
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
194
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
195 static void
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
196 mfsa_dealloc(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
197 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
198 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
199 #if 0
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
200 if ( self->alias ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
201 should we do something here?
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
202 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
203 #endif
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
204
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
205 PyMem_DEL(self);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
206 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
207
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
208 statichere PyTypeObject Mfsatype = {
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
209 PyObject_HEAD_INIT(&PyType_Type)
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
210 0, /*ob_size*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
211 "Alias", /*tp_name*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
212 sizeof(mfsaobject), /*tp_basicsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
213 0, /*tp_itemsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
214 /* methods */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
225 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
226
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
227 /* End of code for Alias objects */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
228 /* -------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
313 static PyTypeObject Mfsitype = {
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
336 /*
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
337 ** Helper routine for other modules: return an FSSpec * if the
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
338 ** object is a python fsspec object, else NULL
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
339 */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
340 FSSpec *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
341 mfs_GetFSSpecFSSpec(self)
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
342 PyObject *self;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
343 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
344 if ( is_mfssobject(self) )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
345 return &((mfssobject *)self)->fsspec;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
346 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
347 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
397 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
398 mfss_as_pathname(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
399 mfssobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
400 PyObject *args;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
401 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
402 char strbuf[257];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
d0c03c32e8d9 Got rid of nfullpath()
Jack Jansen <jack.jansen@cwi.nl>
parents: 4319
diff changeset
407 err = PyMac_GetFullPath(&self->fsspec, strbuf);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
408 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
409 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
410 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
411 }
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
412 return PyString_FromString(strbuf);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
413 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
414
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
415 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
416 mfss_as_tuple(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
417 mfssobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
418 PyObject *args;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
419 {
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
420 if (!PyArg_ParseTuple(args, ""))
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
421 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
422 return Py_BuildValue("(iis#)", self->fsspec.vRefNum, self->fsspec.parID,
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
423 &self->fsspec.name[1], self->fsspec.name[0]);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
424 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
425
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
426 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
427 mfss_NewAlias(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
428 mfssobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
429 PyObject *args;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
430 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
431 FSSpec src, *srcp;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
432 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
433 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
434
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
435 src.name[0] = 0;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
436 if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &src))
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
437 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
438 if ( src.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
439 srcp = &src;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
440 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
441 srcp = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
442 err = NewAlias(srcp, &self->fsspec, &alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
443 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
444 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
445 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
446 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
447
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
448 return (PyObject *)newmfsaobject(alias);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
449 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
450
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
451 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
452 mfss_NewAliasMinimal(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
453 mfssobject *self;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
454 PyObject *args;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
455 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
456 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
457 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
458
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
459 if (!PyArg_ParseTuple(args, ""))
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
460 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
461 err = NewAliasMinimal(&self->fsspec, &alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
462 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
463 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
464 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
465 }
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
512 Py_INCREF(Py_None);
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
553 Py_INCREF(Py_None);
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
591 Py_INCREF(Py_None);
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
595 static struct PyMethodDef mfss_methods[] = {
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
596 {"as_pathname", (PyCFunction)mfss_as_pathname, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
597 {"as_tuple", (PyCFunction)mfss_as_tuple, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
598 {"NewAlias", (PyCFunction)mfss_NewAlias, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
599 {"NewAliasMinimal", (PyCFunction)mfss_NewAliasMinimal, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
600 {"GetCreatorType", (PyCFunction)mfss_GetCreatorType, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
601 {"SetCreatorType", (PyCFunction)mfss_SetCreatorType, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
602 {"GetFInfo", (PyCFunction)mfss_GetFInfo, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
603 {"SetFInfo", (PyCFunction)mfss_SetFInfo, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
604 {"GetDates", (PyCFunction)mfss_GetDates, 1},
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
605 {"SetDates", (PyCFunction)mfss_SetDates, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
606
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
607 {NULL, NULL} /* sentinel */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
608 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
609
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
610 /* ---------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
611
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
612 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
613 mfss_getattr(self, name)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
614 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
615 char *name;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
619 return Py_FindMethod(mfss_methods, (PyObject *)self, name);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
620 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
621
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
622 mfssobject *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
623 newmfssobject(fss)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
624 FSSpec *fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
625 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
626 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
627
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
628 self = PyObject_NEW(mfssobject, &Mfsstype);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
629 if (self == NULL)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
630 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
631 self->fsspec = *fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
632 return self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
633 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
634
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
635 static void
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
636 mfss_dealloc(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
637 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
638 {
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
639 PyMem_DEL(self);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
640 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
641
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
642 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
643 mfss_repr(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
644 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
645 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
646 char buf[512];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
652 return PyString_FromString(buf);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
653 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
654
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
655 static int
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
656 mfss_compare(v, w)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
657 mfssobject *v, *w;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
658 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
659 int minlen;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
660 int res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
661
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
662 if ( v->fsspec.vRefNum < w->fsspec.vRefNum ) return -1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
663 if ( v->fsspec.vRefNum > w->fsspec.vRefNum ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
664 if ( v->fsspec.parID < w->fsspec.parID ) return -1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
665 if ( v->fsspec.parID > w->fsspec.parID ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
666 minlen = v->fsspec.name[0];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
667 if ( w->fsspec.name[0] < minlen ) minlen = w->fsspec.name[0];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
668 res = strncmp((char *)v->fsspec.name+1, (char *)w->fsspec.name+1, minlen);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
669 if ( res ) return res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
670 if ( v->fsspec.name[0] < w->fsspec.name[0] ) return -1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
671 if ( v->fsspec.name[0] > w->fsspec.name[0] ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
672 return res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
673 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
674
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
675 statichere PyTypeObject Mfsstype = {
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
676 PyObject_HEAD_INIT(&PyType_Type)
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
677 0, /*ob_size*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
678 "FSSpec", /*tp_name*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
679 sizeof(mfssobject), /*tp_basicsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
680 0, /*tp_itemsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
681 /* methods */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
682 (destructor)mfss_dealloc, /*tp_dealloc*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
683 (printfunc)0, /*tp_print*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
684 (getattrfunc)mfss_getattr, /*tp_getattr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
685 (setattrfunc)0, /*tp_setattr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
686 (cmpfunc)mfss_compare, /*tp_compare*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
687 (reprfunc)mfss_repr, /*tp_repr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
688 0, /*tp_as_number*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
689 0, /*tp_as_sequence*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
690 0, /*tp_as_mapping*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
691 (hashfunc)0, /*tp_hash*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
692 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
693
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
694 /* End of code for FSSpec objects */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
695 /* -------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
696
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
699 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
702 FSSpec fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
703 Boolean chain = 1, isfolder, wasaliased;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
706 if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &chain))
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
707 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
708 err = ResolveAliasFile(&fss, chain, &isfolder, &wasaliased);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
709 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
712 }
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
713 return Py_BuildValue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
714 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
715
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
716 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
717 mfs_StandardGetFile(self, args)
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
718 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
719 PyObject *args;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
720 {
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
721 SFTypeList list;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
722 short numtypes;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
723 StandardFileReply reply;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
724
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
725 list[0] = list[1] = list[2] = list[3] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
726 numtypes = 0;
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
727 if (!PyArg_ParseTuple(args, "|O&O&O&O&", PyMac_GetOSType, &list[0],
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
728 PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2],
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
729 PyMac_GetOSType, &list[3]) )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
732 numtypes++;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
742 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
767 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
784 PyObject *self;
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
807 static PyObject *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
808 mfs_FSSpec(self, args)
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
809 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
821 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
838 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
858 static PyObject *
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
859 mfs_GetDirectory(self, args)
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
860 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
874 static PyObject *
2748
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
875 mfs_FindFolder(self, args)
5071
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
876 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
898 PyObject *self; /* Not used */
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
917 PyObject *self;
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
951 static struct PyMethodDef mfs_methods[] = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
952 {"ResolveAliasFile", mfs_ResolveAliasFile, 1},
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
981 d = PyModule_GetDict(m);
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
982 ErrorObject = PyString_FromString("macfs.error");
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
988 if (PyErr_Occurred())
44bdf0b56c0b Renamed
Jack Jansen <jack.jansen@cwi.nl>
parents: 4524
diff changeset
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 }