mirror of
https://github.com/python/cpython.git
synced 2024-11-30 13:24:13 +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
|
else
|
||||||
fromp = NULL;
|
fromp = NULL;
|
||||||
err = ResolveAlias(fromp, self->alias, &result, &changed);
|
err = ResolveAlias(fromp, self->alias, &result, &changed);
|
||||||
if ( err ) {
|
if ( err && err != fnfErr ) {
|
||||||
PyErr_Mac(ErrorObject, err);
|
PyErr_Mac(ErrorObject, err);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -920,6 +920,32 @@ mfs_FInfo(self, args)
|
|||||||
return (PyObject *)newmfsiobject();
|
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 */
|
/* List of methods defined in the module */
|
||||||
|
|
||||||
static struct PyMethodDef mfs_methods[] = {
|
static struct PyMethodDef mfs_methods[] = {
|
||||||
@ -935,6 +961,7 @@ static struct PyMethodDef mfs_methods[] = {
|
|||||||
{"FindFolder", mfs_FindFolder, 1},
|
{"FindFolder", mfs_FindFolder, 1},
|
||||||
{"FindApplication", mfs_FindApplication, 1},
|
{"FindApplication", mfs_FindApplication, 1},
|
||||||
{"FInfo", mfs_FInfo, 1},
|
{"FInfo", mfs_FInfo, 1},
|
||||||
|
{"NewAliasMinimalFromFullPath", mfs_NewAliasMinimalFromFullPath, 1},
|
||||||
|
|
||||||
{NULL, NULL} /* sentinel */
|
{NULL, NULL} /* sentinel */
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user