From 2e314b58091c3afb1cf2734608125569c737d9db Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 28 May 2016 13:25:01 -0400 Subject: [PATCH] data: flatten only returns historical data --- src/data.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/data.cpp b/src/data.cpp index 71ecf069..53def4f6 100644 --- a/src/data.cpp +++ b/src/data.cpp @@ -29,6 +29,7 @@ #include #include #include +#include //////////////////////////////////////////////////////////////////////////////// // A filter is just another interval, containing start, end and tags. @@ -385,11 +386,22 @@ std::vector flatten ( if (interval.range.encloses (e)) enclosed.push_back (e); + Datetime now; for (auto& result : subtractRanges ({interval.range}, enclosed)) { Interval chunk {interval}; chunk.range = result; - all.push_back (chunk); + + // Only historical data is included. + if (chunk.range.start <= now) + { + // A future range.end should be truncated. + if (! chunk.range.is_open () && + chunk.range.end >= now) + chunk.range.end = now; + + all.push_back (chunk); + } } /*