[PATCH] Support for imperial depth on worldmap export

Miika Turkia miika.turkia at gmail.com
Sun Jan 10 02:12:39 PST 2016


This will use the depth units from user preferences when exporting the
worldmap.

Signed-off-by: Miika Turkia <miika.turkia at gmail.com>
---
 subsurface-core/save-html.c     | 23 +++++++++++++++++++++++
 subsurface-core/save-html.h     |  1 +
 subsurface-core/worldmap-save.c |  6 +++---
 3 files changed, 27 insertions(+), 3 deletions(-)

diff --git a/subsurface-core/save-html.c b/subsurface-core/save-html.c
index 64ce94f..5fc5b00 100644
--- a/subsurface-core/save-html.c
+++ b/subsurface-core/save-html.c
@@ -259,6 +259,29 @@ void put_HTML_time(struct membuffer *b, struct dive *dive, const char *pre, cons
 	put_format(b, "%s%02u:%02u:%02u%s", pre, tm.tm_hour, tm.tm_min, tm.tm_sec, post);
 }
 
+void put_HTML_depth(struct membuffer *b, struct dive *dive, const char *pre, const char *post)
+{
+	const char *unit;
+	double value;
+	struct units *units_p = get_units();
+
+	if (!dive->maxdepth.mm) {
+		put_format(b, "%s--%s", pre, post);
+		return;
+	}
+	value = get_depth_units(dive->maxdepth.mm, NULL, &unit);
+
+	switch (units_p->length) {
+	case METERS:
+	default:
+		put_format(b, "%s%.1f %s%s", pre, value, unit, post);
+		break;
+	case FEET:
+		put_format(b, "%s%.0f %s%s", pre, value, unit, post);
+		break;
+	}
+}
+
 void put_HTML_airtemp(struct membuffer *b, struct dive *dive, const char *pre, const char *post)
 {
 	const char *unit;
diff --git a/subsurface-core/save-html.h b/subsurface-core/save-html.h
index 20743e9..13bb102 100644
--- a/subsurface-core/save-html.h
+++ b/subsurface-core/save-html.h
@@ -9,6 +9,7 @@ extern "C" {
 #include "membuffer.h"
 
 void put_HTML_date(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
+void put_HTML_depth(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
 void put_HTML_airtemp(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
 void put_HTML_watertemp(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
 void put_HTML_time(struct membuffer *b, struct dive *dive, const char *pre, const char *post);
diff --git a/subsurface-core/worldmap-save.c b/subsurface-core/worldmap-save.c
index 25c5ee3..f799784 100644
--- a/subsurface-core/worldmap-save.c
+++ b/subsurface-core/worldmap-save.c
@@ -40,9 +40,9 @@ void writeMarkers(struct membuffer *b, const bool selected_only)
 		snprintf(pre, sizeof(pre), "<p>%s ", translate("gettextFromC", "Duration:"));
 		snprintf(post, sizeof(post), " %s</p>", translate("gettextFromC", "min"));
 		put_duration(b, dive->duration, pre, post);
-		snprintf(pre, sizeof(pre), "<p>%s ", translate("gettextFromC", "Max. depth:"));
-		snprintf(post, sizeof(post), " %s</p>", translate("gettextFromC", "m"));
-		put_depth(b, dive->maxdepth, pre, post);
+		put_string(b, "<p> ");
+		put_HTML_quoted(b, translate("gettextFromC", "Max. depth:"));
+		put_HTML_depth(b, dive, " ", "</p>");
 		put_string(b, "<p> ");
 		put_HTML_quoted(b, translate("gettextFromC", "Air temp.:"));
 		put_HTML_airtemp(b, dive, " ", "</p>");
-- 
2.5.0



More information about the subsurface mailing list