annotate Mac/Modules/macfsmodule.c @ 3720:b341def4eef8 legacy-trunk

Ignore latex intermediate products.
author Guido van Rossum <guido@python.org>
date Wed, 26 Jun 1996 19:30:01 +0000
parents cd388cc9ba98
children 7766360b85b8
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>
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
34
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
35 #include "nfullpath.h"
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
36
2186
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
37 #ifdef THINK_C
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
38 #define FileFilterUPP FileFilterProcPtr
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
39 #endif
95cb52b85f78 ported to THINK C (not tested yet)
Guido van Rossum <guido@python.org>
parents: 2180
diff changeset
40
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
41 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
42
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
43 /* ----------------------------------------------------- */
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
44 /* Declarations for objects of type Alias */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
45
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
46 typedef struct {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
47 OB_HEAD
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
48 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
49 } mfsaobject;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
50
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
51 staticforward typeobject Mfsatype;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
52
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
53 #define is_mfsaobject(v) ((v)->ob_type == &Mfsatype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
54
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
55 /* ---------------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
56 /* Declarations for objects of type FSSpec */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
57
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
58 typedef struct {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
59 OB_HEAD
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
60 FSSpec fsspec;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
61 } mfssobject;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
62
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
63 staticforward typeobject Mfsstype;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
64
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
65 #define is_mfssobject(v) ((v)->ob_type == &Mfsstype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
66
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
67
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
68 /* ---------------------------------------------------------------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
69 /* Declarations for objects of type FInfo */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
70
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
71 typedef struct {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
72 OB_HEAD
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
73 FInfo finfo;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
74 } mfsiobject;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
75
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
76 staticforward typeobject Mfsitype;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
77
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
78 #define is_mfsiobject(v) ((v)->ob_type == &Mfsitype)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
79
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
80
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
81 mfssobject *newmfssobject(FSSpec *fss); /* Forward */
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
82
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
83 /* ---------------------------------------------------------------- */
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
84
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
85 static object *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
86 mfsa_Resolve(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
87 mfsaobject *self;
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
88 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
89 {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
90 FSSpec from, *fromp, result;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
91 Boolean changed;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
92 OSErr err;
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
93
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
94 from.name[0] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
95 if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &from))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
96 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
97 if (from.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
98 fromp = &from;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
99 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
100 fromp = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
101 err = ResolveAlias(fromp, self->alias, &result, &changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
102 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
103 PyErr_Mac(ErrorObject, err);
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
104 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
105 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
106 return mkvalue("(Oi)", newmfssobject(&result), (int)changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
107 }
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
108
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
109 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
110 mfsa_GetInfo(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
111 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
112 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
113 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
114 Str63 value;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
115 int i;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
116 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
117
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
118 if (!newgetargs(args, "i", &i))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
119 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
120 err = GetAliasInfo(self->alias, (AliasInfoType)i, value);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
121 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
122 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
123 return 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
124 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
125 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
126 }
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 static object *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
129 mfsa_Update(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
130 mfsaobject *self;
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
131 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
132 {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
133 FSSpec target, fromfile, *fromfilep;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
134 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
135 Boolean changed;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
136
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
137 fromfile.name[0] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
138 if (!newgetargs(args, "O&|O&", PyMac_GetFSSpec, &target,
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
139 PyMac_GetFSSpec, &fromfile))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
140 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
141 if ( fromfile.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
142 fromfilep = &fromfile;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
143 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
144 fromfilep = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
145 err = UpdateAlias(fromfilep, &target, self->alias, &changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
146 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
147 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
148 return 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
149 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
150 return mkvalue("i", (int)changed);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
151 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
152
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
153 static struct methodlist mfsa_methods[] = {
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
154 {"Resolve", (method)mfsa_Resolve, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
155 {"GetInfo", (method)mfsa_GetInfo, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
156 {"Update", (method)mfsa_Update, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
157
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
158 {NULL, NULL} /* sentinel */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
159 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
160
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
161 /* ---------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
162
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
163 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
164 mfsa_getattr(self, name)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
165 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
166 char *name;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
167 {
2319
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
168 if ( strcmp(name, "data") == 0 ) {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
169 int size;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
170 PyObject *rv;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
171
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
172 size = GetHandleSize((Handle)self->alias);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
173 HLock((Handle)self->alias);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
174 rv = PyString_FromStringAndSize(*(Handle)self->alias, size);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
175 HUnlock((Handle)self->alias);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
176 return rv;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
177 }
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
178 return findmethod(mfsa_methods, (object *)self, name);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
179 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
180
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
181 mfsaobject *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
182 newmfsaobject(alias)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
183 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
184 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
185 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
186
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
187 self = NEWOBJ(mfsaobject, &Mfsatype);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
188 if (self == NULL)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
189 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
190 self->alias = alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
191 return self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
192 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
193
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
194
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
195 static void
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
196 mfsa_dealloc(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
197 mfsaobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
198 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
199 #if 0
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
200 if ( self->alias ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
201 should we do something here?
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
202 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
203 #endif
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
204
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
205 DEL(self);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
206 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
207
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
208 statichere typeobject Mfsatype = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
209 OB_HEAD_INIT(&Typetype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
210 0, /*ob_size*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
211 "Alias", /*tp_name*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
212 sizeof(mfsaobject), /*tp_basicsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
213 0, /*tp_itemsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
214 /* methods */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
215 (destructor)mfsa_dealloc, /*tp_dealloc*/
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
216 (printfunc)0, /*tp_print*/
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
217 (getattrfunc)mfsa_getattr, /*tp_getattr*/
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
218 (setattrfunc)0, /*tp_setattr*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
219 (cmpfunc)0, /*tp_compare*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
220 (reprfunc)0, /*tp_repr*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
221 0, /*tp_as_number*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
222 0, /*tp_as_sequence*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
223 0, /*tp_as_mapping*/
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
224 (hashfunc)0, /*tp_hash*/
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
225 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
226
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
227 /* End of code for Alias objects */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
228 /* -------------------------------------------------------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
229
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
230 /* ---------------------------------------------------------------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
231
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
232 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
233
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
234 {NULL, NULL} /* sentinel */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
235 };
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
236
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
237 /* ---------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
238
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
239 static mfsiobject *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
240 newmfsiobject()
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
241 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
242 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
243
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
244 self = NEWOBJ(mfsiobject, &Mfsitype);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
245 if (self == NULL)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
246 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
247 memset((char *)&self->finfo, '\0', sizeof(self->finfo));
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
248 return self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
249 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
250
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
251 static void
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
252 mfsi_dealloc(self)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
253 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
254 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
255 DEL(self);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
256 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
257
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
258 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
259 mfsi_getattr(self, name)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
260 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
261 char *name;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
262 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
263 if ( strcmp(name, "Type") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
264 return PyMac_BuildOSType(self->finfo.fdType);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
265 else if ( strcmp(name, "Creator") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
266 return PyMac_BuildOSType(self->finfo.fdCreator);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
267 else if ( strcmp(name, "Flags") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
268 return Py_BuildValue("i", (int)self->finfo.fdFlags);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
269 else if ( strcmp(name, "Location") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
270 return PyMac_BuildPoint(self->finfo.fdLocation);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
271 else if ( strcmp(name, "Fldr") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
272 return Py_BuildValue("i", (int)self->finfo.fdFldr);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
273 else
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
274 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
275 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
276
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
277
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
278 static int
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
279 mfsi_setattr(self, name, v)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
280 mfsiobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
281 char *name;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
282 object *v;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
283 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
284 int rv;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
285 int i;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
286
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
287 if ( v == NULL ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
288 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
289 return -1;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
290 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
291 if ( strcmp(name, "Type") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
292 rv = PyMac_GetOSType(v, &self->finfo.fdType);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
293 else if ( strcmp(name, "Creator") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
294 rv = PyMac_GetOSType(v, &self->finfo.fdCreator);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
295 else if ( strcmp(name, "Flags") == 0 ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
296 rv = PyArg_Parse(v, "i", &i);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
297 self->finfo.fdFlags = (short)i;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
298 } else if ( strcmp(name, "Location") == 0 )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
299 rv = PyMac_GetPoint(v, &self->finfo.fdLocation);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
300 else if ( strcmp(name, "Fldr") == 0 ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
301 rv = PyArg_Parse(v, "i", &i);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
302 self->finfo.fdFldr = (short)i;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
303 } else {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
304 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
305 return -1;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
306 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
307 if (rv)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
308 return 0;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
309 return -1;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
310 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
311
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
312
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
313 static typeobject Mfsitype = {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
314 OB_HEAD_INIT(&Typetype)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
315 0, /*ob_size*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
316 "FInfo object", /*tp_name*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
317 sizeof(mfsiobject), /*tp_basicsize*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
318 0, /*tp_itemsize*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
319 /* methods */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
320 (destructor)mfsi_dealloc, /*tp_dealloc*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
321 (printfunc)0, /*tp_print*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
322 (getattrfunc)mfsi_getattr, /*tp_getattr*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
323 (setattrfunc)mfsi_setattr, /*tp_setattr*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
324 (cmpfunc)0, /*tp_compare*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
325 (reprfunc)0, /*tp_repr*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
326 0, /*tp_as_number*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
327 0, /*tp_as_sequence*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
328 0, /*tp_as_mapping*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
329 (hashfunc)0, /*tp_hash*/
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
330 };
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
331
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
332 /* End of code for FInfo object objects */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
333 /* -------------------------------------------------------- */
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
334
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
335
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
336 /*
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
337 ** Helper routine for other modules: return an FSSpec * if the
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
338 ** object is a python fsspec object, else NULL
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
339 */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
340 FSSpec *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
341 mfs_GetFSSpecFSSpec(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
342 object *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
343 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
344 if ( is_mfssobject(self) )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
345 return &((mfssobject *)self)->fsspec;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
346 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
347 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
348
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
349 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
350 mfss_as_pathname(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
351 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
352 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
353 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
354 char strbuf[257];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
355 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
356
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
357 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
358 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
359 err = nfullpath(&self->fsspec, strbuf);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
360 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
361 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
362 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
363 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
364 return newstringobject(strbuf);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
365 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
366
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
367 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
368 mfss_as_tuple(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
369 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
370 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
371 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
372 if (!newgetargs(args, ""))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
373 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
374 return Py_BuildValue("(iis#)", self->fsspec.vRefNum, self->fsspec.parID,
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
375 &self->fsspec.name[1], self->fsspec.name[0]);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
376 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
377
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
378 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
379 mfss_NewAlias(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
380 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
381 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
382 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
383 FSSpec src, *srcp;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
384 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
385 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
386
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
387 src.name[0] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
388 if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &src))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
389 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
390 if ( src.name[0] )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
391 srcp = &src;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
392 else
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
393 srcp = NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
394 err = NewAlias(srcp, &self->fsspec, &alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
395 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
396 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
397 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
398 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
399
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
400 return (object *)newmfsaobject(alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
401 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
402
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
403 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
404 mfss_NewAliasMinimal(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
405 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
406 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
407 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
408 OSErr err;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
409 AliasHandle alias;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
410
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
411 if (!newgetargs(args, ""))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
412 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
413 err = NewAliasMinimal(&self->fsspec, &alias);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
414 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
415 PyErr_Mac(ErrorObject, err);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
416 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
417 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
418 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
419 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
420
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
421 /* 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
422 static object *
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
423 mfss_GetCreatorType(self, args)
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
424 mfssobject *self;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
425 object *args;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
426 {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
427 OSErr err;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
428 FInfo info;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
429
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
430 if (!newgetargs(args, ""))
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
431 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
432 err = FSpGetFInfo(&self->fsspec, &info);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
433 if ( err ) {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
434 PyErr_Mac(ErrorObject, err);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
435 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
436 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
437 return Py_BuildValue("(O&O&)",
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
438 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
439 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
440
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
441 static object *
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
442 mfss_SetCreatorType(self, args)
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
443 mfssobject *self;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
444 object *args;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
445 {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
446 OSErr err;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
447 OSType creator, type;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
448 FInfo info;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
449
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
450 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
451 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
452 err = FSpGetFInfo(&self->fsspec, &info);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
453 if ( err ) {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
454 PyErr_Mac(ErrorObject, err);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
455 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
456 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
457 info.fdType = type;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
458 info.fdCreator = creator;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
459 err = FSpSetFInfo(&self->fsspec, &info);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
460 if ( err ) {
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
461 PyErr_Mac(ErrorObject, err);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
462 return NULL;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
463 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
464 INCREF(None);
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
465 return None;
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
466 }
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
467
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
468 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
469 mfss_GetFInfo(self, args)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
470 mfssobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
471 object *args;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
472 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
473 OSErr err;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
474 mfsiobject *fip;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
475
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
476
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
477 if (!newgetargs(args, ""))
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
478 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
479 if ( (fip=newmfsiobject()) == NULL )
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
480 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
481 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
482 if ( err ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
483 PyErr_Mac(ErrorObject, err);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
484 DECREF(fip);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
485 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
486 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
487 return (object *)fip;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
488 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
489
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
490 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
491 mfss_SetFInfo(self, args)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
492 mfssobject *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
493 object *args;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
494 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
495 OSErr err;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
496 mfsiobject *fip;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
497
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
498 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
499 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
500 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
501 if ( err ) {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
502 PyErr_Mac(ErrorObject, err);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
503 return NULL;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
504 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
505 INCREF(None);
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
506 return None;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
507 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
508
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
509 static struct methodlist mfss_methods[] = {
2254
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
510 {"as_pathname", (method)mfss_as_pathname, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
511 {"as_tuple", (method)mfss_as_tuple, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
512 {"NewAlias", (method)mfss_NewAlias, 1},
67e8ef698a42 added (method) casts and 1995 copyright
Guido van Rossum <guido@python.org>
parents: 2249
diff changeset
513 {"NewAliasMinimal", (method)mfss_NewAliasMinimal, 1},
2275
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
514 {"GetCreatorType", (method)mfss_GetCreatorType, 1},
e5b9f644053e Added [GS]etCreatorType methods to FSSpec objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2264
diff changeset
515 {"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
516 {"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
517 {"SetFInfo", (method)mfss_SetFInfo, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
518
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
519 {NULL, NULL} /* sentinel */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
520 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
521
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
522 /* ---------- */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
523
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
524 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
525 mfss_getattr(self, name)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
526 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
527 char *name;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
528 {
2319
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
529 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
530 return PyString_FromStringAndSize((char *)&self->fsspec, sizeof(FSSpec));
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
531 return findmethod(mfss_methods, (object *)self, name);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
532 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
533
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
534 mfssobject *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
535 newmfssobject(fss)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
536 FSSpec *fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
537 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
538 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
539
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
540 self = NEWOBJ(mfssobject, &Mfsstype);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
541 if (self == NULL)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
542 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
543 self->fsspec = *fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
544 return self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
545 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
546
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
547 static void
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
548 mfss_dealloc(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
549 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
550 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
551 DEL(self);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
552 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
553
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
554 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
555 mfss_repr(self)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
556 mfssobject *self;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
557 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
558 char buf[512];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
559
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
560 sprintf(buf, "FSSpec((%d, %d, '%.*s'))",
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
561 self->fsspec.vRefNum,
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
562 self->fsspec.parID,
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
563 self->fsspec.name[0], self->fsspec.name+1);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
564 return newstringobject(buf);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
565 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
566
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
567 static int
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
568 mfss_compare(v, w)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
569 mfssobject *v, *w;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
570 {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
571 int minlen;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
572 int res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
573
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
574 if ( v->fsspec.vRefNum < w->fsspec.vRefNum ) return -1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
575 if ( v->fsspec.vRefNum > w->fsspec.vRefNum ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
576 if ( v->fsspec.parID < w->fsspec.parID ) return -1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
577 if ( v->fsspec.parID > w->fsspec.parID ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
578 minlen = v->fsspec.name[0];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
579 if ( w->fsspec.name[0] < minlen ) minlen = w->fsspec.name[0];
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
580 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
581 if ( res ) return res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
582 if ( v->fsspec.name[0] < w->fsspec.name[0] ) return -1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
583 if ( v->fsspec.name[0] > w->fsspec.name[0] ) return 1;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
584 return res;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
585 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
586
2408
77eb63716b4f replace %#s with portable solution
Guido van Rossum <guido@python.org>
parents: 2400
diff changeset
587 statichere typeobject Mfsstype = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
588 OB_HEAD_INIT(&Typetype)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
589 0, /*ob_size*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
590 "FSSpec", /*tp_name*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
591 sizeof(mfssobject), /*tp_basicsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
592 0, /*tp_itemsize*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
593 /* methods */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
594 (destructor)mfss_dealloc, /*tp_dealloc*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
595 (printfunc)0, /*tp_print*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
596 (getattrfunc)mfss_getattr, /*tp_getattr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
597 (setattrfunc)0, /*tp_setattr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
598 (cmpfunc)mfss_compare, /*tp_compare*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
599 (reprfunc)mfss_repr, /*tp_repr*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
600 0, /*tp_as_number*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
601 0, /*tp_as_sequence*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
602 0, /*tp_as_mapping*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
603 (hashfunc)0, /*tp_hash*/
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
604 };
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
605
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
606 /* End of code for FSSpec objects */
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
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
609 static object *
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
610 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
611 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
612 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
613 {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
614 FSSpec fss;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
615 Boolean chain = 1, isfolder, wasaliased;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
616 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
617
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
618 if (!newgetargs(args, "O&|i", PyMac_GetFSSpec, &fss, &chain))
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
619 return NULL;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
620 err = ResolveAliasFile(&fss, chain, &isfolder, &wasaliased);
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
621 if ( err ) {
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
622 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
623 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
624 }
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
625 return mkvalue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased);
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
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
628 static object *
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
629 mfs_StandardGetFile(self, args)
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
630 object *self; /* Not used */
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
631 object *args;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
632 {
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
633 SFTypeList list;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
634 short numtypes;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
635 StandardFileReply reply;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
636
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
637 list[0] = list[1] = list[2] = list[3] = 0;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
638 numtypes = 0;
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
639 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
640 PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2],
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
641 PyMac_GetOSType, &list[3]) )
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
642 return NULL;
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
643 while ( numtypes < 4 && list[numtypes] ) {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
644 numtypes++;
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
645 }
2717
6c864ad519a3 StandardGetFile without args now shows all files (in stead of none)
Jack Jansen <jack.jansen@cwi.nl>
parents: 2408
diff changeset
646 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
647 numtypes = -1;
2264
85aa2e4d0123 fixed StandardGetFile argument handling
Guido van Rossum <guido@python.org>
parents: 2254
diff changeset
648 StandardGetFile((FileFilterUPP)0, numtypes, list, &reply);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
649 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
650 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
651
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
652 static object *
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
653 mfs_PromptGetFile(self, args)
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
654 object *self; /* Not used */
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
655 object *args;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
656 {
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
657 SFTypeList list;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
658 short numtypes;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
659 StandardFileReply reply;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
660 char *prompt = NULL;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
661
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
662 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
663 numtypes = 0;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
664 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
665 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
666 PyMac_GetOSType, &list[3]) )
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
667 return NULL;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
668 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
669 numtypes++;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
670 }
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
671 if ( numtypes == 0 )
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
672 numtypes = -1;
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
673 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
674 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
675 }
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
676
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
677 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
678 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
679 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
680 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
681 {
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
682 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
683 StandardFileReply reply;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
684
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
685 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
686 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
687 return NULL;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
688 StandardPutFile(prompt, dft, &reply);
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
689 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
690 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
691
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
692 static object *
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
693 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
694 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
695 object *args;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
696 {
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
697 FSSpec fss;
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
698
2209
4053d4cb50e0 renamed Get routines to PyMac_Get; added macfs to config.c
Guido van Rossum <guido@python.org>
parents: 2186
diff changeset
699 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
700 return NULL;
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
701 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
702 }
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
703
2319
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
704 static object *
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
705 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
706 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
707 object *args;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
708 {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
709 FSSpec *fssp;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
710 int size;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
711
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
712 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
713 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
714 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
715 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
716 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
717 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
718 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
719 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
720
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
721 static object *
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
722 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
723 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
724 object *args;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
725 {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
726 char *dataptr;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
727 Handle h;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
728 int size;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
729
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
730 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
731 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
732 h = NewHandle(size);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
733 if ( h == NULL ) {
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
734 PyErr_NoMemory();
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
735 return NULL;
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
736 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
737 HLock(h);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
738 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
739 HUnlock(h);
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
740 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
741 }
1e7207128167 Added RawFSSpec and RawAlias methods which turn their string arguments
Jack Jansen <jack.jansen@cwi.nl>
parents: 2275
diff changeset
742
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
743 static object *
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
744 mfs_GetDirectory(self, args)
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
745 object *self; /* Not used */
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
746 object *args;
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
747 {
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
748 FSSpec fsdir;
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
749 int ok;
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
750 char *prompt = NULL;
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
751
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
752 if (!newgetargs(args, "|s", &prompt) )
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
753 return NULL;
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
754
2981
56ad247cbfcb Added new call PromptGetFile (like StandardGetFile, but accepts a
Jack Jansen <jack.jansen@cwi.nl>
parents: 2909
diff changeset
755 ok = PyMac_GetDirectory(&fsdir, prompt);
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
756 return mkvalue("(Oi)", newmfssobject(&fsdir), ok);
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
757 }
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
758
2748
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
759 static object *
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
760 mfs_FindFolder(self, args)
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
761 object *self; /* Not used */
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
762 object *args;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
763 {
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
764 OSErr err;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
765 short where;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
766 OSType which;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
767 int create;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
768 short refnum;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
769 long dirid;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
770
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
771 if (!newgetargs(args, "hO&i", &where, PyMac_GetOSType, &which, &create) )
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
772 return NULL;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
773 err = FindFolder(where, which, (Boolean)create, &refnum, &dirid);
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
774 if ( err ) {
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
775 PyErr_Mac(ErrorObject, err);
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
776 return NULL;
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
777 }
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
778 return mkvalue("(ii)", refnum, dirid);
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
779 }
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
780
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
781 static object *
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
782 mfs_FInfo(self, args)
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
783 object *self;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
784 object *args;
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
785 {
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
786 return (object *)newmfsiobject();
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
787 }
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
788
2180
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
789 /* 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
790
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
791 static struct methodlist mfs_methods[] = {
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
792 {"ResolveAliasFile", mfs_ResolveAliasFile, 1},
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
793 {"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
794 {"PromptGetFile", mfs_PromptGetFile, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
795 {"StandardPutFile", mfs_StandardPutFile, 1},
2400
d31f694c11a8 Added GetDirectory() method
Jack Jansen <jack.jansen@cwi.nl>
parents: 2337
diff changeset
796 {"GetDirectory", mfs_GetDirectory, 1},
2249
a76a79f896cf Complete rewrite.
Jack Jansen <jack.jansen@cwi.nl>
parents: 2209
diff changeset
797 {"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
798 {"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
799 {"RawAlias", mfs_RawAlias, 1},
2748
39cd25678b41 Added FindFolder interface
Jack Jansen <jack.jansen@cwi.nl>
parents: 2717
diff changeset
800 {"FindFolder", mfs_FindFolder, 1},
2909
f9b1069a3e26 Added interfaces to {Get,Set}FInfo and accompanying objects
Jack Jansen <jack.jansen@cwi.nl>
parents: 2748
diff changeset
801 {"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
802
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
803 {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
804 };
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
805
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
806
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
807 /* 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
808
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
809 void
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
810 initmacfs()
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
811 {
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
812 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
813
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
814 /* 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
815 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
816
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
817 /* 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
818 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
819 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
820 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
821
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
822 /* 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
823
9b451c84a7bf Initial version of FSSpec and Alias code. Non-functional as of now.
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
824 /* 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
825 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
826 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
827 }