/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
* See the file LICENSE for details.
*/
/**
#define CHECK_TYPE 0
-int yaz_match_xsd_string_n(xmlNodePtr ptr, const char *elem, ODR o,
- char **val, int *len)
+int yaz_match_xsd_string_n_nmem(xmlNodePtr ptr, const char *elem, NMEM nmem,
+ char **val, int *len)
{
#if CHECK_TYPE
struct _xmlAttr *attr;
*val = "";
return 1;
}
- *val = odr_strdup(o, (const char *) ptr->content);
+ *val = nmem_strdup(nmem, (const char *) ptr->content);
if (len)
*len = xmlStrlen(ptr->content);
return 1;
}
+int yaz_match_xsd_string_n(xmlNodePtr ptr, const char *elem, ODR o,
+ char **val, int *len)
+{
+ return yaz_match_xsd_string_n_nmem(ptr, elem, o->mem, val, len);
+}
int yaz_match_xsd_string(xmlNodePtr ptr, const char *elem, ODR o, char **val)
{
xmlBufferAddHead(buf, (const xmlChar *) "<yaz_record>", -1);
xmlBufferAdd(buf, (const xmlChar *) "</yaz_record>", -1);
}
- *val = (char *) odr_malloc(o, buf->use + 1);
- memcpy(*val, buf->content, buf->use);
- (*val)[buf->use] = '\0';
-
+ *val = odr_strdupn(o, (const char *) buf->content, buf->use);
if (len)
*len = buf->use;