#include "mapcache.h"
#include "background.h"
#include "dems.h"
+#include "babel.h"
#include "curl_download.h"
#include "preferences.h"
#include "globals.h"
void a_datasource_gc_init();
#endif
+#ifdef HAVE_STDLIB_H
#include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
#include <string.h>
+#endif
#include <glib/gprintf.h>
#include <glib/gi18n.h>
static guint window_count = 0;
static VikWindow *new_window ();
-static void open_window ( VikWindow *vw, const gchar **files );
+static void open_window ( VikWindow *vw, GSList *files );
static void destroy( GtkWidget *widget,
gpointer data );
return NULL;
}
-static void open_window ( VikWindow *vw, const gchar **files )
+static void open_window ( VikWindow *vw, GSList *files )
{
- VikWindow *newvw = new_window();
- gboolean change_fn = (!files[1]); /* only change fn if one file */
- if ( newvw )
- while ( *files ) {
- vik_window_open_file ( newvw, *(files++), change_fn );
+ gboolean change_fn = (g_slist_length(files) == 1); /* only change fn if one file */
+ GSList *cur_file = files;
+ while ( cur_file ) {
+ // Only open a new window if a viking file
+ gchar *file_name = cur_file->data;
+ if (vw != NULL && check_file_magic_vik ( file_name ) ) {
+ VikWindow *newvw = new_window();
+ if (newvw)
+ vik_window_open_file ( newvw, file_name, change_fn );
+ }
+ else {
+ vik_window_open_file ( vw, file_name, change_fn );
}
+ g_free (file_name);
+ cur_file = g_slist_next (cur_file);
+ }
+ g_slist_free (files);
}
/* Options */
a_download_init();
curl_download_init();
+ a_babel_init ();
+
/* Init modules/plugins */
modules_init();
gtk_main ();
gdk_threads_leave ();
+ a_babel_uninit ();
+
a_background_uninit ();
a_mapcache_uninit ();
a_dems_uninit ();