Updated for new callback setter return type.

This commit is contained in:
Andy McFadden 2003-02-18 21:41:10 +00:00
parent e9b4107d2f
commit f75f26b69b
3 changed files with 57 additions and 43 deletions

View File

@ -757,77 +757,94 @@ NuIsPresizedThreadID(NuThreadID threadID)
* ===========================================================================
*/
NUFXLIB_API NuError
NUFXLIB_API NuCallback
NuSetSelectionFilter(NuArchive* pArchive, NuCallback filterFunc)
{
NuError err;
NuCallback oldFunc = kNuInvalidCallback;
/*Assert(!((ulong)filterFunc % 4));*/
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone)
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone) {
oldFunc = pArchive->selectionFilterFunc;
pArchive->selectionFilterFunc = filterFunc;
}
return err;
return oldFunc;
}
NUFXLIB_API NuError
NUFXLIB_API NuCallback
NuSetOutputPathnameFilter(NuArchive* pArchive, NuCallback filterFunc)
{
NuError err;
NuCallback oldFunc = kNuInvalidCallback;
/*Assert(!((ulong)filterFunc % 4));*/
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone)
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone) {
oldFunc = pArchive->outputPathnameFunc;
pArchive->outputPathnameFunc = filterFunc;
}
return err;
return oldFunc;
}
NUFXLIB_API NuError
NUFXLIB_API NuCallback
NuSetProgressUpdater(NuArchive* pArchive, NuCallback updateFunc)
{
NuError err;
NuCallback oldFunc = kNuInvalidCallback;
/*Assert(!((ulong)updateFunc % 4));*/
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone)
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone) {
oldFunc = pArchive->progressUpdaterFunc;
pArchive->progressUpdaterFunc = updateFunc;
}
return err;
return oldFunc;
}
NUFXLIB_API NuError
NUFXLIB_API NuCallback
NuSetErrorHandler(NuArchive* pArchive, NuCallback errorFunc)
{
NuError err;
NuCallback oldFunc = kNuInvalidCallback;
/*Assert(!((ulong)errorFunc % 4));*/
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone)
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone) {
oldFunc = pArchive->errorHandlerFunc;
pArchive->errorHandlerFunc = errorFunc;
}
return err;
return oldFunc;
}
NUFXLIB_API NuError
NUFXLIB_API NuCallback
NuSetErrorMessageHandler(NuArchive* pArchive, NuCallback messageHandlerFunc)
{
NuError err;
NuCallback oldFunc = kNuInvalidCallback;
/*Assert(!((ulong)messageHandlerFunc % 4));*/
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone)
if ((err = Nu_ValidateNuArchive(pArchive)) == kNuErrNone) {
oldFunc = pArchive->messageHandlerFunc;
pArchive->messageHandlerFunc = messageHandlerFunc;
}
return err;
return oldFunc;
}
NUFXLIB_API NuError
NUFXLIB_API NuCallback
NuSetGlobalErrorMessageHandler(NuCallback messageHandlerFunc)
{
NuCallback oldFunc = kNuInvalidCallback;
/*Assert(!((ulong)messageHandlerFunc % 4));*/
oldFunc = gNuGlobalErrorMessageHandler;
gNuGlobalErrorMessageHandler = messageHandlerFunc;
return kNuErrNone;
return oldFunc;
}

View File

@ -540,16 +540,11 @@ CloseFunc(ExerciserState* pState, int argc, char** argv)
static NuError
DeleteFunc(ExerciserState* pState, int argc, char** argv)
{
NuError err;
(void) pState, (void) argc, (void) argv; /* shut up, gcc */
assert(ExerciserState_GetNuArchive(pState) != nil);
assert(argc == 1);
err = NuSetSelectionFilter(ExerciserState_GetNuArchive(pState),
SelectionFilter);
if (err != kNuErrNone)
return err;
NuSetSelectionFilter(ExerciserState_GetNuArchive(pState), SelectionFilter);
return NuDelete(ExerciserState_GetNuArchive(pState));
}
@ -588,16 +583,11 @@ DeleteThreadFunc(ExerciserState* pState, int argc, char** argv)
static NuError
ExtractFunc(ExerciserState* pState, int argc, char** argv)
{
NuError err;
(void) pState, (void) argc, (void) argv; /* shut up, gcc */
assert(ExerciserState_GetNuArchive(pState) != nil);
assert(argc == 1);
err = NuSetSelectionFilter(ExerciserState_GetNuArchive(pState),
SelectionFilter);
if (err != kNuErrNone)
return err;
NuSetSelectionFilter(ExerciserState_GetNuArchive(pState), SelectionFilter);
return NuExtract(ExerciserState_GetNuArchive(pState));
}
@ -926,7 +916,8 @@ SetErrorCallbackFunc(ExerciserState* pState, int argc, char** argv)
assert(ExerciserState_GetNuArchive(pState) != nil);
assert(argc == 1);
return NuSetErrorHandler(ExerciserState_GetNuArchive(pState), ErrorHandler);
NuSetErrorHandler(ExerciserState_GetNuArchive(pState), ErrorHandler);
return kNuErrNone;
}
/*

View File

@ -480,9 +480,10 @@ Test_Verify(NuArchive* pArchive)
printf("... verifying CRCs\n");
err = NuSetSelectionFilter(pArchive, VerifySelectionCallback);
if (err != kNuErrNone) {
fprintf(stderr, "ERROR: unable to set selection filter (err=%d)\n",err);
if (NuSetSelectionFilter(pArchive, VerifySelectionCallback) ==
kNuInvalidCallback)
{
fprintf(stderr, "ERROR: unable to set selection filter\n");
goto failed;
}
@ -982,9 +983,10 @@ DoTests(void)
fprintf(stderr, "ERROR: NuOpenRW failed (err=%d)\n", err);
goto failed;
}
err = NuSetErrorMessageHandler(pArchive, ErrorMessageHandler);
if (err != kNuErrNone) {
fprintf(stderr, "ERROR: couldn't set message handler (err=%d)\n", err);
if (NuSetErrorMessageHandler(pArchive, ErrorMessageHandler) ==
kNuInvalidCallback)
{
fprintf(stderr, "ERROR: couldn't set message handler\n");
goto failed;
}
@ -1017,9 +1019,10 @@ DoTests(void)
fprintf(stderr, "ERROR: NuOpenRO failed (err=%d)\n", err);
goto failed;
}
err = NuSetErrorMessageHandler(pArchive, ErrorMessageHandler);
if (err != kNuErrNone) {
fprintf(stderr, "ERROR: couldn't set message handler (err=%d)\n", err);
if (NuSetErrorMessageHandler(pArchive, ErrorMessageHandler) ==
kNuInvalidCallback)
{
fprintf(stderr, "ERROR: couldn't set message handler\n");
goto failed;
}
@ -1058,9 +1061,10 @@ DoTests(void)
fprintf(stderr, "ERROR: re-NuOpenRW failed (err=%d)\n", err);
goto failed;
}
err = NuSetErrorMessageHandler(pArchive, ErrorMessageHandler);
if (err != kNuErrNone) {
fprintf(stderr, "ERROR: couldn't set message handler (err=%d)\n", err);
if (NuSetErrorMessageHandler(pArchive, ErrorMessageHandler) ==
kNuInvalidCallback)
{
fprintf(stderr, "ERROR: couldn't set message handler\n");
goto failed;
}
@ -1156,7 +1160,9 @@ main(void)
" %s with [%s]\n\n",
major, minor, bug, pBuildDate, pBuildFlags);
if (NuSetGlobalErrorMessageHandler(ErrorMessageHandler) != kNuErrNone) {
if (NuSetGlobalErrorMessageHandler(ErrorMessageHandler) ==
kNuInvalidCallback)
{
fprintf(stderr, "ERROR: can't set the global message handler");
exit(1);
}