Listing 2
static PyObject *openrj_open(PyObject *self, PyObject *args) { char *path; long flags; if(!PyArg_ParseTuple(args, "sl", &path, &flags)) { return NULL; } else { ORJDatabase const *db; ORJError error; ORJRC rc = ORJ_ReadDatabaseA( path, NULL, flags , &db, &error); if(ORJ_RC_SUCCESS != rc) { // If rc == ORJ_RC_PARSEERROR then prepare a parse-related message, // using ORJ_GetParseErrorStringA() // else a message using ORJ_GetErrorStringA() char errMessage[] = . . .; // PyErr_SetString(DatabaseExceptionObject, errMessage); return NULL; } else { return (PyObject*)openrj_Database_alloc(self, db, path); } } }