- Many files were missing an explicit cmake.h include. Some were not including
it at all. Now it's used almost everywhere.
(cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98)
- Added special case support for '--version' which bypasses all
configuration. Not documented. For extension prgorams like
'taskhelm', that need to determine whether taskwarrior is
sufficiently current.
- Implemented custom uuid function that doesn't suffer from the precision
and cyclic lack of randomness of the previous implementation.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
- Added proper handling for sequences, in that they must be contiguous.
- Added placeholder code for default command, and automatic info report.
- Eliminated Context::parse.
- Eliminated Context::run Timer, because when it goes out of scope, it
adds timing messages to the deubg output, which at the end of Context::run
has already been displayed. In addition, the Context::dispatch timer
is about 0.2 milliseconds shorter, so the two are redundant.
- Obsoleted Command::exectute 'commandLine' argument. It is worse
than unnecessary, it is an uncategorized raw argument string, which
is only really useful for the 'execute' command, which itself now
calls Arguments::combine to reconstruct the command line string.
- Implemented Arguments::extract_command to locate the command
keyword in an argument list.
- Implemented Arguments::extract_sequence to locate and remove an ID
sequence from an argument list.
- Added unit test for extract_sequence.
- Stubbed all Argument::extract_<object> methods.
- Simplified code in (soon to be obsolete) Sequence.cpp.
- Implemented stubbed Context::initialize2.
- Implemented combined command line.
- Migrated some code from Context::initialize to ::initialize2.
- Integrated ::initialize2 into the startup sequence.
- Implemented Context::dispatch2.
- Integrated ::dispatch2 into the run sequence.
- Implemented Context::updateXtermTitle.
- Added debug messages to new Command objects.
- Implemented CmdLogo, which implements the _logo command, for fun.
- Removed unnecessary base class overrides from Cmd* objects.
- Added en-US.h, which will be a header file full of string defines.
- Added logic to i18n.h to include en-US.h based on cmake command
line argument (cmake ... -DPACKAGE_LANGUAGE=1).
- Added one sample string.
- New 'ids' command that returns a filtered set of task ID numbers, instead
of the actual tasks. For advanced pipeline use.
- Now supplements the command line with data read from standard input, which
allows commands like: echo 'add Pay the bills' | task
- Fixed bug caused by using a high-resolution timer (gettimeofday) on
Windows, which only has a 10ms resolution timer. Consequently the
random number seed used was from a significantly reduced pool, which
leads to duplicate UUIDs.
- Fixed bug that failed to anchor to end of string when searching for
"cal" or "itask", but instead matched on elements of the path,
like /usr/local/bin. Thanks to Eric Farris.
- Fixed bug that was causing more non-unique UUIDs. Here are the
changes made:
- Task.cpp, tasks are no longer provided with a UUID in Task::Task.
This prevents the global context.task from being constructed before
srandom/srand is called.
- main.cpp, instead of srandom/srand (time (NULL)), it now uses
struct timeval tv_usec member, which has a micro-second granularity,
instead of time (NULL) which has a second granularity. When
"task add ..." is called in a unit test, several calls are made per
second, this the random number generator is seeded with the same
value.
- Modified the unit test to cover all 6 tasks created, instead of
5.
- Fixed bug that caused code to use a combination of srandom and rand,
or srand and random. Should be srandom/random, srand/rand, not a
mix.
- Fixed bug that failed to set uuid in handleAdd, such that the uuid
already assigned in context.task was used, which was generated before
srand/srandom was is called.
- Relocated longUsage and shortUsage to report.cpp, where they belong,
which has the positive side effect of allowing all the compiled unit
tests to link.
- Renamed files task.h -> main.h, task.cpp -> main.cpp. This is to
prepare for the next rename, which addresses the OpenBSD bug.
- Removed utf8.h, utf8.cpp from Makefile.am, which were inadvertantly
added.