+/** \brief allocates sub strings out of string using certain delimitors
+ \param nmem NMEM handle
+ \param delim delimitor chars (splits on each char in there)
+ \param dstr string to be split
+ \param darray result string array for each sub string
+ \param num number of result strings
+ \param collapse 1=collapse multiple delims to one; 0=no collapse
+ \param escape_char != 0, an escape char (could be \)
+*/
+YAZ_EXPORT void nmem_strsplit_escape(NMEM nmem, const char *delim,
+ const char *dstr,
+ char ***darray, int *num, int collapse,
+ int escape_char);
+
+/** \brief allocates sub strings out of string using certain delimitors
+ \param nmem NMEM handle
+ \param delim delimitor chars (splits on each char in there)
+ \param dstr string to be split
+ \param darray result string array for each sub string
+ \param num number of result strings
+ \param collapse 1=collapse multiple delims to one; 0=no collapse
+ \param escape_char != 0, an escape char (could be \)
+ \param subst_escape 1=substitute escapes, 0 leave as is
+*/
+YAZ_EXPORT void nmem_strsplit_escape2(NMEM nmem, const char *delim,
+ const char *dstr,
+ char ***darray, int *num, int collapse,
+ int escape_char, int subst_escape);
+
+/** \brief allocates and sets integer for NMEM
+ \param nmem NMEM handle
+ \param v integer value
+ \returns pointer to created integer
+*/
+YAZ_EXPORT nmem_int_t *nmem_intdup(NMEM nmem, nmem_int_t v);
+
+/** \brief allocates and sets boolean for NMEM
+ \param nmem NMEM handle
+ \param v value (0=false, != 0 true)
+ \returns pointer to created boolean
+*/
+YAZ_EXPORT nmem_bool_t *nmem_booldup(NMEM nmem, nmem_bool_t v);
+
+/** \brief transfers memory from one NMEM handle to another
+ \param src source NMEM handle
+ \param dst destination NMEM handle
+ */
+YAZ_EXPORT void nmem_transfer(NMEM dst, NMEM src);