diff --git a/src/Task.cpp b/src/Task.cpp index 5d5519d18..9ef0aa969 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -150,6 +150,16 @@ void Task::setEnd () recalc_urgency = true; } +//////////////////////////////////////////////////////////////////////////////// +void Task::setStart () +{ + char startTime[16]; + sprintf (startTime, "%u", (unsigned int) time (NULL)); + set ("start", startTime); + + recalc_urgency = true; +} + //////////////////////////////////////////////////////////////////////////////// Task::status Task::getStatus () const { diff --git a/src/Task.h b/src/Task.h index 005e0e47a..8a69a9a57 100644 --- a/src/Task.h +++ b/src/Task.h @@ -60,6 +60,7 @@ public: void setEntry (); void setEnd (); + void setStart (); status getStatus () const; void setStatus (status); diff --git a/src/commands/CmdStart.cpp b/src/commands/CmdStart.cpp index d5ce49afa..2277d94fa 100644 --- a/src/commands/CmdStart.cpp +++ b/src/commands/CmdStart.cpp @@ -87,9 +87,7 @@ int CmdStart::execute (std::string& output) apply_defaults (*task); // Add a start time. - char startTime[16]; - sprintf (startTime, "%u", (unsigned int) time (NULL)); - task->set ("start", startTime); + task->setStart (); if (context.config.getBoolean ("journal.time")) task->addAnnotation (context.config.get ("journal.time.start.annotation")); diff --git a/test/args.5.t b/test/args.5.t index bcef61bc0..4e90cddac 100755 --- a/test/args.5.t +++ b/test/args.5.t @@ -46,6 +46,12 @@ qx{../src/task rc:args.rc add three}; qx{../src/task rc:args.rc add four}; qx{../src/task rc:args.rc add five}; +qx{../src/task rc:args.rc 1 start}; +qx{../src/task rc:args.rc 2 start}; +qx{../src/task rc:args.rc 3 start}; +qx{../src/task rc:args.rc 4 start}; +qx{../src/task rc:args.rc 5 start}; + qx{../src/task rc:args.rc 1 stop oneanno}; my $output = qx{../src/task rc:args.rc 1 info}; like ($output, qr/oneanno/, 'stop enpassant anno');