+/** \brief checks whether path is absolute
+ \param path path to checked
+ \retval 1 path is absolute
+ \retval 0 path is relative
+*/
+YAZ_EXPORT int yaz_is_abspath(const char *path);
+
+/** \brief get next path component in filepath
+ \param path_p pointer to path (updated to "next" entry if any)
+ \param comp upon pointer to component (if component is found)
+ \retval 0 no component found (and no more componennts)
+ \retval >0 length of component (length of *comp)
+
+ A filepath has components separted by colon. For example
+ /usr/lib/modules:c:/my:/:lib
+ which has these components
+ "/usr/lib/modules", "c:/my", "/", "lib"
+*/
+YAZ_EXPORT size_t yaz_filepath_comp(const char **path_p, const char **comp);
+
+
+/** \brief resolve file on path
+ \param fname "short" filename (without path)
+ \param path the path (dir1:dir2,..) - ala Unix
+ \param base can be added to relative paths (NULL for no append)
+ \param fullpath the full path to filename (if successful)
+ \returns fullpath or NULL if file could not be found
+
+ Be sure to allocate at least 1024 bytes for fullpath
+*/
+YAZ_EXPORT char *yaz_filepath_resolve(const char *fname, const char *path,
+ const char *base, char *fullpath);
+
+
+/** \brief opens first file in path in path
+ \param fname "short" filename (without path)
+ \param mode mode as in fopen(3)
+ \param path the path (dir1:dir2,..) - ala Unix
+ \param base can be added to relative paths (NULL for no append)
+ \returns FILE pointer if fname could be found; NULL otherwise
+*/
+YAZ_EXPORT FILE *yaz_fopen(const char *path, const char *fname,