-static void interpret_default_diag(int *error,
- const char **addinfo,
- Z_DefaultDiagFormat *r)
-{
- *error = *r->condition;
- *addinfo = r->u.v2Addinfo;
-}
-
-static void interpret_init_diag2(int *error,
- const char **addinfo,
- Z_DiagnosticFormat *diag)
-{
- if (diag->num > 0)
- {
- Z_DiagnosticFormat_s *ds = diag->elements[0];
- if (ds->which == Z_DiagnosticFormat_s_defaultDiagRec)
- interpret_default_diag(error, addinfo, ds->u.defaultDiagRec);
- }
-}
-
-static void interpret_init_diag(int *error,
- const char **addinfo,
- Z_InitResponse *initrs)
-{
- Z_External *uif = initrs->userInformationField;
- if (uif && uif->which == Z_External_userInfo1)
- {
- int i;
- Z_OtherInformation *ui = uif->u.userInfo1;
- for (i = 0; i < ui->num_elements; i++)
- {
- Z_OtherInformationUnit *unit = ui->list[i];
- if (unit->which == Z_OtherInfo_externallyDefinedInfo &&
- unit->information.externallyDefinedInfo &&
- unit->information.externallyDefinedInfo->which ==
- Z_External_diag1)
- {
- interpret_init_diag2(
- error, addinfo,
- unit->information.externallyDefinedInfo->u.diag1);
- }
- }
- }
-}
-