Commit graph

109 commits

Author SHA1 Message Date
Paul Beckingham
45262be011 Bug #860
- Fixed bug #860, which prevented lower-case priority values from being
  accepted (thanks to Michelle Crane).
- Added unit tests.
- Also included ChangeLog updates from other fixes that were misseed.
2011-10-16 00:46:13 -04:00
Paul Beckingham
3786e6cff3 Confirmation
- The 'delete' command now requires confirmation by default, unless
  rc.confirmation=off.  Implemented properly this time.
2011-10-15 23:06:38 -04:00
Paul Beckingham
548272fb3a Confirmation
- Removed confirmation override imposed by the 'delete' command.  Consistency
  prevails.
2011-10-15 19:11:55 -04:00
Paul Beckingham
6aee2fc7b9 Permissions
- Merged old Permission functionality into Command::permission, and
  updated it to handle single vs bulk updates and verbosity tokens.
2011-10-14 01:52:33 -04:00
Federico Hernandez
961a1a9366 License
- moving from GPL to MIT license
  src/commands
2011-10-08 01:13:30 +02:00
Paul Beckingham
de481a7eba Help
- Made all the usage strings for the 'help' command consistent with the
  implementation and with visual alignment.
2011-10-01 00:42:27 -04:00
Paul Beckingham
63203cd91a Minor Edits 2011-09-24 10:59:13 -04:00
Paul Beckingham
e478f6626b Bug #835
- Fixed bug #835, which prevented hierarchical projects from being recognized.
2011-09-21 00:19:42 -04:00
Paul Beckingham
776bfea402 Dependencies
- Fixed bug in Task::addDependency where a 'dup dep' error string was not
  properly composed, which cause the error message to be shown as 'k'.
- Relocated expression evaluation on modification to only be processed for
  date attributes.  This impacts DOM, but fixes more than it breaks.
- Corrected unit test that was expecting an old-style error message.
- Added protection against array overrun in next_mod_group.  Again.
2011-09-12 23:53:46 -04:00
Paul Beckingham
02047a6e99 Legacy
- Created legacy checking function to determine whether deprecated or obsolete
  attributes are being used.
2011-09-12 22:45:58 -04:00
Paul Beckingham
dcc0ab19c2 Bug
- Fixed crash bug on Linux where Command::next_mod_group just walked off
  the end of a vector.
2011-09-11 11:46:19 -04:00
Paul Beckingham
e31e80961a Expressions
- Implemented Command::next_mod_group, which walks the A3 list looking for
  consecutive grouped args for modification purposes.
2011-09-11 00:49:56 -04:00
Paul Beckingham
47b948c866 Command - synchronize
- Added a placeholder synchronize command, which will be implemented
  in mumble for the mumble mumble.
2011-09-05 08:49:10 -04:00
Paul Beckingham
fa973f734b Safety Valve
- Added safety valve processing.  Whenever a write-command omits a
  filter, the command will affect every task.  This is dangerous.
  If rc.confirmation is disabled, the command is terminated.
2011-09-04 08:44:22 -04:00
Paul Beckingham
e379af9751 Task Validation
- Removed the newly obsoleted Command::apply_defaults, which is now
  merged into Task::validate, and therefore applied to all modifications
  and new tasks.
2011-09-03 11:19:45 -04:00
Paul Beckingham
ab931b6af2 Legacy
- Added legacy warnings about use of fg: or bg:.
2011-08-27 14:29:08 -04:00
Paul Beckingham
1dc2257156 TDB2 Conversion
- Migrated several commands over to use TDB2.  Have to start somewhere.
2011-08-23 00:47:46 -04:00
Paul Beckingham
589627852f Duration Bug
- Removed the unnecessary ::getInt parse before ::getNumber, which was
  causing "-1.2d" to not parse.
- Removed verbose debug statement.
2011-08-21 23:32:37 -04:00
Paul Beckingham
7aa4efef8d Expression Refactor
- Refactoring complete.  Arg objects now uses enumerations for _type
  and _category, which should help with performance.
2011-08-21 01:06:50 -04:00
Paul Beckingham
ee2960b9b0 Date/Duration Distinction
- When a date attribute is updated, the expression may have evaluated to
  a duration, which at this point is simply a number.  If it is below a
  certain threshold (5y) then it is considered a duration and added to
  'now', otherwise it is considered a date.
2011-08-16 23:50:26 -04:00
Paul Beckingham
ac9d1f3bfa Performance Timing
- Change the was performance measurements are taken.  This in preparation
  to automated daily perf charts, leading to efforts to speed up certain
  operations.
2011-08-15 21:53:01 -04:00
Paul Beckingham
ad38d5b92e Bug - File open issue
- If a file (pending.data) is open and locked, trying to open it again
  caused an error, whereas is now does nothing and reports success.
- Corrected timing info in Command::filter.
2011-08-14 21:23:01 -04:00
Paul Beckingham
f3f6cd260a E9 - Typo
- In one of the dumbest typos yet, I entered "fasle" instead of "false"
  and the copy/pasted it around.
2011-08-14 10:04:04 -04:00
Paul Beckingham
30034f057b Bug - A3::extract_modifications
- Broadened the list of argument categories that are downgraded to
  'word' for the purpose of task modification.
2011-08-13 16:24:07 -04:00
Paul Beckingham
e2a8f85a2f Task Refactoring
- Task is no longer a map of string to Att.  Att is itself a name/
  value pair, so the name was redundant.  Task is now a map of string
  to string.  This brings the obsoletion of Att much closer.
2011-08-07 22:41:25 -04:00
Paul Beckingham
ffa5bc43fe E9
- Working towards arg date/duration eval.
2011-08-06 00:59:14 -04:00
Paul Beckingham
40a71e2aae Feature #811
- Added feature #811, which makes the 'execute' command optional, and
  controlled by '#define HAVE_EXECUTE 1' in cmake.h.  This allows a build
  that does not have the potential security hole, in the event that taskwarrior
  is run at elevated privilege, or run in the context of a web server.
2011-07-28 00:14:33 -04:00
Paul Beckingham
7e3a207d63 Bug #808
- Fixed bug #808, which generated compiler warnings on Solarix (thanks to
  Owen Clarke).
2011-07-26 21:40:31 -04:00
Paul Beckingham
0c08b29e48 Code Cleanup
- Eliminated obsolete Arguments.h, Arguments.cpp.
2011-07-26 00:25:57 -04:00
Paul Beckingham
ab8a6d9e88 Code Cleanup
- Eliminated Expression.{h,cpp}.  E9 now replaces it.
2011-07-25 23:53:41 -04:00
Paul Beckingham
83c0ea6ab2 E9
- Implemented the shell of E9::eval.
- Stubbed out operator_xxx helper methods.
2011-07-25 22:59:47 -04:00
Paul Beckingham
67fb1e9be4 Expression reboot
- Downgraded A3::extract_words to return a simple vector of strings.
  Any more is unnecessary.
2011-07-24 16:44:05 -04:00
Paul Beckingham
94dfc68cca Expression reboot
- A3::tokenize recognizes strings, patterns, attr, ops, dates.
- A3::tokenize canonicalizes attributes.
2011-07-24 01:06:26 -04:00
Paul Beckingham
91225d808f Expression reboot
- A3 now tracks whether a command is read-only, and builds filters accordingly.
- Implemented extract_filter, extract_modfications and extract_words stubs.
- Removed all E9 implementation details - this is going to be written from
  scratch.
2011-07-23 23:39:11 -04:00
Paul Beckingham
dd75c1af1e Expressions
- Attribute values are now run through the expression evaluator.  This
  is good.  The evaluator fails.  This is bad, but progress has been
  made.
2011-07-17 15:33:09 -04:00
Paul Beckingham
137b00a14a Expressions
- Commented out troublesome "distance_from_command" code.
- Commented out DOM diagnostics, for now.
- Commented out TDB2 diagnostics, for now.
- Category "seq" arguments are now assigned type "exp".
- All type "exp" arguments are now tokenized.
2011-07-17 13:52:55 -04:00
Paul Beckingham
e08d840ba1 Expressions
- Broke out expression handling into two distinct flavors: filter
  and expression.  Filters need lots of preparation and mapping,
  which includes implicit 'AND' operators, expansion of syntactic
  sugar like /pattern/ etc and evaluate to a Boolean.  Expressions
  are simpler wiht less preparation, and evaluate to a Variant.
2011-07-17 12:04:38 -04:00
Paul Beckingham
05a53778ea Helper Command
- Implemented _columns to simply list all supported columns, in a
  machine-readable format.
2011-07-16 13:18:06 -04:00
Paul Beckingham
27a04b29f5 Feature #800
- Added feature #800, adding a new command 'columns' that lists all the columns
  available for custom reports, and includes their formatting options (thanks
  to T. Charles Yun).
2011-07-16 13:08:23 -04:00
Paul Beckingham
3a5370ddf1 Filters
- Implemented Command::filter_shortcut to detect when a filter begins
  with "status:pending" and skip the loading/parsing of completed.data.
- Removed obsolete att.t.cpp tests.
- Removed diagnostics from TDB2::TDB2 that were causing a segfault.
  I suppose there is no std::cout available during global ctors?
2011-07-14 00:46:01 -04:00
Paul Beckingham
424dc50a36 Command - install
- Temporarily removed CmdInstall from the build.  This is deferred
  until 2.1 or so, when extensions are supported.
2011-07-14 00:04:07 -04:00
Paul Beckingham
8827f9c978 TDB2
- Implemented CmdAdd.cpp and CmdLog.cpp using TDB2.
- Implemented simple append writes in TDB2.
- Modified CmdImport to accept and parse JSON.
- Added more const-ness in DOM, Expression and Task, to allow TDB2::get_tasks
  to return a const vector ref, which is a Very Good Thing.
- Corrected usage for the export command.
- Implemented Task::urgency as a call to Task::urgency_c, which is a const
  overload to allow urgency calculations (without caching) for const Task
  objects.
- Removed obolete code from TDB.
- Added lots of diagnostic output for TDB2 - it's annoying, but will be
  gone soon.
- Added mention in CmdHelp of the new <filter> and <modifications>
  syntax elements.  Needs more.
- Added Command::filter overload which uses TDB2.  Not in use yet.
2011-07-13 23:53:57 -04:00
Paul Beckingham
4d410972d4 Command Usage
- Enhanced CmdHelp by adding aliases.
- Corrected usage for CmdModify.
- Renamed CmdQuery --> CmdExport.
- Added an alias _query --> export.
2011-07-12 00:51:05 -04:00
Paul Beckingham
d087bdfd38 Enhancement
- Various commands now allow modification and annotation.
2011-07-09 23:45:31 -04:00
Paul Beckingham
1cb4d19c3c Argument Parsing
- On task modification, all attributes are canonicalized.
2011-07-09 09:51:19 -04:00
Paul Beckingham
33bb6b6d85 Expressions
- Improved categorization by using the Triple to represent the three
  (raw/inferred/category) values to aid in extraction.
2011-07-04 11:58:55 -04:00
Paul Beckingham
42becb9e41 Expressions/Arguments
- Converted the arguments parsed from a pair (token/modified-category)
  to a triple (token/type/category)
2011-07-02 11:47:39 -04:00
Paul Beckingham
e1aea08f81 Unit Tests
- Fixed test that assumed old-style command usage.
- Corrected duration unit tests.
2011-07-02 10:09:37 -04:00
Paul Beckingham
32cbe7a049 Bug
- rc.default.due needs to be converted to an epoch before storage.
2011-06-26 23:45:17 -04:00
Paul Beckingham
877ecbc864 Commands - done
- The 'done' command now functional.
- Localized CmdDone.cpp.
2011-06-26 23:28:21 -04:00