From d51d6ccadf77346a454bb62abf1a42f605ee515b Mon Sep 17 00:00:00 2001
From: Joakim Bygdell <j.bygdell@gmail.com>
Date: Thu, 21 May 2015 19:55:28 +0200
Subject: [PATCH] Be more precise about the safety-stop.

There is no point in doing a stop at 5m if the last manual waypoint is shallower.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
---
 planner.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/planner.c b/planner.c
index 92ddc84..3c9b9df 100644
--- a/planner.c
+++ b/planner.c
@@ -807,7 +807,7 @@ void track_ascent_gas(int depth, cylinder_t *cylinder, int avg_depth, int bottom
 		if (deltad > depth)
 			deltad = depth;
 		update_cylinder_pressure(&displayed_dive, depth, depth - deltad, TIMESTEP, prefs.decosac, cylinder, true);
-		if (depth <= 5000 && safety_stop){
+		if (depth <= 5000 && depth >= (5000 - deltad) && safety_stop) {
 			update_cylinder_pressure(&displayed_dive, 5000, 5000, 180, prefs.decosac, cylinder, true);
 			safety_stop = false;
 		}
@@ -978,7 +978,7 @@ bool plan(struct diveplan *diveplan, char **cached_datap, bool is_planner, bool
 						       TIMESTEP, po2, &displayed_dive, prefs.decosac);
 			clock += TIMESTEP;
 			depth -= deltad;
-			if (depth <= 5000 && safety_stop) {
+			if (depth <= 5000 && depth >= (5000 - deltad) && safety_stop) {
 				plan_add_segment(diveplan, clock - previous_point_time, 5000, gas, po2, false);
 				previous_point_time = clock;
 				clock += 180;
-- 
2.3.2 (Apple Git-55)

