kolibrios/contrib/media/updf/include/errors.h
right-hearted 4f7ee97ec9 uPDF with buttons
git-svn-id: svn://kolibrios.org@4680 a494cfbc-eb01-0410-851d-a64ba20cac60
2014-03-22 21:00:40 +00:00

34 lines
1.9 KiB
C

#ifndef __errors_h__
#define __errors_h__
void CheckArgType(LispInt aArgNr, LispPtr& aArguments, LispEnvironment& aEnvironment, LispInt aError);
#define CHK_ARG(_pred,_argnr) {if (!(_pred)) CheckArgType(_argnr,aArguments, aEnvironment,KLispErrInvalidArg);}
#define CHK_ARG_CORE(_pred,_argnr) {if (!(_pred)) CheckArgType(_argnr,ARGUMENT(0),aEnvironment,KLispErrInvalidArg);}
#define CHK_ISLIST(_pred,_argnr) {if (!InternalIsList(_pred)) CheckArgType(_argnr,aArguments, aEnvironment,KLispErrNotList);}
#define CHK_ISLIST_CORE(_pred,_argnr) {if (!InternalIsList(_pred)) CheckArgType(_argnr,ARGUMENT(0),aEnvironment,KLispErrNotList);}
#define CHK_ISSTRING(_pred,_argnr) {if (!InternalIsString((_pred)->String())) CheckArgType(_argnr,aArguments, aEnvironment,KLispErrNotString);}
#define CHK_ISSTRING_CORE(_pred,_argnr) {if (!InternalIsString((_pred)->String())) CheckArgType(_argnr,ARGUMENT(0),aEnvironment,KLispErrNotString);}
void CheckNrArgs(LispInt n, LispPtr& aArguments, LispEnvironment& aEnvironment);
#define TESTARGS(_n) CheckNrArgs(_n,aArguments,aEnvironment)
void CheckFuncGeneric(LispInt aError,LispPtr& aArguments,LispEnvironment& aEnvironment);
void CheckFuncGeneric(LispInt aError,LispEnvironment& aEnvironment);
#define CHK(_pred,_err) {if (!(_pred)) CheckFuncGeneric(_err,aArguments, aEnvironment);}
#define CHK_CORE(_pred,_err) {if (!(_pred)) CheckFuncGeneric(_err,ARGUMENT(0),aEnvironment);}
#define CHK2(_pred,_err) {if (!(_pred)) CheckFuncGeneric(_err,aEnvironment);}
char *GenericErrorBuf(); // called (only) from errors.cpp and LispEnvironment::ErrorString()
void RaiseError(char* str,...);
/*
#define TESTARGS(_n) \
{ \
LispInt nrArguments = InternalListLength(aArguments); \
Check(nrArguments == _n,KLispErrWrongNumberOfArgs); \
}
*/
#endif