mirror of
https://github.com/fadden/nulib2.git
synced 2024-06-11 07:29:27 +00:00
Added kNuErrFileAccessDenied. Return it when OpenRW fails with an
access permission problem, so that an application can follow it with an OpenRO call for read-only files.
This commit is contained in:
parent
36f47b866c
commit
7469f782cb
|
@ -769,6 +769,9 @@ bail:
|
||||||
/*
|
/*
|
||||||
* Open a temp file. If "fileName" contains six Xs ("XXXXXX"), it will
|
* Open a temp file. If "fileName" contains six Xs ("XXXXXX"), it will
|
||||||
* be treated as a mktemp-style template, and modified before use.
|
* be treated as a mktemp-style template, and modified before use.
|
||||||
|
*
|
||||||
|
* Thought for the day: consider using Win32 SetFileAttributes() to make
|
||||||
|
* temp files hidden. We will need to un-hide it before rolling it over.
|
||||||
*/
|
*/
|
||||||
static NuError
|
static NuError
|
||||||
Nu_OpenTempFile(char* fileName, FILE** pFp)
|
Nu_OpenTempFile(char* fileName, FILE** pFp)
|
||||||
|
@ -914,8 +917,11 @@ Nu_OpenRW(const char* archivePathname, const char* tmpPathname, ulong flags,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fp == nil) {
|
if (fp == nil) {
|
||||||
|
if (errno == EACCES)
|
||||||
|
err = kNuErrFileAccessDenied;
|
||||||
|
else
|
||||||
|
err = kNuErrFileOpen;
|
||||||
Nu_ReportError(NU_BLOB, errno, "Unable to open '%s'", archivePathname);
|
Nu_ReportError(NU_BLOB, errno, "Unable to open '%s'", archivePathname);
|
||||||
err = kNuErrFileOpen;
|
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,6 +104,8 @@ Nu_StrError(NuError err)
|
||||||
return "Unable to set file date";
|
return "Unable to set file date";
|
||||||
case kNuErrFileSetAccess:
|
case kNuErrFileSetAccess:
|
||||||
return "Unable to set file access";
|
return "Unable to set file access";
|
||||||
|
case kNuErrFileAccessDenied:
|
||||||
|
return "Access denied";
|
||||||
|
|
||||||
case kNuErrNotNuFX:
|
case kNuErrNotNuFX:
|
||||||
return "Input is not a NuFX archive";
|
return "Input is not a NuFX archive";
|
||||||
|
|
|
@ -84,6 +84,7 @@ typedef enum NuError {
|
||||||
kNuErrReadDir = -35, /* error reading directory */
|
kNuErrReadDir = -35, /* error reading directory */
|
||||||
kNuErrFileSetDate = -36, /* unable to set file date */
|
kNuErrFileSetDate = -36, /* unable to set file date */
|
||||||
kNuErrFileSetAccess = -37, /* unable to set file access permissions */
|
kNuErrFileSetAccess = -37, /* unable to set file access permissions */
|
||||||
|
kNuErrFileAccessDenied = -38, /* equivalent to EACCES */
|
||||||
|
|
||||||
kNuErrNotNuFX = -40, /* 'NuFile' missing; not a NuFX archive? */
|
kNuErrNotNuFX = -40, /* 'NuFile' missing; not a NuFX archive? */
|
||||||
kNuErrBadMHVersion = -41, /* bad master header version */
|
kNuErrBadMHVersion = -41, /* bad master header version */
|
||||||
|
|
Loading…
Reference in New Issue
Block a user