Commit Graph

68 Commits

Author SHA1 Message Date
Dustin J. Mitchell
c95dc9d149 Ignore SIGPIPE (#3627)
This replicates what the Rust runtime does, and matches what Rust code
expects, for example when writing to a socket which is no longer
connected to the remote end.
2024-09-22 18:57:46 -04:00
Dustin J. Mitchell
4ff63a7960 Use TaskChampion 0.7.0, now via cxx instead of hand-rolled FFI (#3588)
TC 0.7.0 introduces a new `TaskData` type that maps to Taskwarrior's
`Task` type more cleanly. It also introduces the idea of gathering lists
of operations and "committing" them to a replica.

A consequence of this change is that TaskChampion no longer
automatically maintains dependency information, so Taskwarrior must do
so, with its `TDB2::dependency_sync` method. This method does a very
similar thing to what TaskChampion had been doing, so this is a shift of
responsibility but not a major performance difference.

Cxx is .. not great. It is missing a lot of useful things that make a
general-purpose bridge impractical:

 - no support for trait objects
 - no support for `Option<T>` (https://github.com/dtolnay/cxx/issues/87)
 - no support for `Vec<Box<..>>`

As a result, some creativity is required in writing the bridge, for
example returning a `Vec<OptionTaskData>` from `all_task_data` to allow
individual `TaskData` values to be "taken" from the vector.

That said, Cxx is the current state-of-the-art, and does a good job of
ensuring memory safety, at the cost of some slightly awkward APIs.

Subsequent work can remove the "TDB2" layer and allow commands and other
parts of Taskwarrior to interface directly with the `Replica`.
2024-08-11 02:06:00 +00:00
Felix Schurk
93356b39c3 add initial bulk run from pre-commit over all files 2024-07-29 22:34:51 +02:00
Felix Schurk
954d3f5058 add blank line between cmake.h header include to prevent sorting
* add required comment in the line below cmake.h include header
2024-07-29 22:33:17 +02:00
Tomas Babej
3a00956144 ColDepends: Allow specifying short(er) UUIDs 2021-12-03 03:57:37 -05:00
Tomas Babej
0bc92d6115 meta: Adjust copyright headers 2021-09-05 12:02:07 -04:00
Tomas Babej
9017cd6e53 doc: Update copyright to 2021 2021-01-02 02:48:22 -05:00
Tomas Babej
a09f9d48ab Update copyright to 2020 2020-11-21 12:27:05 -05:00
Tomas Babej
8066e4e6e2 meta: Update copyright year 2019-01-01 08:46:21 -05:00
Simon Ruderich
e817dfc800 Always use https:// link for opensource.org
It was already used in a few places, make this consistent.
2018-03-04 14:53:07 +01:00
Mark Scannell
7af6db4c17 Portability: Updated to make main re-entrant()
- New INSTALL instructions to emscripten, and AUTHORS for contribution.
2018-01-31 19:45:07 -05:00
Paul Beckingham
0b790f46a1 l10n removal of STRING_UNKNOWN_ERROR 2018-01-07 12:57:21 -05:00
Paul Beckingham
0de169bb10 Copyright 2018 2017-12-31 19:22:07 -05:00
Paul Beckingham
f7d4ec0b79 main: Code cleanup 2017-01-26 19:54:51 -05:00
Paul Beckingham
a50e65a134 Copyright update 2017-01-01 12:30:04 -05:00
Paul Beckingham
641d232dea Copyright: Updated to 2016 2015-12-31 15:06:43 -05:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
489750c80a Errors
- Added error handling for std::bad_alloc.
2014-10-09 18:09:38 -04:00
Paul Beckingham
523dce8f32 Code Cleanup
- Standardized headers.
2014-02-01 14:33:37 -05:00
Paul Beckingham
aa70a14a2d Documentation
- Added comment explaining why '--version' is supported in main.cpp, as several
  questions have come up.
2014-01-19 13:40:24 -05:00
Paul Beckingham
8ed92ca498 Copyright
- Bumped copyright to 2014, ready for release.
2014-01-01 13:32:22 -05:00
Paul Beckingham
82f4603a6b Bug #1195
- #1195 Random seed not random enough - removed all random number code (thanks
  to Jakub Wilk).
2013-09-07 12:44:57 -04:00
Martin Natano
4d10afbb08 remove missing imports
- time.h was included for random seed
2013-07-21 11:27:41 -04:00
Paul Beckingham
bda3674578 Code Cleanup
- Removed the rand/random/srand/srandom calls that are no longer used.
2013-07-20 16:07:25 -04:00
Paul Beckingham
d03c4cda8a Build Error
- 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)
2013-06-02 13:57:36 -04:00
Paul Beckingham
773b55d374 Code Cleanup
- Removed L10N define.  It served its purpose.
2013-04-07 23:50:51 -04:00
Paul Beckingham
1dccd29643 Copyright 2013
- Updated copyright notices.
2013-03-04 17:47:12 -05:00
Scott Kostyshak
7a6cdde571 Code Cleanup
- Constify some catches.
2012-09-04 22:04:41 -04:00
Louis-Claude Canon
b45a305df2 Enhancement
- Output error, header, footnote and debug messages on standard error.
2012-06-16 16:07:27 -04:00
Ralph Bean
184ba60df4 Portability
- Fixed GCC 4.3 compilation error.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-17 18:12:27 -05:00
Paul Beckingham
fe467640ca Bug #902 - 'task version' requires a .taskrc
- 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.
2012-01-16 22:44:59 -05:00
Paul Beckingham
6580095002 Copyright
- Year change.
2012-01-02 23:32:10 -05:00
Federico Hernandez
8116c6a103 License
- moving task from GPL to MIT license
  top level src directory
2011-10-08 00:04:01 +02:00
Paul Beckingham
01253f1cdf Error Handling
- Errors that occur during initialization no longer prevent the
  display of debug info.
2011-07-06 22:52:59 -04:00
Owen Clarke
3b2e93f1a0 Bug #772
- 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>
2011-07-01 15:34:41 -04:00
Owen Clarke
3af5194442 Bug #797
- Fixed bug #797 which corrects a build problem with 'srandom' (thanks to Owen
  Clarke).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2011-07-01 09:04:52 -04:00
Paul Beckingham
76b30d8d10 L10N
- More file conversions.
2011-06-11 14:57:11 -04:00
Paul Beckingham
f9c1820740 Argument Parsing
- 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.
2011-06-04 18:42:33 -04:00
Paul Beckingham
644d027a87 Argument Parsing
- 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.
2011-06-04 12:33:58 -04:00
Paul Beckingham
306f10b420 Command Line Parsing
- 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.
2011-05-28 12:09:25 -04:00
Paul Beckingham
8fabffe18c Code Cleanup
- Eliminated '#include "x"' by changing all to '#include <x>'.
2011-05-28 00:19:59 -04:00
Paul Beckingham
d892a0cbd2 Code Cleanup
- Fixed comments, compilation warnings.
- Decomposed Context::initialize into several, single-purpose methods.
- Replaced Context::initialize with Context::initialize2.
2011-05-24 19:37:03 -04:00
Paul Beckingham
557440db0c Commands
- 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.
2011-05-14 12:18:39 -04:00
Paul Beckingham
139e55fca3 Code Cleanup
- Eliminated "itask" interactive mode code.
2011-04-12 20:47:41 -04:00
Paul Beckingham
976e480903 i18n
- 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.
2011-03-29 23:18:02 -04:00
Paul Beckingham
c502f0216a i18n
- Eliminated StringTable.{h,cpp}.
- Eliminated strings.<locale> files.  This is not the way to do it.
2011-03-27 02:06:09 -04:00
Paul Beckingham
9470e9af17 New 'ids' command, and stdin reading
- 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
2011-03-16 00:53:29 -04:00
Federico Hernandez
4de854a3c3 CMake
- zapped autoh*ll from build system. No more pain.
2011-03-04 03:58:55 +01:00
Paul Beckingham
462caf5bd4 Copyright
- Updated copyright to 2011.
2010-12-31 22:03:05 -05:00
Paul Beckingham
31cf470cc8 Copyright
- Made all the copyright notices consistent.  It was bothering me.
2010-11-27 09:13:09 -05:00