summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/timer_state.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/timer_state.cc b/src/timer_state.cc
index 770bbad..c836ffd 100644
--- a/src/timer_state.cc
+++ b/src/timer_state.cc
@@ -281,9 +281,16 @@ private:
<< ": " << strerror(errno) << std::endl;
return false;
}
- if (!parse_state(std::move(data))) {
- std::cerr << "Invalid data in state " << state_file << "." << std::endl;
- return false;
+ if (data.empty()) {
+ // Newly created file.
+ active_ = false;
+ total_ = std::chrono::minutes::zero();
+ } else {
+ if (!parse_state(std::move(data))) {
+ std::cerr << "Invalid data in state " << state_file
+ << "." << std::endl;
+ return false;
+ }
}
return true;
}