void raise_error(const char *fmt, ...) { char buf[ERROR_MSG_LENGTH]; va_list argptr; va_start(argptr, fmt); vsnprintf(buf, sizeof(buf), fmt, argptr); va_end(argptr); error_fun(buf); }
/** * Generate an error using new error function system. * @param code Error code. * @param fmt Message format. * @param ... Format arguments. */ void gel_set_error(int code, const char *fmt, ...) { char msg[256]; va_list(args); /* prepare message */ va_start(args, fmt); vsnprintf(msg, sizeof(msg), fmt, args); va_end(args); /* launch the error */ gel_errno = code; error_fun(code, msg); }