mirror of
https://github.com/python/cpython.git
synced 2024-11-30 05:15:14 +08:00
Added NewAliasMinimalFromFullPath(), and allow alias.Resolve() to return
an FSSpec to a non-existing file.
This commit is contained in:
parent
3b1c89e244
commit
d993648ef6
@ -99,7 +99,7 @@ mfsa_Resolve(self, args)
|
||||
else
|
||||
fromp = NULL;
|
||||
err = ResolveAlias(fromp, self->alias, &result, &changed);
|
||||
if ( err ) {
|
||||
if ( err && err != fnfErr ) {
|
||||
PyErr_Mac(ErrorObject, err);
|
||||
return NULL;
|
||||
}
|
||||
@ -920,6 +920,32 @@ mfs_FInfo(self, args)
|
||||
return (PyObject *)newmfsiobject();
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
mfs_NewAliasMinimalFromFullPath(self, args)
|
||||
PyObject *self; /* Not used */
|
||||
PyObject *args;
|
||||
{
|
||||
OSErr err;
|
||||
char *fullpath;
|
||||
int fullpathlen;
|
||||
AliasHandle alias;
|
||||
Str32 zonename;
|
||||
Str31 servername;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "s#", &fullpath, &fullpathlen) )
|
||||
return NULL;
|
||||
zonename[0] = 0;
|
||||
servername[0] = 0;
|
||||
err = NewAliasMinimalFromFullPath(fullpathlen, (Ptr)fullpath, zonename,
|
||||
servername, &alias);
|
||||
if ( err ) {
|
||||
PyErr_Mac(ErrorObject, err);
|
||||
return NULL;
|
||||
}
|
||||
return (PyObject *)newmfsaobject(alias);
|
||||
}
|
||||
|
||||
|
||||
/* List of methods defined in the module */
|
||||
|
||||
static struct PyMethodDef mfs_methods[] = {
|
||||
@ -935,6 +961,7 @@ static struct PyMethodDef mfs_methods[] = {
|
||||
{"FindFolder", mfs_FindFolder, 1},
|
||||
{"FindApplication", mfs_FindApplication, 1},
|
||||
{"FInfo", mfs_FInfo, 1},
|
||||
{"NewAliasMinimalFromFullPath", mfs_NewAliasMinimalFromFullPath, 1},
|
||||
|
||||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user