if (!viking_dir) {
viking_dir = a_get_viking_dir_no_create ();
if (g_file_test(viking_dir, G_FILE_TEST_EXISTS) == FALSE)
- g_mkdir(viking_dir, 0755);
+ if ( g_mkdir(viking_dir, 0755) != 0 )
+ g_warning ( "%s: Failed to create directory %s", __FUNCTION__, viking_dir );
}
return viking_dir;
}
gchar **
a_get_viking_data_path()
{
+#ifdef WINDOWS
+ // Try to use from the install directory - normally the working directory of Viking is where ever it's install location is
+ const gchar *xdg_data_dirs = "./data";
+ //const gchar *xdg_data_dirs = g_strdup ( "%s/%s/data", g_getenv("ProgramFiles"), PACKAGE );
+#else
const gchar *xdg_data_dirs = g_getenv("XDG_DATA_DIRS");
+#endif
if (xdg_data_dirs == NULL)
{
/* Default value specified in
*/
xdg_data_dirs = "/usr/local/share/:/usr/share/";
}
- gchar **data_path = g_strsplit(xdg_data_dirs, ":", 0);
+
+ gchar **data_path = g_strsplit(xdg_data_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
+
+#ifndef WINDOWS
/* Append the viking dir */
gchar **path;
for (path = data_path ; *path != NULL ; path++)
*path = g_build_filename(dir, PACKAGE, NULL);
g_free(dir);
}
+#endif
return data_path;
}