timekeeper

[Abandoned unfinished] CGI web application in C for time tracking. (My first, just a learning project)
Log | Files | Refs | README

commit 5afaee0b5c09dc1ba561780728e95399dc30e477
parent bde9727da6da059fc330e3ee0ae9fe665edd1c34
Author: Jacob R. Edwards <jacob@jacobedwards.org>
Date:   Sun, 31 Mar 2024 18:36:26 -0700

Refactor getduration function

It now only has to check a given variable once, and time(3) is only
called when needed (instead of in every call).

Diffstat:
Mtimes.c | 17+++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/times.c b/times.c @@ -192,18 +192,15 @@ getduration(struct timesheet *ts) o = 0; s = ts->times[StartTime]; - if (ts->set & EndTimeFlag) + if (ts->set & EndTimeFlag) { e = ts->times[EndTime]; - else + } else if (!(ts->set & BreakStartTime)) { e = time(NULL); - - if (ts->set & BreakStartTimeFlag) { - if (ts->set & BreakEndTimeFlag) { - o = ts->times[BreakEndTime] - ts->times[BreakStartTime]; - } else { - assert(!(ts->set & EndTimeFlag)); - e = ts->times[BreakStartTime]; - } + } else if (ts->set & BreakEndTimeFlag) { + o = ts->times[BreakEndTime] - ts->times[BreakStartTime]; + e = time(NULL); + } else { + e = ts->times[BreakStartTime]; } return e - s - o;