-YAZ_EXPORT char *nmem_strdup (NMEM mem, const char *src);
-YAZ_EXPORT char *nmem_strdupn (NMEM mem, const char *src, size_t n);
-YAZ_EXPORT void nmem_strsplit_blank(NMEM nmem, const char *dstr,
- char ***darray, int *num);
+
+/** \brief allocates string on NMEM handle (similar strdup)
+ \param mem HNEM handle
+ \param src string
+ \returns duplicated string
+ */
+YAZ_EXPORT char *nmem_strdup(NMEM mem, const char *src);
+/** \brief allocates string on NMEM handle - allows NULL ptr buffer
+ \param mem HNEM handle
+ \param src string
+ \returns duplicated string or NULL if src was NULL
+ */
+YAZ_EXPORT char *nmem_strdup_null(NMEM mem, const char *src);
+
+/** \brief allocates string of certain size on NMEM handle
+ \param mem NMEM handle
+ \param src string
+ \param n size of string
+ \returns duplicated string (0 terminated)
+ */
+YAZ_EXPORT char *nmem_strdupn(NMEM mem, const char *src, size_t n);
+
+/** \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
+*/