26 int len = strlen(buf);
57 static char *charset = 0;
77 memset(p0, 0,
sizeof(*p0));
87 yaz_snprintf(oidname,
sizeof(oidname),
"1.0.10646.1.0.%d", form);
95 memset(pc, 0,
sizeof(*pc));
107 ODR o,
const char **charsets,
int num_charsets,
108 const char **langs,
int num_langs,
int selected)
113 memset(p, 0,
sizeof(*p));
118 if (charsets && num_charsets)
125 for (i = 0; i < num_charsets; i++)
129 if (langs && num_langs)
133 (
char **)
odr_malloc(o, num_langs*
sizeof(
char *));
135 for (i = 0; i < num_langs; i++)
147 memset(p, 0,
sizeof(*p));
154 const char **charsets,
int num_charsets,
155 const char **langs,
int num_langs,
170 langs, num_langs, selected);
177 const char *charset_list,
178 const char *lang_list,
181 char **charsets_addresses = 0;
182 char **langs_addresses = 0;
183 int charsets_count = 0;
188 &charsets_addresses, &charsets_count);
191 &langs_addresses, &langs_count);
193 (
const char **) charsets_addresses,
195 (
const char **) langs_addresses,
203 const char *lang,
int selected)
208 memset(p, 0,
sizeof(*p));
217 yaz_snprintf(oidname,
sizeof oidname,
"1.0.10646.1.0.%d", form);
225 memset(pc, 0,
sizeof(*pc));
243 const char *lang,
int selected)
292 for (i = 0; i < (*p)->num_elements; i++)
296 (pext = (*p)->list[i]->information.externallyDefinedInfo))
301 if ((*p)->num_elements <= 1)
305 --((*p)->num_elements);
306 for (; i < (*p)->num_elements; i++)
307 (*p)->list[i] = (*p)->list[i+1];
319 char ***charsets,
int *num_charsets,
320 char ***langs,
int *num_langs,
int *selected)
325 if (num_charsets && charsets)
331 (*charsets) = (
char **)
348 (*charsets)[i] = (
char *)
367 if (langs && num_langs)
389 char **charset,
char **lang,
int *selected)
static int get_form(const char *charset)
static Z_External * z_ext_record2(ODR o, const char *buf)
Z_External * yaz_set_proposal_charneg(ODR o, const char **charsets, int num_charsets, const char **langs, int num_langs, int selected)
static Z_TargetResponse * z_get_TargetResponse(ODR o, const char *charset, const char *lang, int selected)
static Z_CharSetandLanguageNegotiation * z_get_CharSetandLanguageNegotiation(ODR o)
static Z_OriginProposal_0 * z_get_OriginProposal_0(ODR o, const char *charset)
static char * set_form(Odr_oid *encoding)
Z_External * yaz_set_proposal_charneg_list(ODR o, const char *delim, const char *charset_list, const char *lang_list, int selected)
void yaz_get_proposal_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, char ***charsets, int *num_charsets, char ***langs, int *num_langs, int *selected)
Z_External * yaz_set_response_charneg(ODR o, const char *charset, const char *lang, int selected)
void yaz_get_response_charneg(NMEM mem, Z_CharSetandLanguageNegotiation *p, char **charset, char **lang, int *selected)
static Z_OriginProposal * z_get_OriginProposal(ODR o, const char **charsets, int num_charsets, const char **langs, int num_langs, int selected)
Z_CharSetandLanguageNegotiation * yaz_get_charneg_record(Z_OtherInformation *p)
int yaz_del_charneg_record(Z_OtherInformation **p)
Header for Z39.50 Charset negotiation utilities.
int yaz_matchstr(const char *s1, const char *s2)
match strings - independent of case and '-'
void * nmem_malloc(NMEM n, size_t size)
allocates memory block on NMEM handle
struct nmem_control * NMEM
NMEM handle (an opaque pointer to memory).
void nmem_strsplit(NMEM nmem, const char *delim, const char *dstr, char ***darray, int *num)
allocates sub strings out of string using certain delimitors
char * nmem_strdup(NMEM mem, const char *src)
allocates string on NMEM handle (similar strdup)
Odr_oct * odr_create_Odr_oct(ODR o, const char *buf, int sz)
void * odr_malloc(ODR o, size_t size)
char * odr_strdup(ODR o, const char *str)
Odr_oid * odr_oiddup(ODR odr, const Odr_oid *o)
Odr_oid * odr_getoidbystr(ODR o, const char *str)
const Odr_oid yaz_oid_negot_charset_3[]
const Odr_oid yaz_oid_negot_charset_id[]
int oid_oidcmp(const Odr_oid *o1, const Odr_oid *o2)
compares OIDs
int oid_oidlen(const Odr_oid *o)
returns length of OIDs
Header for Z39.50 OtherInfo utilities.
#define Z_External_charSetandLanguageNegotiation
void yaz_snprintf(char *buf, size_t size, const char *fmt,...)
Header for config file reading utilities.
Z_TargetResponse * response
Z_OriginProposal * proposal
union Z_CharSetandLanguageNegotiation::@127242022024235010345232225261367222210142073064 u
structure for all known EXTERNALs
Z_CharSetandLanguageNegotiation * charNeg3
Odr_int * indirect_reference
union Z_External::@173112132151266201036013025012152147264102163302 u
Odr_oid * direct_reference
Z_PrivateCharacterSet * zprivate
union Z_OriginProposal_0::@350047213161110340275037164040022047055335047144 u
Z_LanguageCode ** proposedlanguages
int num_proposedlanguages
Z_OriginProposal_0 ** proposedCharSets
Odr_bool * recordsInSelectedCharSets
Z_External * externallySpecified
union Z_PrivateCharacterSet::@234061056346327217307337211221361230325257104130 u
Z_PrivateCharacterSet * zprivate
Odr_bool * recordsInSelectedCharSets
union Z_TargetResponse::@071030250150156075157174046113117140236075113034 u
Z_LanguageCode * selectedLanguage
Header for common YAZ utilities.
ASN.1 Module NegotiationRecordDefinition-charSetandLanguageNegotiation-3.
#define Z_CharSetandLanguageNegotiation_proposal
#define Z_OriginProposal_0_private
#define Z_PrivateCharacterSet_externallySpecified
#define Z_CharSetandLanguageNegotiation_response
#define Z_OriginProposal_0_iso10646
#define Z_TargetResponse_private
#define Z_TargetResponse_iso10646
#define Z_OtherInfo_externallyDefinedInfo