annotate Mac/Modules/macfsmodule.c @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents d0c03c32e8d9
children 44bdf0b56c0b
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 /***********************************************************
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
2 Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
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
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
25 #include "allobjects.h"
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
26 #include "modsupport.h" /* For getargs() etc. */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
27 #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
28
2337
71e60871c681 ported to Think C
Guido van Rossum <guido@python.org>
parents: 2319
diff changeset
29 #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
30 #include <Files.h>
2748
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
31 #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
32 #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
33 #include <Aliases.h>
3787
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
34 #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
35
4319
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
36 #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
37
2186
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
38 #ifdef THINK_C
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
39 #define FileFilterUPP FileFilterProcPtr
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
40 #endif
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
41
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
42 static object *ErrorObject;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
44 /* ----------------------------------------------------- */
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
45 /* Declarations for objects of type Alias */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
46
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
47 typedef struct {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
48 OB_HEAD
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
49 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
50 } mfsaobject;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
51
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
52 staticforward typeobject Mfsatype;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
53
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
54 #define is_mfsaobject(v) ((v)->ob_type == &Mfsatype)
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 /* ---------------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
57 /* Declarations for objects of type FSSpec */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
58
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
59 typedef struct {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
60 OB_HEAD
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
61 FSSpec fsspec;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
62 } mfssobject;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
63
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
64 staticforward typeobject Mfsstype;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
65
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
66 #define is_mfssobject(v) ((v)->ob_type == &Mfsstype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
67
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
68
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
69 /* ---------------------------------------------------------------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
70 /* 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
71
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
72 typedef struct {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
73 OB_HEAD
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
74 FInfo finfo;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
75 } mfsiobject;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
76
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
77 staticforward typeobject Mfsitype;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
78
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
79 #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
80
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
81
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
82 mfssobject *newmfssobject(FSSpec *fss); /* Forward */
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
83
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
84 /* ---------------------------------------------------------------- */
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
85
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
86 static object *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
87 mfsa_Resolve(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
88 mfsaobject *self;
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
90 {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
91 FSSpec from, *fromp, result;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
92 Boolean changed;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
93 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
94
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
95 from.name[0] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
96 if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &from))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
97 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
98 if (from.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
99 fromp = &from;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
100 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
101 fromp = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
102 err = ResolveAlias(fromp, self->alias, &result, &changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
103 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
104 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
105 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
106 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
107 return mkvalue("(Oi)", newmfssobject(&result), (int)changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
108 }
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
109
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
110 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
111 mfsa_GetInfo(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
112 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
113 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
114 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
115 Str63 value;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
116 int i;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
117 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
118
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
119 if (!newgetargs(args, "i", &i))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
120 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
121 err = GetAliasInfo(self->alias, (AliasInfoType)i, value);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
122 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
123 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
124 return 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
125 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
126 return newsizedstringobject((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
127 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
128
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
129 static object *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
130 mfsa_Update(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
131 mfsaobject *self;
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
132 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
133 {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
134 FSSpec target, fromfile, *fromfilep;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
135 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
136 Boolean changed;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
137
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
138 fromfile.name[0] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
139 if (!newgetargs(args, "O&|O&", PyMac_GetFSSpec, &target,
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
140 PyMac_GetFSSpec, &fromfile))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
141 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
142 if ( fromfile.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
143 fromfilep = &fromfile;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
144 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
145 fromfilep = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
146 err = UpdateAlias(fromfilep, &target, self->alias, &changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
147 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
148 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
149 return 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
150 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
151 return mkvalue("i", (int)changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
152 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
153
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
154 static struct methodlist mfsa_methods[] = {
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
155 {"Resolve", (method)mfsa_Resolve, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
156 {"GetInfo", (method)mfsa_GetInfo, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
157 {"Update", (method)mfsa_Update, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
158
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
159 {NULL, NULL} /* sentinel */
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 /* ---------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
163
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
164 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
165 mfsa_getattr(self, name)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
166 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
167 char *name;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
168 {
2319
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
169 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
170 int size;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
171 PyObject *rv;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
172
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
173 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
174 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
175 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
176 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
177 return rv;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
178 }
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
179 return findmethod(mfsa_methods, (object *)self, name);
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
182 mfsaobject *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
183 newmfsaobject(alias)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
184 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
185 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
186 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
187
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
188 self = NEWOBJ(mfsaobject, &Mfsatype);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
189 if (self == NULL)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
190 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
191 self->alias = alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
192 return self;
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
196 static void
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
197 mfsa_dealloc(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
198 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
199 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
200 #if 0
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
201 if ( self->alias ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
202 should we do something here?
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
203 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
204 #endif
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
205
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
206 DEL(self);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
207 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
208
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
209 statichere typeobject Mfsatype = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
210 OB_HEAD_INIT(&Typetype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
211 0, /*ob_size*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
212 "Alias", /*tp_name*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
213 sizeof(mfsaobject), /*tp_basicsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
214 0, /*tp_itemsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
215 /* methods */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
216 (destructor)mfsa_dealloc, /*tp_dealloc*/
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
217 (printfunc)0, /*tp_print*/
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
218 (getattrfunc)mfsa_getattr, /*tp_getattr*/
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
219 (setattrfunc)0, /*tp_setattr*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
220 (cmpfunc)0, /*tp_compare*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
221 (reprfunc)0, /*tp_repr*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
222 0, /*tp_as_number*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
223 0, /*tp_as_sequence*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
224 0, /*tp_as_mapping*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
225 (hashfunc)0, /*tp_hash*/
2249
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
228 /* End of code for Alias objects */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
229 /* -------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
230
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
231 /* ---------------------------------------------------------------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
232
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
233 static struct methodlist mfsi_methods[] = {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
234
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
235 {NULL, NULL} /* sentinel */
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
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
240 static mfsiobject *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
241 newmfsiobject()
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
242 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
243 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
244
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
245 self = NEWOBJ(mfsiobject, &Mfsitype);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
246 if (self == NULL)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
247 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
248 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
249 return self;
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
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
252 static void
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
253 mfsi_dealloc(self)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
254 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
255 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
256 DEL(self);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
257 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
258
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
259 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
260 mfsi_getattr(self, name)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
261 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
262 char *name;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
263 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
264 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
265 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
266 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
267 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
268 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
269 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
270 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
271 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
272 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
273 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
274 else
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
275 return findmethod(mfsi_methods, (object *)self, name);
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
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
279 static int
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
280 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
281 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
282 char *name;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
283 object *v;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
284 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
285 int rv;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
286 int i;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
287
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
288 if ( v == NULL ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
289 err_setstr(AttributeError, "Cannot delete attribute");
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
290 return -1;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
291 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
292 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
293 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
294 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
295 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
296 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
297 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
298 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
299 } 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
300 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
301 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
302 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
303 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
304 } else {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
305 err_setstr(AttributeError, "No such attribute");
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
306 return -1;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
307 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
308 if (rv)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
309 return 0;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
310 return -1;
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
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
313
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
314 static typeobject Mfsitype = {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
315 OB_HEAD_INIT(&Typetype)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
316 0, /*ob_size*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
317 "FInfo object", /*tp_name*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
318 sizeof(mfsiobject), /*tp_basicsize*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
319 0, /*tp_itemsize*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
320 /* methods */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
321 (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
322 (printfunc)0, /*tp_print*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
323 (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
324 (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
325 (cmpfunc)0, /*tp_compare*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
326 (reprfunc)0, /*tp_repr*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
327 0, /*tp_as_number*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
328 0, /*tp_as_sequence*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
329 0, /*tp_as_mapping*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
330 (hashfunc)0, /*tp_hash*/
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
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
333 /* 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
334 /* -------------------------------------------------------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
335
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
336
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
337 /*
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
338 ** Helper routine for other modules: return an FSSpec * if the
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
339 ** object is a python fsspec object, else NULL
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
340 */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
341 FSSpec *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
342 mfs_GetFSSpecFSSpec(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
343 object *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
344 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
345 if ( is_mfssobject(self) )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
346 return &((mfssobject *)self)->fsspec;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
347 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
348 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
349
4308
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
350 /*
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
351 ** 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
352 */
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
353 static OSErr
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
354 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
355 FSSpec *fss;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
356 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
357 {
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
358 CInfoPBRec pb;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
359 OSErr error;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
360
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.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
362 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
363 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
364 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
365 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
366 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
367 *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
368 *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
369 *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
370 return 0;
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
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
373 static OSErr
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
374 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
375 FSSpec *fss;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
376 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
377 {
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
378 CInfoPBRec pb;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
379 OSErr error;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
380
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.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
382 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
383 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
384 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
385 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
386 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
387 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
388 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
389 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
390 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
391 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
392 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
393 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
394 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
395 return error;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
396 }
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
397
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
398 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
399 mfss_as_pathname(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
400 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
401 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
402 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
403 char strbuf[257];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
404 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
405
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
406 if (!newgetargs(args, ""))
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
407 return NULL;
4524
d0c03c32e8d9 Got rid of nfullpath()
Jack Jansen <jack.jansen@cwi.nl>
parents: 4319
diff changeset
408 err = PyMac_GetFullPath(&self->fsspec, strbuf);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
409 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
410 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
411 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
412 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
413 return newstringobject(strbuf);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
414 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
415
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
416 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
417 mfss_as_tuple(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
418 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
419 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
420 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
421 if (!newgetargs(args, ""))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
422 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
423 return Py_BuildValue("(iis#)", self->fsspec.vRefNum, self->fsspec.parID,
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
424 &self->fsspec.name[1], self->fsspec.name[0]);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
425 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
426
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
427 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
428 mfss_NewAlias(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
429 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
430 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
431 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
432 FSSpec src, *srcp;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
433 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
434 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
435
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
436 src.name[0] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
437 if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &src))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
438 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
439 if ( src.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
440 srcp = &src;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
441 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
442 srcp = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
443 err = NewAlias(srcp, &self->fsspec, &alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
444 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
445 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
446 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
447 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
448
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
449 return (object *)newmfsaobject(alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
450 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
451
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
452 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
453 mfss_NewAliasMinimal(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
454 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
455 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
456 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
457 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
458 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
459
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
460 if (!newgetargs(args, ""))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
461 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
462 err = NewAliasMinimal(&self->fsspec, &alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
463 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
464 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
465 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
466 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
467 return (object *)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
468 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
469
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
470 /* XXXX These routines should be replaced by a wrapper to the *FInfo routines */
2275
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
471 static object *
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
472 mfss_GetCreatorType(self, args)
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
473 mfssobject *self;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
474 object *args;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
475 {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
476 OSErr err;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
477 FInfo info;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
478
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
479 if (!newgetargs(args, ""))
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
480 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
481 err = FSpGetFInfo(&self->fsspec, &info);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
482 if ( err ) {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
483 PyErr_Mac(ErrorObject, err);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
484 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
485 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
486 return Py_BuildValue("(O&O&)",
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
487 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
488 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
489
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
490 static object *
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
491 mfss_SetCreatorType(self, args)
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
492 mfssobject *self;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
493 object *args;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
494 {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
495 OSErr err;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
496 OSType creator, type;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
497 FInfo info;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
498
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
499 if (!newgetargs(args, "O&O&", PyMac_GetOSType, &creator, PyMac_GetOSType, &type))
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
500 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
501 err = FSpGetFInfo(&self->fsspec, &info);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
502 if ( err ) {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
503 PyErr_Mac(ErrorObject, err);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
504 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
505 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
506 info.fdType = type;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
507 info.fdCreator = creator;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
508 err = FSpSetFInfo(&self->fsspec, &info);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
509 if ( err ) {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
510 PyErr_Mac(ErrorObject, err);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
511 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
512 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
513 INCREF(None);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
514 return None;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
515 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
516
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
517 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
518 mfss_GetFInfo(self, args)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
519 mfssobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
520 object *args;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
521 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
522 OSErr err;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
523 mfsiobject *fip;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
524
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
525
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
526 if (!newgetargs(args, ""))
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
527 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
528 if ( (fip=newmfsiobject()) == NULL )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
529 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
530 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
531 if ( err ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
532 PyErr_Mac(ErrorObject, err);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
533 DECREF(fip);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
534 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
535 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
536 return (object *)fip;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
537 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
538
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
539 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
540 mfss_SetFInfo(self, args)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
541 mfssobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
542 object *args;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
543 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
544 OSErr err;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
545 mfsiobject *fip;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
546
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
547 if (!newgetargs(args, "O!", &Mfsitype, &fip))
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
548 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
549 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
550 if ( err ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
551 PyErr_Mac(ErrorObject, err);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
552 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
553 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
554 INCREF(None);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
555 return None;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
556 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
557
4308
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
558 static object *
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
559 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
560 mfssobject *self;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
561 object *args;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
562 {
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
563 OSErr err;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
564 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
565
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
566 if (!newgetargs(args, ""))
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
567 return NULL;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
568 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
569 if ( err ) {
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
570 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
571 return NULL;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
572 }
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
573 return mkvalue("ddd", (double)crdat, (double)mddat, (double)bkdat);
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
574 }
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
575
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
576 static object *
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
577 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
578 mfssobject *self;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
579 object *args;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
580 {
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
581 OSErr err;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
582 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
583
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
584 if (!newgetargs(args, "ddd", &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
585 return NULL;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
586 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
587 (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
588 if ( err ) {
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
589 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
590 return NULL;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
591 }
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
592 INCREF(None);
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
593 return None;
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
594 }
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
595
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
596 static struct methodlist mfss_methods[] = {
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
597 {"as_pathname", (method)mfss_as_pathname, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
598 {"as_tuple", (method)mfss_as_tuple, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
599 {"NewAlias", (method)mfss_NewAlias, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
600 {"NewAliasMinimal", (method)mfss_NewAliasMinimal, 1},
2275
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
601 {"GetCreatorType", (method)mfss_GetCreatorType, 1},
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
602 {"SetCreatorType", (method)mfss_SetCreatorType, 1},
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
603 {"GetFInfo", (method)mfss_GetFInfo, 1},
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
604 {"SetFInfo", (method)mfss_SetFInfo, 1},
4308
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
605 {"GetDates", (method)mfss_GetDates, 1},
1a0f34c18163 Added [GS]etDates methods to get and set creation, modification and
Jack Jansen <jack.jansen@cwi.nl>
parents: 3787
diff changeset
606 {"SetDates", (method)mfss_SetDates, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
607
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
608 {NULL, NULL} /* sentinel */
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 /* ---------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
612
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
613 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
614 mfss_getattr(self, name)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
615 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
616 char *name;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
617 {
2319
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
618 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
619 return PyString_FromStringAndSize((char *)&self->fsspec, sizeof(FSSpec));
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
620 return findmethod(mfss_methods, (object *)self, name);
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
623 mfssobject *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
624 newmfssobject(fss)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
625 FSSpec *fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
626 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
627 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
628
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
629 self = NEWOBJ(mfssobject, &Mfsstype);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
630 if (self == NULL)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
631 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
632 self->fsspec = *fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
633 return self;
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
636 static void
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
637 mfss_dealloc(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
638 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
639 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
640 DEL(self);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
641 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
642
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
643 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
644 mfss_repr(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
645 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
646 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
647 char buf[512];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
648
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
649 sprintf(buf, "FSSpec((%d, %d, '%.*s'))",
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
650 self->fsspec.vRefNum,
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
651 self->fsspec.parID,
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
652 self->fsspec.name[0], self->fsspec.name+1);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
653 return newstringobject(buf);
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
656 static int
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
657 mfss_compare(v, w)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
658 mfssobject *v, *w;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
659 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
660 int minlen;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
661 int res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
662
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.vRefNum > w->fsspec.vRefNum ) 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 if ( v->fsspec.parID > w->fsspec.parID ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
667 minlen = v->fsspec.name[0];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
668 if ( w->fsspec.name[0] < minlen ) minlen = w->fsspec.name[0];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
669 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
670 if ( res ) return res;
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 if ( v->fsspec.name[0] > w->fsspec.name[0] ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
673 return res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
674 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
675
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
676 statichere typeobject Mfsstype = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
677 OB_HEAD_INIT(&Typetype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
678 0, /*ob_size*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
679 "FSSpec", /*tp_name*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
680 sizeof(mfssobject), /*tp_basicsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
681 0, /*tp_itemsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
682 /* methods */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
683 (destructor)mfss_dealloc, /*tp_dealloc*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
684 (printfunc)0, /*tp_print*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
685 (getattrfunc)mfss_getattr, /*tp_getattr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
686 (setattrfunc)0, /*tp_setattr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
687 (cmpfunc)mfss_compare, /*tp_compare*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
688 (reprfunc)mfss_repr, /*tp_repr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
689 0, /*tp_as_number*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
690 0, /*tp_as_sequence*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
691 0, /*tp_as_mapping*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
692 (hashfunc)0, /*tp_hash*/
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
695 /* End of code for FSSpec objects */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
696 /* -------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
697
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
698 static object *
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
699 mfs_ResolveAliasFile(self, args)
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
700 object *self; /* Not used */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
701 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
702 {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
703 FSSpec fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
704 Boolean chain = 1, isfolder, wasaliased;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
705 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
706
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
707 if (!newgetargs(args, "O&|i", PyMac_GetFSSpec, &fss, &chain))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
708 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
709 err = ResolveAliasFile(&fss, chain, &isfolder, &wasaliased);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
710 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
711 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
712 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
713 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
714 return mkvalue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
715 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
716
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
717 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
718 mfs_StandardGetFile(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
719 object *self; /* Not used */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
720 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
721 {
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
722 SFTypeList list;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
723 short numtypes;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
724 StandardFileReply reply;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
725
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
726 list[0] = list[1] = list[2] = list[3] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
727 numtypes = 0;
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
728 if (!newgetargs(args, "|O&O&O&O&", PyMac_GetOSType, &list[0],
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
729 PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2],
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
730 PyMac_GetOSType, &list[3]) )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
731 return NULL;
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
732 while ( numtypes < 4 && list[numtypes] ) {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
733 numtypes++;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
734 }
2717
6c864ad519a3 StandardGetFile without args now shows all files (in stead of none)
Jack Jansen <jack.jansen@cwi.nl>
parents: 2408
diff changeset
735 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
736 numtypes = -1;
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
737 StandardGetFile((FileFilterUPP)0, numtypes, list, &reply);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
738 return mkvalue("(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
739 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
740
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
741 static object *
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
742 mfs_PromptGetFile(self, args)
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
743 object *self; /* Not used */
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
744 object *args;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
745 {
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
746 SFTypeList list;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
747 short numtypes;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
748 StandardFileReply reply;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
749 char *prompt = NULL;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
750
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
751 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
752 numtypes = 0;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
753 if (!newgetargs(args, "s|O&O&O&O&", &prompt, PyMac_GetOSType, &list[0],
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
754 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
755 PyMac_GetOSType, &list[3]) )
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
756 return NULL;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
757 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
758 numtypes++;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
759 }
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
760 if ( numtypes == 0 )
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
761 numtypes = -1;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
762 PyMac_PromptGetFile(numtypes, list, &reply, prompt);
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
763 return mkvalue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood);
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
764 }
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
765
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
766 static object *
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
767 mfs_StandardPutFile(self, args)
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
768 object *self; /* Not used */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
769 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
770 {
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
771 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
772 StandardFileReply reply;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
773
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
774 dft[0] = 0;
2209
4053d4cb50e0 renamed Get routines to PyMac_Get; added macfs to config.c
Guido van Rossum <guido@python.org>
parents: 2186
diff changeset
775 if (!newgetargs(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
776 return NULL;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
777 StandardPutFile(prompt, dft, &reply);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
778 return mkvalue("(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
779 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
780
3787
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
781 /*
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
782 ** Set initial directory for file dialogs */
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
783 static object *
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
784 mfs_SetFolder(self, args)
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
785 object *self;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
786 object *args;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
787 {
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
788 FSSpec spec;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
789 FSSpec ospec;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
790 short orefnum;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
791 long oparid;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
792
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
793 /* Get old values */
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
794 orefnum = -LMGetSFSaveDisk();
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
795 oparid = LMGetCurDirStore();
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
796 (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
797
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
798 /* 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
799 (void)FSMakeFSSpec(0, 0, "\p:placeholder", &spec);
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
800 if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &spec))
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
801 return NULL;
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
802 /* 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
803 LMSetSFSaveDisk(-spec.vRefNum);
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
804 LMSetCurDirStore(spec.parID);
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
805 return (object *)newmfssobject(&ospec);
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
806 }
7766360b85b8 Added SetFolder method which sets Standard File initial folder
Jack Jansen <jack.jansen@cwi.nl>
parents: 3140
diff changeset
807
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
808 static object *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
809 mfs_FSSpec(self, args)
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
810 object *self; /* Not used */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
811 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
812 {
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
813 FSSpec fss;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
814
2209
4053d4cb50e0 renamed Get routines to PyMac_Get; added macfs to config.c
Guido van Rossum <guido@python.org>
parents: 2186
diff changeset
815 if (!newgetargs(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
816 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
817 return (object *)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
818 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
819
2319
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
820 static object *
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
821 mfs_RawFSSpec(self, args)
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
822 object *self; /* Not used */
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
823 object *args;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
824 {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
825 FSSpec *fssp;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
826 int size;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
827
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
828 if (!newgetargs(args, "s#", &fssp, &size))
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
829 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
830 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
831 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
832 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
833 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
834 return (object *)newmfssobject(fssp);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
835 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
836
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
837 static object *
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
838 mfs_RawAlias(self, args)
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
839 object *self; /* Not used */
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
840 object *args;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
841 {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
842 char *dataptr;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
843 Handle h;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
844 int size;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
845
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
846 if (!newgetargs(args, "s#", &dataptr, &size))
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
847 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
848 h = NewHandle(size);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
849 if ( h == NULL ) {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
850 PyErr_NoMemory();
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
851 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
852 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
853 HLock(h);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
854 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
855 HUnlock(h);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
856 return (object *)newmfsaobject((AliasHandle)h);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
857 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
858
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
859 static object *
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
860 mfs_GetDirectory(self, args)
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
861 object *self; /* Not used */
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
862 object *args;
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
863 {
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
864 FSSpec fsdir;
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
865 int ok;
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
866 char *prompt = NULL;
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
867
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
868 if (!newgetargs(args, "|s", &prompt) )
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
869 return NULL;
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
870
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
871 ok = PyMac_GetDirectory(&fsdir, prompt);
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
872 return mkvalue("(Oi)", newmfssobject(&fsdir), ok);
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
873 }
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
874
2748
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
875 static object *
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
876 mfs_FindFolder(self, args)
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
877 object *self; /* Not used */
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
878 object *args;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
879 {
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
880 OSErr err;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
881 short where;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
882 OSType which;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
883 int create;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
884 short refnum;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
885 long dirid;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
886
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
887 if (!newgetargs(args, "hO&i", &where, PyMac_GetOSType, &which, &create) )
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
888 return NULL;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
889 err = FindFolder(where, which, (Boolean)create, &refnum, &dirid);
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
890 if ( err ) {
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
891 PyErr_Mac(ErrorObject, err);
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
892 return NULL;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
893 }
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
894 return mkvalue("(ii)", refnum, dirid);
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
895 }
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
896
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
897 static object *
4319
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
898 mfs_FindApplication(self, args)
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
899 object *self; /* Not used */
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
900 object *args;
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
901 {
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
902 OSErr err;
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
903 OSType which;
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
904 FSSpec fss;
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
905
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
906 if (!newgetargs(args, "O&", PyMac_GetOSType, &which) )
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
907 return NULL;
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
908 err = FindApplicationFromCreator(which, &fss);
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
909 if ( err ) {
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
910 PyErr_Mac(ErrorObject, err);
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
911 return NULL;
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
912 }
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
913 return (object *)newmfssobject(&fss);
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
914 }
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
915
97133996e22f Added macfs.FindApplication() to find application FSSpec given signature.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4308
diff changeset
916 static object *
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
917 mfs_FInfo(self, args)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
918 object *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
919 object *args;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
920 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
921 return (object *)newmfsiobject();
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
922 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
923
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
924 /* 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
925
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
926 static struct methodlist mfs_methods[] = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
927 {"ResolveAliasFile", mfs_ResolveAliasFile, 1},
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
928 {"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
929 {"PromptGetFile", mfs_PromptGetFile, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
930 {"StandardPutFile", mfs_StandardPutFile, 1},
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
931 {"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
932 {"SetFolder", mfs_SetFolder, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
933 {"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
934 {"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
935 {"RawAlias", mfs_RawAlias, 1},
2748
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
936 {"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
937 {"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
938 {"FInfo", mfs_FInfo, 1},
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
939
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
940 {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
941 };
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
942
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
943
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
944 /* 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
945
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
946 void
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
947 initmacfs()
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
948 {
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
949 object *m, *d;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
950
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
951 /* Create the module and add the functions */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
952 m = initmodule("macfs", mfs_methods);
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
953
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
954 /* Add some symbolic constants to the module */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
955 d = getmoduledict(m);
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
956 ErrorObject = newstringobject("macfs.error");
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
957 dictinsert(d, "error", ErrorObject);
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
958
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
959 /* 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
960
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
961 /* Check for errors */
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
962 if (err_occurred())
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
963 fatal("can't initialize module macfs");
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
964 }