+ if (c->charset||c->lang)
+ {
+ Z_OtherInformation **oi;
+ Z_OtherInformationUnit *oi_unit;
+
+ yaz_oi_APDU(apdu, &oi);
+
+ if (oi_unit = yaz_oi_update(oi, c->odr_out, NULL, 0, 0))
+ {
+ ODR_MASK_SET(ireq->options, Z_Options_negotiationModel);
+
+ oi_unit->which = Z_OtherInfo_externallyDefinedInfo;
+ oi_unit->information.externallyDefinedInfo =
+ yaz_set_charset_and_lang(c->odr_out,
+ CLASS_NEGOT, VAL_CHARNEG3,
+ (const char **)&c->charset, (c->charset) ? 1:0,
+ (const char **)&c->lang, (c->lang) ? 1:0);
+ }
+ }