- setobj->numberOfRecordsReturned = 0;
- setobj->condition = *zrs->u.nonSurrogateDiagnostic->condition;
- free (setobj->addinfo);
- setobj->addinfo = NULL;
- addinfo = zrs->u.nonSurrogateDiagnostic->addinfo;
- if (addinfo && (setobj->addinfo = malloc (strlen(addinfo) + 1)))
- strcpy (setobj->addinfo, addinfo);
- return;
- }
- else
+ setobj->which = zrs->which;
+ setobj->recordFlag = 1;
+ if (zrs->which == Z_Records_NSD)
+ {
+ const char *addinfo;
+
+ setobj->numberOfRecordsReturned = 0;
+ setobj->condition = *zrs->u.nonSurrogateDiagnostic->condition;
+ free (setobj->addinfo);
+ setobj->addinfo = NULL;
+ addinfo = zrs->u.nonSurrogateDiagnostic->addinfo;
+ if (addinfo && (setobj->addinfo = malloc (strlen(addinfo) + 1)))
+ strcpy (setobj->addinfo, addinfo);
+ printf ("Diagnostic response. %s (%d): %s\n",
+ diagbib1_str (setobj->condition),
+ setobj->condition,
+ setobj->addinfo ? setobj->addinfo : "");
+ }
+ else
+ {
+ int offset;
+ IRRecordList *rl;
+
+ setobj->numberOfRecordsReturned =
+ zrs->u.databaseOrSurDiagnostics->num_records;
+ printf ("Got %d records\n", setobj->numberOfRecordsReturned);
+ for (offset = 0; offset<setobj->numberOfRecordsReturned; offset++)