Table of Contents
Many library functions return a value of type LqrRetVal. This is an enum type
which can hold the values:
LQR_OKeveryting OK
LQR_ERRORgeneric fatal error
LQR_NOMEMnot enough memory
LQR_USRCANCELaction cancelled by the user
At top level, it is important that the user handle these values explicitly, because the library functions don't do anything else than stopping and returning an error signal in case of errors. An easy way is setting up some macros and wrap each function call with those, as shown in the example files.
Below top level, the library provides some convenient macros which can be used to wrap function calls, in order to propagate these signals:
LQR_CATCH (expr)
if expr is equal to LQR_OK it does nothing, otherwise it
returns expr (or the result of the execution of
expr if it happens to be a function)
LQR_CATCH_F (expr)
returns LQR_ERROR if expr is FALSE
LQR_CATCH_MEM (expr)
returns LQR_NOMEM if expr is NULL
The names of these macros have changed since version 0.4; the previous names
CATCH, CATCH_F and CATCH_MEM are
still available, but they can be disabled at configure time if they cause conflicts
(configure --help for details).