annotate Mac/Modules/macmodule.c @ 1590:ac2e5cc29949 legacy-trunk

Added tests for missing host to open_http and open_gopher
author Guido van Rossum <guido@python.org>
date Mon, 18 Apr 1994 09:39:56 +0000
parents 09420e2e9388
children 8454579ab52f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1495
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 /***********************************************************
1522
09420e2e9388 Fix copyright -- 1994 instead of 1004!
Guido van Rossum <guido@python.org>
parents: 1495
diff changeset
2 Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
1495
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 Amsterdam, The Netherlands.
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
4
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 All Rights Reserved
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
6
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
7 Permission to use, copy, modify, and distribute this software and its
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 documentation for any purpose and without fee is hereby granted,
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 provided that the above copyright notice appear in all copies and that
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 both that copyright notice and this permission notice appear in
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 supporting documentation, and that the names of Stichting Mathematisch
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 Centrum or CWI not be used in advertising or publicity pertaining to
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 distribution of the software without specific, written prior permission.
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
14
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
22
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 ******************************************************************/
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
24
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 /* Macintosh OS module implementation */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 #include "allobjects.h"
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 #include "import.h"
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 #include "modsupport.h"
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
31
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 #include "::unixemu:dir.h"
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 #include "::unixemu:stat.h"
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
34
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 static object *MacError; /* Exception */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
37
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 mac_chdir(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 char *path;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 if (!getstrarg(args, &path))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 if (chdir(path) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 INCREF(None);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 return None;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 mac_getcwd(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
58 extern char *getwd();
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 char buf[1025];
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 if (!getnoarg(args))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 strcpy(buf, "mac.getcwd() failed"); /* In case getwd() doesn't set a msg */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 if (getwd(buf) == NULL) {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 err_setstr(MacError, buf);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 return newstringobject(buf);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
69
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
70
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
72 mac_listdir(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 object *d, *v;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 char *name;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 DIR *dirp;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 struct direct *ep;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 if (!getstrarg(args, &name))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
81 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 if ((dirp = opendir(name)) == NULL)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
83 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
84 if ((d = newlistobject(0)) == NULL) {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
85 closedir(dirp);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 while ((ep = readdir(dirp)) != NULL) {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 v = newstringobject(ep->d_name);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 if (v == NULL) {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
91 DECREF(d);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 d = NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
93 break;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
94 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 if (addlistitem(d, v) != 0) {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
96 DECREF(v);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
97 DECREF(d);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 d = NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
99 break;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
100 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 DECREF(v);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
102 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
103 closedir(dirp);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
104 return d;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
105 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
106
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
107
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 mac_mkdir(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
110 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
111 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
113 char *path;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 int mode;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
115 if (!getargs(args, "(si)", &path, &mode))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 if (mkdir(path, mode) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
118 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
119 INCREF(None);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 return None;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
122
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
123
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
125 mac_rename(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
127 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
129 char *src, *dst;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 if (!getargs(args, "(ss)", &src, &dst))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
131 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 if (rename(src, dst) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
134 INCREF(None);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
135 return None;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
136 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
137
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
138
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
139 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
140 mac_rmdir(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
142 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
143 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
144 char *path;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
145 if (!getstrarg(args, &path))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
146 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
147 if (rmdir(path) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
148 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
149 INCREF(None);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
150 return None;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
151 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
152
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
153
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
154 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
155 mac_stat(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
156 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
157 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
158 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
159 struct stat st;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
160 char *path;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
161 object *v;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
162 if (!getstrarg(args, &path))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
163 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
164 if (stat(path, &st) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
166 v = newtupleobject(11);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
167 if (v == NULL)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
168 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
169 #define SET(i, val) settupleitem(v, i, newintobject((long)(val)))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
170 #define UNSET(i, val) SET(i, 0) /* For values my Mac stat doesn't support */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 SET(0, st.st_mode);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
172 UNSET(1, st.st_ino);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
173 UNSET(2, st.st_dev);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
174 UNSET(3, st.st_nlink);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
175 UNSET(4, st.st_uid);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
176 UNSET(5, st.st_gid);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
177 SET(6, st.st_size);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
178 UNSET(7, st.st_atime);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
179 SET(8, st.st_mtime);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
180 UNSET(9, st.st_ctime);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
181 SET(10, st.st_rsize); /* Mac-specific: resource size */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
182 /* XXX Check that unixemu:stat.c defines this! */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
183 #undef SET
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
184 if (err_occurred()) {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
185 DECREF(v);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
186 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
187 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
188 return v;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
189 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
190
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
191
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
192 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
193 mac_sync(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
194 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
195 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
196 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
197 if (!getnoarg(args))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
198 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
199 sync();
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
200 INCREF(None);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
201 return None;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
202 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
203
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
204
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
205 static object *
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
206 mac_unlink(self, args)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
207 object *self;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
208 object *args;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
209 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
210 char *path;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
211 if (!getstrarg(args, &path))
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
212 return NULL;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
213 if (unlink(path) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
214 return err_errno(MacError);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
215 INCREF(None);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
216 return None;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
217 }
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
218
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
219
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
220 static struct methodlist mac_methods[] = {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
221 {"chdir", mac_chdir},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
222 {"getcwd", mac_getcwd},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
223 {"listdir", mac_listdir},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
224 {"mkdir", mac_mkdir},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
225 {"rename", mac_rename},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
226 {"rmdir", mac_rmdir},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
227 {"stat", mac_stat},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
228 {"sync", mac_sync},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
229 {"unlink", mac_unlink},
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
230 {NULL, NULL} /* Sentinel */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
231 };
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
232
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
233
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
234 void
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
235 initmac()
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
236 {
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
237 object *m, *d;
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
238
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
239 m = initmodule("mac", mac_methods);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
240 d = getmoduledict(m);
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
241
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
242 /* Initialize mac.error exception */
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
243 MacError = newstringobject("mac.error");
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
244 if (MacError == NULL || dictinsert(d, "error", MacError) != 0)
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
245 fatal("can't define mac.error");
877073b9f8c3 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
246 }