summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-09-20 21:50:26 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-09-21 11:35:20 -0700
commita817f4b547b4193d31154fd0ff7f5190ccae76a5 (patch)
tree27d82a086d9b653badc422f7531fd8323570f2e9
parent8a8ad3f9978c47d9ba10085236e6e6722949b5e2 (diff)
downloadsubsurface-a817f4b547b4193d31154fd0ff7f5190ccae76a5.tar.gz
Use the last (or only) filename on command line as default for saving
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--dive.h1
-rw-r--r--gtk-gui.c8
-rw-r--r--parse-xml.c4
3 files changed, 12 insertions, 1 deletions
diff --git a/dive.h b/dive.h
index 85fdabf5d..9cdfd61b0 100644
--- a/dive.h
+++ b/dive.h
@@ -195,6 +195,7 @@ static inline struct dive *get_dive(unsigned int nr)
extern void parse_xml_init(void);
extern void parse_xml_file(const char *filename, GError **error);
+extern void set_filename(const char *filename);
extern void show_dive_info(struct dive *);
extern void flush_dive_info_changes(struct dive *);
diff --git a/gtk-gui.c b/gtk-gui.c
index 1a3838e67..3994387ac 100644
--- a/gtk-gui.c
+++ b/gtk-gui.c
@@ -651,3 +651,11 @@ void update_progressbar(progressbar_t *progress, double value)
{
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress->bar), value);
}
+
+
+void set_filename(const char *filename)
+{
+ if (filename)
+ existing_filename = strdup(filename);
+ return;
+}
diff --git a/parse-xml.c b/parse-xml.c
index 22ab8458e..1eb6e95fd 100644
--- a/parse-xml.c
+++ b/parse-xml.c
@@ -1380,7 +1380,9 @@ void parse_xml_file(const char *filename, GError **error)
}
return;
}
-
+ /* we assume that the last (or only) filename passed as argument is a
+ * great filename to use as default when saving the dives */
+ set_filename(filename);
reset_all();
dive_start();
traverse(xmlDocGetRootElement(doc));