Use semicolon as a directory delimiter on Windows
Windows path names have ':' inside as a drive letter separator. The
widespread convention on that platform is to use ';' as a list separator
in file paths, so let's follow suite.
It looks like this multi-value searchdir is only used in `ly_ctx_new()`,
and that all other functions operate on one directory at a time.
diff --git a/src/common.h b/src/common.h
index 4430962..7e80b1e 100644
--- a/src/common.h
+++ b/src/common.h
@@ -629,4 +629,10 @@
*/
LY_ERR ly_strcat(char **dest, const char *format, ...);
+#ifndef _WIN32
+# define PATH_SEPARATOR ":"
+#else
+# define PATH_SEPARATOR ";"
+#endif
+
#endif /* LY_COMMON_H_ */
diff --git a/src/context.c b/src/context.c
index 28a72f1..a29f5fb 100644
--- a/src/context.c
+++ b/src/context.c
@@ -258,7 +258,7 @@
search_dir_list = strdup(search_dir);
LY_CHECK_ERR_GOTO(!search_dir_list, LOGMEM(NULL); rc = LY_EMEM, cleanup);
- for (dir = search_dir_list; (sep = strchr(dir, ':')) != NULL && rc == LY_SUCCESS; dir = sep + 1) {
+ for (dir = search_dir_list; (sep = strchr(dir, PATH_SEPARATOR[0])) != NULL && rc == LY_SUCCESS; dir = sep + 1) {
*sep = 0;
rc = ly_ctx_set_searchdir(ctx, dir);
if (rc == LY_EEXIST) {
diff --git a/src/context.h b/src/context.h
index 1859236..fdd87e2 100644
--- a/src/context.h
+++ b/src/context.h
@@ -214,8 +214,9 @@
* also affects the number of instances of both tree types. While you can have only one instance of
* specific schema connected with a single context, number of data tree instances is not connected.
*
- * @param[in] search_dir Directory where libyang will search for the imported or included modules
- * and submodules. If no such directory is available, NULL is accepted.
+ * @param[in] search_dir Directory (or directories) where libyang will search for the imported or included modules
+ * and submodules. If no such directory is available, NULL is accepted. Several directories can be specified,
+ * delimited by colon ":" (on Windows, use semicolon ";" instead).
* @param[in] options Context options, see @ref contextoptions.
* @param[out] new_ctx Pointer to the created libyang context if LY_SUCCESS returned.
* @return LY_ERR return value.