Changeset 391 for python/trunk/Mac/Modules/folder
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (12 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
Mac/Modules/folder/_Foldermodule.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Mac/Modules/folder/_Foldermodule.c
r2 r391 10 10 /* Macro to test whether a weak-loaded CFM function exists */ 11 11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\ 12 PyErr_SetString(PyExc_NotImplementedError, \13 "Not available in this shared library/OS version"); \14 return NULL; \12 PyErr_SetString(PyExc_NotImplementedError, \ 13 "Not available in this shared library/OS version"); \ 14 return NULL; \ 15 15 }} while(0) 16 16 … … 23 23 static PyObject *Folder_FindFolder(PyObject *_self, PyObject *_args) 24 24 { 25 PyObject *_res = NULL;26 OSErr _err;27 short vRefNum;28 OSType folderType;29 Boolean createFolder;30 FSVolumeRefNum foundVRefNum;31 SInt32 foundDirID;32 if (!PyArg_ParseTuple(_args, "hO&b",33 &vRefNum,34 PyMac_GetOSType, &folderType,35 &createFolder))36 return NULL;37 _err = FindFolder(vRefNum,38 folderType,39 createFolder,40 &foundVRefNum,41 &foundDirID);42 if (_err != noErr) return PyMac_Error(_err);43 _res = Py_BuildValue("hl",44 foundVRefNum,45 foundDirID);46 return _res;25 PyObject *_res = NULL; 26 OSErr _err; 27 short vRefNum; 28 OSType folderType; 29 Boolean createFolder; 30 FSVolumeRefNum foundVRefNum; 31 SInt32 foundDirID; 32 if (!PyArg_ParseTuple(_args, "hO&b", 33 &vRefNum, 34 PyMac_GetOSType, &folderType, 35 &createFolder)) 36 return NULL; 37 _err = FindFolder(vRefNum, 38 folderType, 39 createFolder, 40 &foundVRefNum, 41 &foundDirID); 42 if (_err != noErr) return PyMac_Error(_err); 43 _res = Py_BuildValue("hl", 44 foundVRefNum, 45 foundDirID); 46 return _res; 47 47 } 48 48 49 49 static PyObject *Folder_ReleaseFolder(PyObject *_self, PyObject *_args) 50 50 { 51 PyObject *_res = NULL;52 OSErr _err;53 short vRefNum;54 OSType folderType;55 if (!PyArg_ParseTuple(_args, "hO&",56 &vRefNum,57 PyMac_GetOSType, &folderType))58 return NULL;59 _err = ReleaseFolder(vRefNum,60 folderType);61 if (_err != noErr) return PyMac_Error(_err);62 Py_INCREF(Py_None);63 _res = Py_None;64 return _res;51 PyObject *_res = NULL; 52 OSErr _err; 53 short vRefNum; 54 OSType folderType; 55 if (!PyArg_ParseTuple(_args, "hO&", 56 &vRefNum, 57 PyMac_GetOSType, &folderType)) 58 return NULL; 59 _err = ReleaseFolder(vRefNum, 60 folderType); 61 if (_err != noErr) return PyMac_Error(_err); 62 Py_INCREF(Py_None); 63 _res = Py_None; 64 return _res; 65 65 } 66 66 67 67 static PyObject *Folder_FSFindFolder(PyObject *_self, PyObject *_args) 68 68 { 69 PyObject *_res = NULL;70 OSErr _err;71 short vRefNum;72 OSType folderType;73 Boolean createFolder;74 FSRef foundRef;75 if (!PyArg_ParseTuple(_args, "hO&b",76 &vRefNum,77 PyMac_GetOSType, &folderType,78 &createFolder))79 return NULL;80 _err = FSFindFolder(vRefNum,81 folderType,82 createFolder,83 &foundRef);84 if (_err != noErr) return PyMac_Error(_err);85 _res = Py_BuildValue("O&",86 PyMac_BuildFSRef, &foundRef);87 return _res;69 PyObject *_res = NULL; 70 OSErr _err; 71 short vRefNum; 72 OSType folderType; 73 Boolean createFolder; 74 FSRef foundRef; 75 if (!PyArg_ParseTuple(_args, "hO&b", 76 &vRefNum, 77 PyMac_GetOSType, &folderType, 78 &createFolder)) 79 return NULL; 80 _err = FSFindFolder(vRefNum, 81 folderType, 82 createFolder, 83 &foundRef); 84 if (_err != noErr) return PyMac_Error(_err); 85 _res = Py_BuildValue("O&", 86 PyMac_BuildFSRef, &foundRef); 87 return _res; 88 88 } 89 89 90 90 static PyObject *Folder_AddFolderDescriptor(PyObject *_self, PyObject *_args) 91 91 { 92 PyObject *_res = NULL;93 OSErr _err;94 FolderType foldType;95 FolderDescFlags flags;96 FolderClass foldClass;97 FolderLocation foldLocation;98 OSType badgeSignature;99 OSType badgeType;100 Str255 name;101 Boolean replaceFlag;102 if (!PyArg_ParseTuple(_args, "O&lO&O&O&O&O&b",103 PyMac_GetOSType, &foldType,104 &flags,105 PyMac_GetOSType, &foldClass,106 PyMac_GetOSType, &foldLocation,107 PyMac_GetOSType, &badgeSignature,108 PyMac_GetOSType, &badgeType,109 PyMac_GetStr255, name,110 &replaceFlag))111 return NULL;112 _err = AddFolderDescriptor(foldType,113 flags,114 foldClass,115 foldLocation,116 badgeSignature,117 badgeType,118 name,119 replaceFlag);120 if (_err != noErr) return PyMac_Error(_err);121 Py_INCREF(Py_None);122 _res = Py_None;123 return _res;92 PyObject *_res = NULL; 93 OSErr _err; 94 FolderType foldType; 95 FolderDescFlags flags; 96 FolderClass foldClass; 97 FolderLocation foldLocation; 98 OSType badgeSignature; 99 OSType badgeType; 100 Str255 name; 101 Boolean replaceFlag; 102 if (!PyArg_ParseTuple(_args, "O&lO&O&O&O&O&b", 103 PyMac_GetOSType, &foldType, 104 &flags, 105 PyMac_GetOSType, &foldClass, 106 PyMac_GetOSType, &foldLocation, 107 PyMac_GetOSType, &badgeSignature, 108 PyMac_GetOSType, &badgeType, 109 PyMac_GetStr255, name, 110 &replaceFlag)) 111 return NULL; 112 _err = AddFolderDescriptor(foldType, 113 flags, 114 foldClass, 115 foldLocation, 116 badgeSignature, 117 badgeType, 118 name, 119 replaceFlag); 120 if (_err != noErr) return PyMac_Error(_err); 121 Py_INCREF(Py_None); 122 _res = Py_None; 123 return _res; 124 124 } 125 125 126 126 static PyObject *Folder_GetFolderTypes(PyObject *_self, PyObject *_args) 127 127 { 128 PyObject *_res = NULL;129 OSErr _err;130 UInt32 requestedTypeCount;131 UInt32 totalTypeCount;132 FolderType theTypes;133 if (!PyArg_ParseTuple(_args, "l",134 &requestedTypeCount))135 return NULL;136 _err = GetFolderTypes(requestedTypeCount,137 &totalTypeCount,138 &theTypes);139 if (_err != noErr) return PyMac_Error(_err);140 _res = Py_BuildValue("lO&",141 totalTypeCount,142 PyMac_BuildOSType, theTypes);143 return _res;128 PyObject *_res = NULL; 129 OSErr _err; 130 UInt32 requestedTypeCount; 131 UInt32 totalTypeCount; 132 FolderType theTypes; 133 if (!PyArg_ParseTuple(_args, "l", 134 &requestedTypeCount)) 135 return NULL; 136 _err = GetFolderTypes(requestedTypeCount, 137 &totalTypeCount, 138 &theTypes); 139 if (_err != noErr) return PyMac_Error(_err); 140 _res = Py_BuildValue("lO&", 141 totalTypeCount, 142 PyMac_BuildOSType, theTypes); 143 return _res; 144 144 } 145 145 146 146 static PyObject *Folder_RemoveFolderDescriptor(PyObject *_self, PyObject *_args) 147 147 { 148 PyObject *_res = NULL;149 OSErr _err;150 FolderType foldType;151 if (!PyArg_ParseTuple(_args, "O&",152 PyMac_GetOSType, &foldType))153 return NULL;154 _err = RemoveFolderDescriptor(foldType);155 if (_err != noErr) return PyMac_Error(_err);156 Py_INCREF(Py_None);157 _res = Py_None;158 return _res;148 PyObject *_res = NULL; 149 OSErr _err; 150 FolderType foldType; 151 if (!PyArg_ParseTuple(_args, "O&", 152 PyMac_GetOSType, &foldType)) 153 return NULL; 154 _err = RemoveFolderDescriptor(foldType); 155 if (_err != noErr) return PyMac_Error(_err); 156 Py_INCREF(Py_None); 157 _res = Py_None; 158 return _res; 159 159 } 160 160 … … 162 162 static PyObject *Folder_GetFolderName(PyObject *_self, PyObject *_args) 163 163 { 164 PyObject *_res = NULL;165 OSErr _err;166 short vRefNum;167 OSType foldType;168 short foundVRefNum;169 Str255 name;170 if (!PyArg_ParseTuple(_args, "hO&O&",171 &vRefNum,172 PyMac_GetOSType, &foldType,173 PyMac_GetStr255, name))174 return NULL;175 _err = GetFolderName(vRefNum,176 foldType,177 &foundVRefNum,178 name);179 if (_err != noErr) return PyMac_Error(_err);180 _res = Py_BuildValue("h",181 foundVRefNum);182 return _res;164 PyObject *_res = NULL; 165 OSErr _err; 166 short vRefNum; 167 OSType foldType; 168 short foundVRefNum; 169 Str255 name; 170 if (!PyArg_ParseTuple(_args, "hO&O&", 171 &vRefNum, 172 PyMac_GetOSType, &foldType, 173 PyMac_GetStr255, name)) 174 return NULL; 175 _err = GetFolderName(vRefNum, 176 foldType, 177 &foundVRefNum, 178 name); 179 if (_err != noErr) return PyMac_Error(_err); 180 _res = Py_BuildValue("h", 181 foundVRefNum); 182 return _res; 183 183 } 184 184 185 185 static PyObject *Folder_AddFolderRouting(PyObject *_self, PyObject *_args) 186 186 { 187 PyObject *_res = NULL;188 OSErr _err;189 OSType fileType;190 FolderType routeFromFolder;191 FolderType routeToFolder;192 RoutingFlags flags;193 Boolean replaceFlag;194 if (!PyArg_ParseTuple(_args, "O&O&O&lb",195 PyMac_GetOSType, &fileType,196 PyMac_GetOSType, &routeFromFolder,197 PyMac_GetOSType, &routeToFolder,198 &flags,199 &replaceFlag))200 return NULL;201 _err = AddFolderRouting(fileType,202 routeFromFolder,203 routeToFolder,204 flags,205 replaceFlag);206 if (_err != noErr) return PyMac_Error(_err);207 Py_INCREF(Py_None);208 _res = Py_None;209 return _res;187 PyObject *_res = NULL; 188 OSErr _err; 189 OSType fileType; 190 FolderType routeFromFolder; 191 FolderType routeToFolder; 192 RoutingFlags flags; 193 Boolean replaceFlag; 194 if (!PyArg_ParseTuple(_args, "O&O&O&lb", 195 PyMac_GetOSType, &fileType, 196 PyMac_GetOSType, &routeFromFolder, 197 PyMac_GetOSType, &routeToFolder, 198 &flags, 199 &replaceFlag)) 200 return NULL; 201 _err = AddFolderRouting(fileType, 202 routeFromFolder, 203 routeToFolder, 204 flags, 205 replaceFlag); 206 if (_err != noErr) return PyMac_Error(_err); 207 Py_INCREF(Py_None); 208 _res = Py_None; 209 return _res; 210 210 } 211 211 212 212 static PyObject *Folder_RemoveFolderRouting(PyObject *_self, PyObject *_args) 213 213 { 214 PyObject *_res = NULL;215 OSErr _err;216 OSType fileType;217 FolderType routeFromFolder;218 if (!PyArg_ParseTuple(_args, "O&O&",219 PyMac_GetOSType, &fileType,220 PyMac_GetOSType, &routeFromFolder))221 return NULL;222 _err = RemoveFolderRouting(fileType,223 routeFromFolder);224 if (_err != noErr) return PyMac_Error(_err);225 Py_INCREF(Py_None);226 _res = Py_None;227 return _res;214 PyObject *_res = NULL; 215 OSErr _err; 216 OSType fileType; 217 FolderType routeFromFolder; 218 if (!PyArg_ParseTuple(_args, "O&O&", 219 PyMac_GetOSType, &fileType, 220 PyMac_GetOSType, &routeFromFolder)) 221 return NULL; 222 _err = RemoveFolderRouting(fileType, 223 routeFromFolder); 224 if (_err != noErr) return PyMac_Error(_err); 225 Py_INCREF(Py_None); 226 _res = Py_None; 227 return _res; 228 228 } 229 229 230 230 static PyObject *Folder_FindFolderRouting(PyObject *_self, PyObject *_args) 231 231 { 232 PyObject *_res = NULL;233 OSErr _err;234 OSType fileType;235 FolderType routeFromFolder;236 FolderType routeToFolder;237 RoutingFlags flags;238 if (!PyArg_ParseTuple(_args, "O&O&",239 PyMac_GetOSType, &fileType,240 PyMac_GetOSType, &routeFromFolder))241 return NULL;242 _err = FindFolderRouting(fileType,243 routeFromFolder,244 &routeToFolder,245 &flags);246 if (_err != noErr) return PyMac_Error(_err);247 _res = Py_BuildValue("O&l",248 PyMac_BuildOSType, routeToFolder,249 flags);250 return _res;232 PyObject *_res = NULL; 233 OSErr _err; 234 OSType fileType; 235 FolderType routeFromFolder; 236 FolderType routeToFolder; 237 RoutingFlags flags; 238 if (!PyArg_ParseTuple(_args, "O&O&", 239 PyMac_GetOSType, &fileType, 240 PyMac_GetOSType, &routeFromFolder)) 241 return NULL; 242 _err = FindFolderRouting(fileType, 243 routeFromFolder, 244 &routeToFolder, 245 &flags); 246 if (_err != noErr) return PyMac_Error(_err); 247 _res = Py_BuildValue("O&l", 248 PyMac_BuildOSType, routeToFolder, 249 flags); 250 return _res; 251 251 } 252 252 #endif /* !__LP64__ */ … … 254 254 static PyObject *Folder_InvalidateFolderDescriptorCache(PyObject *_self, PyObject *_args) 255 255 { 256 PyObject *_res = NULL;257 OSErr _err;258 short vRefNum;259 long dirID;260 if (!PyArg_ParseTuple(_args, "hl",261 &vRefNum,262 &dirID))263 return NULL;264 _err = InvalidateFolderDescriptorCache(vRefNum,265 dirID);266 if (_err != noErr) return PyMac_Error(_err);267 Py_INCREF(Py_None);268 _res = Py_None;269 return _res;256 PyObject *_res = NULL; 257 OSErr _err; 258 short vRefNum; 259 long dirID; 260 if (!PyArg_ParseTuple(_args, "hl", 261 &vRefNum, 262 &dirID)) 263 return NULL; 264 _err = InvalidateFolderDescriptorCache(vRefNum, 265 dirID); 266 if (_err != noErr) return PyMac_Error(_err); 267 Py_INCREF(Py_None); 268 _res = Py_None; 269 return _res; 270 270 } 271 271 272 272 static PyObject *Folder_IdentifyFolder(PyObject *_self, PyObject *_args) 273 273 { 274 PyObject *_res = NULL;275 OSErr _err;276 short vRefNum;277 long dirID;278 FolderType foldType;279 if (!PyArg_ParseTuple(_args, "hl",280 &vRefNum,281 &dirID))282 return NULL;283 _err = IdentifyFolder(vRefNum,284 dirID,285 &foldType);286 if (_err != noErr) return PyMac_Error(_err);287 _res = Py_BuildValue("O&",288 PyMac_BuildOSType, foldType);289 return _res;274 PyObject *_res = NULL; 275 OSErr _err; 276 short vRefNum; 277 long dirID; 278 FolderType foldType; 279 if (!PyArg_ParseTuple(_args, "hl", 280 &vRefNum, 281 &dirID)) 282 return NULL; 283 _err = IdentifyFolder(vRefNum, 284 dirID, 285 &foldType); 286 if (_err != noErr) return PyMac_Error(_err); 287 _res = Py_BuildValue("O&", 288 PyMac_BuildOSType, foldType); 289 return _res; 290 290 } 291 291 292 292 static PyMethodDef Folder_methods[] = { 293 {"FindFolder", (PyCFunction)Folder_FindFolder, 1,294 PyDoc_STR("(short vRefNum, OSType folderType, Boolean createFolder) -> (short foundVRefNum, long foundDirID)")},295 {"ReleaseFolder", (PyCFunction)Folder_ReleaseFolder, 1,296 PyDoc_STR("(short vRefNum, OSType folderType) -> None")},297 {"FSFindFolder", (PyCFunction)Folder_FSFindFolder, 1,298 PyDoc_STR("(short vRefNum, OSType folderType, Boolean createFolder) -> (FSRef foundRef)")},299 {"AddFolderDescriptor", (PyCFunction)Folder_AddFolderDescriptor, 1,300 PyDoc_STR("(FolderType foldType, FolderDescFlags flags, FolderClass foldClass, FolderLocation foldLocation, OSType badgeSignature, OSType badgeType, Str255 name, Boolean replaceFlag) -> None")},301 {"GetFolderTypes", (PyCFunction)Folder_GetFolderTypes, 1,302 PyDoc_STR("(UInt32 requestedTypeCount) -> (UInt32 totalTypeCount, FolderType theTypes)")},303 {"RemoveFolderDescriptor", (PyCFunction)Folder_RemoveFolderDescriptor, 1,304 PyDoc_STR("(FolderType foldType) -> None")},293 {"FindFolder", (PyCFunction)Folder_FindFolder, 1, 294 PyDoc_STR("(short vRefNum, OSType folderType, Boolean createFolder) -> (short foundVRefNum, long foundDirID)")}, 295 {"ReleaseFolder", (PyCFunction)Folder_ReleaseFolder, 1, 296 PyDoc_STR("(short vRefNum, OSType folderType) -> None")}, 297 {"FSFindFolder", (PyCFunction)Folder_FSFindFolder, 1, 298 PyDoc_STR("(short vRefNum, OSType folderType, Boolean createFolder) -> (FSRef foundRef)")}, 299 {"AddFolderDescriptor", (PyCFunction)Folder_AddFolderDescriptor, 1, 300 PyDoc_STR("(FolderType foldType, FolderDescFlags flags, FolderClass foldClass, FolderLocation foldLocation, OSType badgeSignature, OSType badgeType, Str255 name, Boolean replaceFlag) -> None")}, 301 {"GetFolderTypes", (PyCFunction)Folder_GetFolderTypes, 1, 302 PyDoc_STR("(UInt32 requestedTypeCount) -> (UInt32 totalTypeCount, FolderType theTypes)")}, 303 {"RemoveFolderDescriptor", (PyCFunction)Folder_RemoveFolderDescriptor, 1, 304 PyDoc_STR("(FolderType foldType) -> None")}, 305 305 #ifndef __LP64__ 306 {"GetFolderName", (PyCFunction)Folder_GetFolderName, 1,307 PyDoc_STR("(short vRefNum, OSType foldType, Str255 name) -> (short foundVRefNum)")},308 {"AddFolderRouting", (PyCFunction)Folder_AddFolderRouting, 1,309 PyDoc_STR("(OSType fileType, FolderType routeFromFolder, FolderType routeToFolder, RoutingFlags flags, Boolean replaceFlag) -> None")},310 {"RemoveFolderRouting", (PyCFunction)Folder_RemoveFolderRouting, 1,311 PyDoc_STR("(OSType fileType, FolderType routeFromFolder) -> None")},312 {"FindFolderRouting", (PyCFunction)Folder_FindFolderRouting, 1,313 PyDoc_STR("(OSType fileType, FolderType routeFromFolder) -> (FolderType routeToFolder, RoutingFlags flags)")},306 {"GetFolderName", (PyCFunction)Folder_GetFolderName, 1, 307 PyDoc_STR("(short vRefNum, OSType foldType, Str255 name) -> (short foundVRefNum)")}, 308 {"AddFolderRouting", (PyCFunction)Folder_AddFolderRouting, 1, 309 PyDoc_STR("(OSType fileType, FolderType routeFromFolder, FolderType routeToFolder, RoutingFlags flags, Boolean replaceFlag) -> None")}, 310 {"RemoveFolderRouting", (PyCFunction)Folder_RemoveFolderRouting, 1, 311 PyDoc_STR("(OSType fileType, FolderType routeFromFolder) -> None")}, 312 {"FindFolderRouting", (PyCFunction)Folder_FindFolderRouting, 1, 313 PyDoc_STR("(OSType fileType, FolderType routeFromFolder) -> (FolderType routeToFolder, RoutingFlags flags)")}, 314 314 #endif /* !__LP64__ */ 315 {"InvalidateFolderDescriptorCache", (PyCFunction)Folder_InvalidateFolderDescriptorCache, 1,316 PyDoc_STR("(short vRefNum, long dirID) -> None")},317 {"IdentifyFolder", (PyCFunction)Folder_IdentifyFolder, 1,318 PyDoc_STR("(short vRefNum, long dirID) -> (FolderType foldType)")},319 {NULL, NULL, 0}315 {"InvalidateFolderDescriptorCache", (PyCFunction)Folder_InvalidateFolderDescriptorCache, 1, 316 PyDoc_STR("(short vRefNum, long dirID) -> None")}, 317 {"IdentifyFolder", (PyCFunction)Folder_IdentifyFolder, 1, 318 PyDoc_STR("(short vRefNum, long dirID) -> (FolderType foldType)")}, 319 {NULL, NULL, 0} 320 320 }; 321 321 … … 325 325 void init_Folder(void) 326 326 { 327 PyObject *m;328 PyObject *d;329 330 331 332 333 m = Py_InitModule("_Folder", Folder_methods);334 d = PyModule_GetDict(m);335 Folder_Error = PyMac_GetOSErrException();336 if (Folder_Error == NULL ||337 PyDict_SetItemString(d, "Error", Folder_Error) != 0)338 return;327 PyObject *m; 328 PyObject *d; 329 330 331 332 333 m = Py_InitModule("_Folder", Folder_methods); 334 d = PyModule_GetDict(m); 335 Folder_Error = PyMac_GetOSErrException(); 336 if (Folder_Error == NULL || 337 PyDict_SetItemString(d, "Error", Folder_Error) != 0) 338 return; 339 339 } 340 340
Note:
See TracChangeset
for help on using the changeset viewer.
