void _zip_error_get(struct zip_error *err, int *zep, int *sep) { if (zep) *zep = err->zip_err; if (sep) { if (zip_error_get_sys_type(err->zip_err) != ZIP_ET_NONE) *sep = err->sys_err; else *sep = 0; } }
static void set_error(int *zep, const struct zip_error *err, int ze) { int se; if (err) { _zip_error_get(err, &ze, &se); if (zip_error_get_sys_type(ze) == ZIP_ET_SYS) errno = se; } if (zep) *zep = ze; }