Compare commits
314 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
06062a96eb | ||
|
|
7431f0cdd3 | ||
|
|
22f0b1d9fb | ||
|
|
b8187e24ae | ||
|
|
120593887b | ||
|
|
01e5e773eb | ||
|
|
e0fd39db7b | ||
|
|
a39261f82d | ||
|
|
a6b45af0a2 | ||
|
|
daea320564 | ||
|
|
1cbec205f1 | ||
|
|
579232b7ea | ||
|
|
cee8fda236 | ||
|
|
4dda1f0c27 | ||
|
|
0571412da0 | ||
|
|
b4f031e4a7 | ||
|
|
5b1d64960d | ||
|
|
a5fef2cc6b | ||
|
|
8ab3c1cc3c | ||
|
|
2700713c03 | ||
|
|
567bdd98a4 | ||
|
|
25425614b1 | ||
|
|
3b65051e9e | ||
|
|
5f4563af2f | ||
|
|
7e2bd166fa | ||
|
|
41b60f88d3 | ||
|
|
93ec320555 | ||
|
|
c1291dc587 | ||
|
|
57deb83b25 | ||
|
|
e4f5d6579c | ||
|
|
99dc72f26f | ||
|
|
406e648d58 | ||
|
|
db7b2dd9fe | ||
|
|
c31ec6b6a6 | ||
|
|
1a656f0f60 | ||
|
|
5ec0d569a9 | ||
|
|
3979c3283e | ||
|
|
ca795ea281 | ||
|
|
d10e9be500 | ||
|
|
f790df24c5 | ||
|
|
ca933d7f39 | ||
|
|
827bc6204b | ||
|
|
4537d5048e | ||
|
|
74ea5b4ef6 | ||
|
|
cc2220b406 | ||
|
|
7389ce617a | ||
|
|
165001acac | ||
|
|
3d3d788961 | ||
|
|
3c196230dd | ||
|
|
9a350a7dcd | ||
|
|
92579e5531 | ||
|
|
40a538a769 | ||
|
|
b6e4bc966f | ||
|
|
03815967d2 | ||
|
|
7049bf19d9 | ||
|
|
c69c3bb090 | ||
|
|
7238d1f1c9 | ||
|
|
9f82c55c5b | ||
|
|
87be68e2e8 | ||
|
|
7b1dec0d77 | ||
|
|
f8af5d999a | ||
|
|
8efd8620c8 | ||
|
|
e8a795befb | ||
|
|
b5690f00e2 | ||
|
|
65f74da7a4 | ||
|
|
429d0f3071 | ||
|
|
4baf30cf9c | ||
|
|
a3882160fa | ||
|
|
cd85a28e98 | ||
|
|
e33a918c24 | ||
|
|
df82fade2c | ||
|
|
2d2bd47075 | ||
|
|
bdd1b16ba0 | ||
|
|
5383943fa7 | ||
|
|
8ac3978222 | ||
|
|
c9a6d2a750 | ||
|
|
64cfc26ff3 | ||
|
|
7c87bbc19a | ||
|
|
4a524a220e | ||
|
|
2216eee678 | ||
|
|
28c97f181a | ||
|
|
0cfc9c720e | ||
|
|
05b5273136 | ||
|
|
c35a764019 | ||
|
|
8c95e82a63 | ||
|
|
79d644c257 | ||
|
|
2d07b08260 | ||
|
|
1f45e47e36 | ||
|
|
dac1942cad | ||
|
|
6d8cb5181f | ||
|
|
d174bb1143 | ||
|
|
dc946e175e | ||
|
|
9f278b1ffc | ||
|
|
6fade84535 | ||
|
|
0ff33d1c16 | ||
|
|
1999e38ba5 | ||
|
|
17de9fec9f | ||
|
|
751094cffb | ||
|
|
012e47267f | ||
|
|
bd5e91c31f | ||
|
|
9e7844796b | ||
|
|
209f7ffb00 | ||
|
|
28e997691f | ||
|
|
3f418c6fdc | ||
|
|
0362b41f3b | ||
|
|
4fa4c5f532 | ||
|
|
3088e1ebe1 | ||
|
|
6a7c66aa05 | ||
|
|
3b1d396e0a | ||
|
|
463c968cac | ||
|
|
41b8b207d4 | ||
|
|
9535121c1e | ||
|
|
9988ecec5e | ||
|
|
d573599a7e | ||
|
|
d831ab335a | ||
|
|
d7a9d06360 | ||
|
|
d69d658531 | ||
|
|
5c89c0f1be | ||
|
|
964d04322c | ||
|
|
8157c729d6 | ||
|
|
a1b7516cf8 | ||
|
|
1e70400143 | ||
|
|
6e956b45ad | ||
|
|
59a014d866 | ||
|
|
76c9d3565c | ||
|
|
8c484a333d | ||
|
|
0605161236 | ||
|
|
f9272773ac | ||
|
|
e2fca47a27 | ||
|
|
92ba36bdec | ||
|
|
72efddc066 | ||
|
|
bcf512e529 | ||
|
|
6d551357ff | ||
|
|
0219ed4fe3 | ||
|
|
cc7c1819ce | ||
|
|
1a4469d388 | ||
|
|
4e63d93005 | ||
|
|
481a0aa1eb | ||
|
|
6764a6a7ec | ||
|
|
dae268a836 | ||
|
|
096a4b9bdb | ||
|
|
e65a45ce17 | ||
|
|
01b3cb190c | ||
|
|
6faf1e44f5 | ||
|
|
2307dcab8a | ||
|
|
eba05513f7 | ||
|
|
2f7060ce56 | ||
|
|
c28c698bbf | ||
|
|
b55eaf8f16 | ||
|
|
3d4beaf41f | ||
|
|
50ccb67185 | ||
|
|
14d3abacf4 | ||
|
|
857f813a24 | ||
|
|
8639e92606 | ||
|
|
5498986e15 | ||
|
|
eb827603c3 | ||
|
|
6e1dbfb16e | ||
|
|
748300631a | ||
|
|
6d5309527c | ||
|
|
aafcba436e | ||
|
|
28ceeac796 | ||
|
|
ecdfb31553 | ||
|
|
8d920f9dc4 | ||
|
|
5f85550664 | ||
|
|
b548342acc | ||
|
|
ee961daef6 | ||
|
|
ce42ae9622 | ||
|
|
47ffc0babc | ||
|
|
612a183776 | ||
|
|
396d85cd53 | ||
|
|
038f432752 | ||
|
|
ef886dff53 | ||
|
|
2cae1df42f | ||
|
|
82c0fea708 | ||
|
|
d6b30466c1 | ||
|
|
b0e18de1b6 | ||
|
|
b7e889339d | ||
|
|
2a5736b876 | ||
|
|
b176591261 | ||
|
|
c44baf913d | ||
|
|
0987171280 | ||
|
|
47c02965e9 | ||
|
|
ce561a6c43 | ||
|
|
b4b389c27e | ||
|
|
437c85da39 | ||
|
|
62115ea988 | ||
|
|
3ed1269753 | ||
|
|
a5ec1e4b27 | ||
|
|
a815492111 | ||
|
|
f3aa88cf83 | ||
|
|
f26a9c67be | ||
|
|
d837a25be7 | ||
|
|
78fae5195b | ||
|
|
e7304e86ce | ||
|
|
d7b95cb2e1 | ||
|
|
45ed7dcdaa | ||
|
|
d809b6dae7 | ||
|
|
a1cc4e5774 | ||
|
|
21c33f7030 | ||
|
|
2e32457032 | ||
|
|
e4ed873d60 | ||
|
|
e35dcd0e42 | ||
|
|
ec15dc9342 | ||
|
|
fb87039d8c | ||
|
|
e9a71b7db9 | ||
|
|
df215f228d | ||
|
|
4f8f044644 | ||
|
|
4380c7c712 | ||
|
|
4abc722eff | ||
|
|
11225eb599 | ||
|
|
e16bd057d8 | ||
|
|
29a152edb0 | ||
|
|
e99e6832f2 | ||
|
|
ff4e8dbef1 | ||
|
|
d265ac6c2d | ||
|
|
dc1760769f | ||
|
|
c6eb09cd63 | ||
|
|
e080c3168c | ||
|
|
ea06565007 | ||
|
|
4ae189f77d | ||
|
|
ebf4f3cb12 | ||
|
|
4d1cdf0270 | ||
|
|
ceffdca8a2 | ||
|
|
bb7f48496a | ||
|
|
da7cda3c82 | ||
|
|
31a5816fb4 | ||
|
|
a443257aaa | ||
|
|
60b7d15a1d | ||
|
|
2b646b3fa0 | ||
|
|
86f5294436 | ||
|
|
fe03f91744 | ||
|
|
9fcd5b1801 | ||
|
|
2380c8b33a | ||
|
|
849cb65b0e | ||
|
|
84d0dce20c | ||
|
|
2150642f9d | ||
|
|
ec8da0baaa | ||
|
|
cf27fa027b | ||
|
|
01314c753b | ||
|
|
6f7b9b7d42 | ||
|
|
46ded4c026 | ||
|
|
95752390de | ||
|
|
ba342eeeb6 | ||
|
|
0e611eda19 | ||
|
|
17152d8a46 | ||
|
|
947e65c1e2 | ||
|
|
b1aaab0a8e | ||
|
|
1712ad2cde | ||
|
|
79f6ef075e | ||
|
|
97b120de67 | ||
|
|
2181041c8c | ||
|
|
e85d36cea0 | ||
|
|
188b9f36f2 | ||
|
|
6c7ad2b398 | ||
|
|
72c7afe1a1 | ||
|
|
ef7ff55535 | ||
|
|
0d3a93ea20 | ||
|
|
42d164863a | ||
|
|
06d595d944 | ||
|
|
2d66324cb2 | ||
|
|
00b7a5f1b4 | ||
|
|
d199bada33 | ||
|
|
647cbab3f4 | ||
|
|
6066cc3bab | ||
|
|
5c91a0d963 | ||
|
|
1ef7b0c43a | ||
|
|
be6136c1e9 | ||
|
|
5d158d752d | ||
|
|
2d21558a5a | ||
|
|
0034534803 | ||
|
|
3f21a0fe4d | ||
|
|
cc9235033f | ||
|
|
f61c849816 | ||
|
|
195b5a5e0a | ||
|
|
bcae2d2b93 | ||
|
|
3a6de7d940 | ||
|
|
994f98b57a | ||
|
|
44ca388b52 | ||
|
|
06a85c24ad | ||
|
|
ceaba87ba3 | ||
|
|
61acf6239c | ||
|
|
8dc8cdeea7 | ||
|
|
10ef3013e3 | ||
|
|
3899f5352f | ||
|
|
64fbf88f48 | ||
|
|
2e0964aeb8 | ||
|
|
35d878de96 | ||
|
|
d771586080 | ||
|
|
6673e408a2 | ||
|
|
422ad576ea | ||
|
|
c1a1d13aab | ||
|
|
42189ce998 | ||
|
|
43287d7fc9 | ||
|
|
06f6aaaded | ||
|
|
0c17986303 | ||
|
|
feb9959907 | ||
|
|
7409e23ce0 | ||
|
|
4572c97c9d | ||
|
|
9bca303113 | ||
|
|
7fb3ab0c3d | ||
|
|
56037fe3bc | ||
|
|
a2f8ce41cf | ||
|
|
598bd3b4ef | ||
|
|
315a7d69fb | ||
|
|
64fff6c2ff | ||
|
|
969ecd7b5d | ||
|
|
cede865693 | ||
|
|
d68395bc51 | ||
|
|
7ec523d5ea | ||
|
|
08fc906d5f | ||
|
|
f3e995ef92 | ||
|
|
a4304c97af | ||
|
|
d1ef0d17d5 | ||
|
|
c54cb4d6c8 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
Makefile.in
|
|
||||||
aclocal.m4
|
aclocal.m4
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
auto.h*
|
auto.h*
|
||||||
@@ -6,8 +5,10 @@ config.h.in
|
|||||||
config.status
|
config.status
|
||||||
src/.deps
|
src/.deps
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/task
|
*/task
|
||||||
stamp-h1
|
stamp-h1
|
||||||
Makefile
|
Makefile
|
||||||
configure
|
configure
|
||||||
config.log
|
config.log
|
||||||
|
www.xls
|
||||||
|
*~
|
||||||
|
|||||||
28
AUTHORS
28
AUTHORS
@@ -1,10 +1,32 @@
|
|||||||
Principal Author:
|
Principal Author:
|
||||||
Paul Beckingham, paul@beckingham.net
|
Paul Beckingham, paul@beckingham.net
|
||||||
|
|
||||||
|
Contributing Authors:
|
||||||
|
Damian Glenny
|
||||||
|
Andy Lester
|
||||||
|
H. İbrahim Güngör
|
||||||
|
Stefan Dorn
|
||||||
|
Michael Greb
|
||||||
|
Benjamin Tegarden
|
||||||
|
Chris Pride
|
||||||
|
Richard Querin
|
||||||
|
Federico Hernandez
|
||||||
|
|
||||||
With thanks to:
|
With thanks to:
|
||||||
Eugene Kramer
|
Eugene Kramer
|
||||||
SK
|
Srijith K
|
||||||
Damian Glenny
|
|
||||||
Richard Querin
|
|
||||||
Bruce Israel
|
Bruce Israel
|
||||||
|
Thomas Engel
|
||||||
|
Nishiishii
|
||||||
|
galvanizd
|
||||||
|
Stas Antons
|
||||||
|
Vincent Fleuranceau
|
||||||
|
T. Charles Yun
|
||||||
|
ArchiMark
|
||||||
|
Carlos Yoder
|
||||||
|
Russell Friesenhahn
|
||||||
|
Paolo Marsi
|
||||||
|
Eric Farris
|
||||||
|
Bruce Dillahunty
|
||||||
|
Askme Too
|
||||||
|
|
||||||
|
|||||||
341
ChangeLog
341
ChangeLog
@@ -1,66 +1,229 @@
|
|||||||
Version numbers are of the form:
|
|
||||||
|
|
||||||
x.y.z
|
------ current release ---------------------------
|
||||||
|
|
||||||
where the x represents a major version number, or architecture. The y
|
1.6.0 (4/12/2009)
|
||||||
represents a feature release, and the z represents a patch.
|
+ Added support for new "append" command that adds more description text to
|
||||||
|
an existing task.
|
||||||
|
+ Added support for the "weekdays" recurrence, which means a task can recur
|
||||||
|
five times a week, and not on weekends (thanks to Chris Pride).
|
||||||
|
+ UTF8 text is now supported in task project names, tags and descriptions.
|
||||||
|
+ Fixed bug that caused the y/n confirmation on task deletion to ignore the
|
||||||
|
Enter key and fail to re-prompt (thanks to Bruce Dillahunty).
|
||||||
|
+ When the "echo.command" configuration variable is set to "yes", it causes
|
||||||
|
commands that modify tasks to display which task was affected (thanks to
|
||||||
|
Bruce Dillahunty).
|
||||||
|
+ A task can now be annotated with the command "task <id> annotate ...", and
|
||||||
|
a timestamped annotation will appear in reports.
|
||||||
|
+ A 'description_only' column is now available for use in custom reports,
|
||||||
|
and it excludes annotations.
|
||||||
|
+ A task can now be upgraded to a recurring task by adding a recurrence
|
||||||
|
frequency, a due date, and an optional until date.
|
||||||
|
+ When a recurring task is modified, all other instances of the recurring
|
||||||
|
task are also modified.
|
||||||
|
+ Custom reports now support user-specified column labels (thanks to T.
|
||||||
|
Charles Yun).
|
||||||
|
+ Task can now import tasks from a variety of data formats, including task
|
||||||
|
export files from versions 1.4.3 and earlier, versions 1.5.0 and later,
|
||||||
|
todo.sh 2.x, CSV, plain text and task command line. See online docs for
|
||||||
|
full details.
|
||||||
|
+ Export was including 'id' in the column header even though it was not
|
||||||
|
included in the data.
|
||||||
|
+ The task file format has changed slightly. Please back up your task
|
||||||
|
data files before upgrading to 1.6.0.
|
||||||
|
+ Added new column 'recurrence_indicator' that displays an 'R' if the task
|
||||||
|
is a recurring task. This column can be added to any custom report.
|
||||||
|
+ Added new column 'tag_indicator' that displays a '+' if the task
|
||||||
|
has any tags. This column can be added to any custom report.
|
||||||
|
+ Fixed bug where sometimes a task description was concatenated oddly if
|
||||||
|
there was a colon somewhere in the description.
|
||||||
|
+ Fixed bug that caused recurring annual tasks to exhibit a creeping due
|
||||||
|
date, because of an assumption of 365 days per year, which failed to
|
||||||
|
consider leap years (thanks to T. Charles Yun).
|
||||||
|
+ Annotations can now be modified with the substitution commands /from/to/.
|
||||||
|
+ Substitutions can now be made global with /from/to/g and all occurrences
|
||||||
|
of "from" will be replaced with "to".
|
||||||
|
|
||||||
------ plans -------------------------------------
|
------ old releases ------------------------------
|
||||||
|
|
||||||
Configurable columns in reports
|
1.5.0 (3/15/2009)
|
||||||
|
+ Removed deprecated TUTORIAL file.
|
||||||
|
+ Removed "showage" configuration variable.
|
||||||
|
+ "task stop" can now remove the start time from a started task.
|
||||||
|
+ "task ghistory" now displays a differently aligned graph, allowing
|
||||||
|
easier comparison by month of tasks added versus completed and deleted.
|
||||||
|
+ "task version" command now reports unrecognized configuration variables,
|
||||||
|
which may be spelling mistakes or deprecated variables.
|
||||||
|
+ "configure --enable-debug" now supported to suppress compiler optimization
|
||||||
|
to allow debugging.
|
||||||
|
+ Allow lower case priorities, and automatically upper case them.
|
||||||
|
+ Added support for "due" configuration variable which defines the number
|
||||||
|
of days in the future when a task is considered due.
|
||||||
|
+ Added support for custom reports, comprised of a set of column names and
|
||||||
|
sort order, with optional filtering in the configuration file. This
|
||||||
|
means user-defined reports can be written, and the reports currently
|
||||||
|
in the configuration file can be renamed. Several of task's built in
|
||||||
|
reports have been converted to user-defined reports.
|
||||||
|
+ New online documentation for custom reports.
|
||||||
|
+ New algorithm for determining when the "nag" message is displayed.
|
||||||
|
+ Fixed bug where task hangs with a certain combination of recurring tasks
|
||||||
|
and shadow files.
|
||||||
|
+ Fixed bug with the task sort algorithm, which led to an unstable sequence
|
||||||
|
when there were only a handful of tasks.
|
||||||
|
+ Performance enhanced by eliminating unnecessary sorting.
|
||||||
|
+ Task now has a large (and growing) test suite and bug regression tests
|
||||||
|
to help ensure higher quality releases.
|
||||||
|
+ Fixed bug that caused performance hit during table rendering.
|
||||||
|
+ Fixed bug that concatenated a modified description without spaces.
|
||||||
|
+ Added new column 'recur' that displays the recurrence period of any
|
||||||
|
recurring tasks. This column can be added to any custom report.
|
||||||
|
+ Added support for "color.recurring" configuration variable which
|
||||||
|
specifies the color of recurring tasks.
|
||||||
|
+ Added support for "locking" configuration variable that controls whether
|
||||||
|
file locking is used.
|
||||||
|
+ Task export feature now includes recurrence information, removes nested
|
||||||
|
quotes, and limits output to pending tasks.
|
||||||
|
+ Task no longer includes deleted tasks in the summary report (thanks to
|
||||||
|
Benjamin Tegarden).
|
||||||
|
+ Fixed bug that prevented the summary report from properly reporting
|
||||||
|
recently completed tasks.
|
||||||
|
|
||||||
------ reality -----------------------------------
|
1.4.3 (11/1/2008) 8639e9260646c8c9224e0fc47e5d2443b46eecfc
|
||||||
|
+ Fixed misleading task count at bottom on "info" report.
|
||||||
|
+ Added support for a shadow file that contains a plain text task report,
|
||||||
|
with the "shadow.file" and "shadow.command" configuration variables.
|
||||||
|
The shadow file is automatically updated whenever the task database
|
||||||
|
changes. Useful for integrating with "Samurize".
|
||||||
|
+ Task now displays a message whenever a shadow file is updated, if the
|
||||||
|
"shadow.notify" configuration variable is set "on".
|
||||||
|
+ Bug: adding a task with a \n, \r or \f in it now fails properly.
|
||||||
|
+ Removed "usage" command, and support for "command.logging" configuration
|
||||||
|
variable.
|
||||||
|
+ Added documentation for Shadow files.
|
||||||
|
+ Added documentation for task filters.
|
||||||
|
|
||||||
1.2.0 (6/13/2008)
|
1.4.2 (9/18/2008) e7304e86ce9bb80978c7055fd2a9e999619a6fb8
|
||||||
|
+ "task undo" can now retract a "task done" command, provided no reports
|
||||||
|
have been run (and therefore TDB::gc run).
|
||||||
|
+ Task now correctly sorts on entire strings, instead of just the first
|
||||||
|
character (thanks to Andy Lester).
|
||||||
|
+ Task now uses dashes (-----) to column underlines when color is disabled
|
||||||
|
(thanks to Vincent Fleuranceau).
|
||||||
|
+ Task now allows mixed case attribute names (pri:, PRI:, Pri: ...) and
|
||||||
|
commands (add, ADD, Add ...) (thanks to Vincent Fleuranceau).
|
||||||
|
+ Task now supports a default project and priority for new tasks, via
|
||||||
|
the new "default.project" and "default.priority" configuration variables
|
||||||
|
(thanks to Vincent Fleuranceau).
|
||||||
|
+ Task supports improved word-wrapping to the terminal width.
|
||||||
|
+ Task now supports "default.command" configuration variable (for example
|
||||||
|
it could contain "list due:tomorrow") that is the command that is run
|
||||||
|
whenever task is invoked with no arguments.
|
||||||
|
+ Task supports modifying the existing description of a task, with the
|
||||||
|
following syntax: task <id> "new description ...".
|
||||||
|
+ Bug: Now properly supports relative dates in filters (task list due:eom,
|
||||||
|
task list due:tomorrow, task list due:23rd ...).
|
||||||
|
+ Bug: Source now properly includes <string.h> in order to build clean
|
||||||
|
using gcc 4.3 (thanks to H. İbrahim Güngör).
|
||||||
|
|
||||||
|
1.4.1 (7/18/2008) e080c3168c6064628ab85b21bd859d9875a3a9a7
|
||||||
|
+ Bug: Descriptions can not be altered with "task 123 New description".
|
||||||
|
+ Tweak: For "task calendar" month names are now centered over the month.
|
||||||
|
+ Removed TUTORIAL file contents in favor of online version.
|
||||||
|
+ Provided Mac .pkg binary.
|
||||||
|
|
||||||
|
1.4.0 (7/10/2008) 60b7d15a1d22e064acf0974c5d7eabbb57dd8071
|
||||||
|
+ New recurring tasks feature.
|
||||||
|
+ "task undelete" can now undelete erroneously deleted tasks, provided no
|
||||||
|
reports have been run (and therefore TDB::gc run).
|
||||||
|
+ Added averages to the "task history" report.
|
||||||
|
+ Added ability to override ~/.taskrc with rc:<file>.
|
||||||
|
+ Added bar chart history report "task ghistory".
|
||||||
|
+ Added task filtering on all reports.
|
||||||
|
+ Automatically shuts off color, curses when output is not a tty.
|
||||||
|
+ Supports relative due: dates (tomorrow, wednesday, 23rd, eom ...).
|
||||||
|
+ Supports the ~ character in .taskrc data.location.
|
||||||
|
+ Allows colons on the description, provided what is to the left of the colon
|
||||||
|
is not a standard attribute name.
|
||||||
|
+ Bug: Fixed where Esc[0m sequences were being emitted for no good reason.
|
||||||
|
+ Bug: Fixed underlined table headers when color is turned off.
|
||||||
|
+ Bug: Adding a blank priority resulted in an assigned garbage value.
|
||||||
|
+ Bug: Fixed parsing of date "07/08/2008" when using dateformat "m/d/Y".
|
||||||
|
|
||||||
|
1.3.1 (6/21/2008) 3a6de7d9402f2609a773a73b16eff97b14a32869
|
||||||
|
+ New configuration variable, "defaultwidth" that determines the width
|
||||||
|
of tables when ncurses support is not available.
|
||||||
|
+ Bug: "showage" configuration variable should apply to all reports, not
|
||||||
|
just the ones based on "list".
|
||||||
|
+ Bug: Fixed segmentation faults on Ubuntu when the "dateformat"
|
||||||
|
configuration variables was missing. This was a code bug, and should
|
||||||
|
have affected more platforms.
|
||||||
|
+ Bug: Task now will recreate a missing ~/.taskrc file, OR a missing
|
||||||
|
~/.task directory.
|
||||||
|
|
||||||
|
1.3.0 (6/18/2008) 6673e408a223af98c38779c20b08524042c0edfa
|
||||||
|
+ "task calendar" now displays multiple months per line, adjustable by the
|
||||||
|
"monthsperline" configuration variable. Feature added by Damian Glenny.
|
||||||
|
+ "task export" can now filter tasks like the reports.
|
||||||
|
+ Factored out code to filter tasks.
|
||||||
|
+ Displays shorter message when a command is entered incorrectly, and the
|
||||||
|
full usage for "task help".
|
||||||
|
+ "task oldest" shows the oldest tasks.
|
||||||
|
+ "task newest" shows the newest tasks.
|
||||||
|
+ Bug: Segmentation fault when no "dateformat" configuration variable
|
||||||
|
specified.
|
||||||
|
+ Bug: Fixed bug whereby if you have more than one task with a due date, 7
|
||||||
|
days gets added to the entry date of task 2..n.
|
||||||
|
+ Bug: Fixed bug whereby "1 wks" was being improperly pluralized.
|
||||||
|
|
||||||
|
1.2.0 (6/13/2008) c393d47cdfe7e197a31e94f4bb764474fa05ad8d
|
||||||
+ Bug: "dateformat" configuration variable used to display dates, but
|
+ Bug: "dateformat" configuration variable used to display dates, but
|
||||||
not parse them
|
not parse them.
|
||||||
+ "task list x" now performs a caseless comparison between "x" and the
|
+ "task list x" now performs a caseless comparison between "x" and the
|
||||||
description
|
description.
|
||||||
+ Task sub projects supported
|
+ Task sub projects supported.
|
||||||
+ "showage" confguration determines whether "Age" column appears on the
|
+ "showage" confguration determines whether "Age" column appears on the
|
||||||
"list" and "next" reports
|
"list" and "next" reports.
|
||||||
+ Improved TUTORIAL
|
+ Improved TUTORIAL.
|
||||||
|
|
||||||
1.1.0 (6/7/2008)
|
1.1.0 (6/7/2008) 73286e86628725b346db2a25fbcd4bd68efb9b3a
|
||||||
+ "blanklines" configuration to stop displaying unnecessary white
|
+ "blanklines" configuration to stop displaying unnecessary white
|
||||||
space and thus work better on small-screen devices
|
space and thus work better on small-screen devices.
|
||||||
+ "dateformat" configuration now determines how dates are formatted
|
+ "dateformat" configuration now determines how dates are formatted.
|
||||||
+ Better formatting of "task tags" output
|
+ Better formatting of "task tags" output.
|
||||||
+ http://www.beckingham.net/task.html home page set up
|
+ http://www.beckingham.net/task.html home page set up.
|
||||||
+ Added tags to the "task long" report
|
+ Added tags to the "task long" report.
|
||||||
|
|
||||||
1.0.1 (6/4/2008)
|
1.0.1 (6/4/2008) d216d401217027d93581808fc8944ab7d6b85fb0
|
||||||
+ Bug: UUID generator not properly terminating string.
|
+ Bug: UUID generator not properly terminating string.
|
||||||
+ Bug: srandom/srand not called prior to UUID generation.
|
+ Bug: srandom/srand not called prior to UUID generation.
|
||||||
|
|
||||||
1.0.0 (6/3/2008)
|
1.0.0 (6/3/2008) f3de5c07118c597091a05c7d7fe8bdeae95474c1
|
||||||
+ New movie made, uploaded
|
+ New movie made, uploaded.
|
||||||
+ Bug: assertion fails on mobile for t v
|
+ Bug: assertion fails on mobile for t v.
|
||||||
+ Bug: configure.ac does not properly determine ncurses availability
|
+ Bug: configure.ac does not properly determine ncurses availability.
|
||||||
+ Bug: Cannot seem to use the percent character in a task description
|
+ Bug: Cannot seem to use the percent character in a task description.
|
||||||
+ Bug: New installation "task stats" reports newest task 12/31/1969
|
+ Bug: New installation "task stats" reports newest task 12/31/1969.
|
||||||
+ Bug: New installation task projects displays header but no data - should short-circuit
|
+ Bug: New installation task projects displays header but no data - should short-circuit.
|
||||||
+ Bug: incorrect color specification in sample .taskrc file
|
+ Bug: incorrect color specification in sample .taskrc file.
|
||||||
+ Bug: when run without arguments, task dumps core on Solaris 10
|
+ Bug: when run without arguments, task dumps core on Solaris 10.
|
||||||
+ "task calendar" now reports all months with due pending tasks
|
+ "task calendar" now reports all months with due pending tasks.
|
||||||
+ Added rules for colorization by tag, project and keyword
|
+ Added rules for colorization by tag, project and keyword.
|
||||||
+ Added legend to "task calendar"
|
+ Added legend to "task calendar".
|
||||||
|
|
||||||
0.9.9 (5/27/2008)
|
0.9.9 (5/27/2008) 2ecf50032226c91b406f247417a063dc17c8e324
|
||||||
+ Autoconf/automake behaving properly.
|
+ Autoconf/automake behaving properly.
|
||||||
+ Clean build on OS X 10.5.
|
+ Clean build on OS X 10.5.
|
||||||
+ Clean build on Ubuntu 8.0.
|
+ Clean build on Ubuntu 8.0.
|
||||||
+ Clean build on Fedora Core 8.
|
+ Clean build on Fedora Core 8.
|
||||||
+ Clean build on Fedora Core 9.
|
+ Clean build on Fedora Core 9.
|
||||||
|
|
||||||
0.9.8 (5/25/2008)
|
0.9.8 (5/25/2008) 18fd59a1edb20e5c68d086a97fae5fa9f6bb348a
|
||||||
+ Added "task color" command.
|
+ Added "task color" command.
|
||||||
+ Removed unnecessary files.
|
+ Removed unnecessary files.
|
||||||
+ Completed documentation.
|
+ Completed documentation.
|
||||||
|
|
||||||
0.9.7 (5/24/2008)
|
0.9.7 (5/24/2008) 25dc4150947a3e612c8118838d04b3bbe68441f7
|
||||||
+ Migrated old compiler flags into Makefile.am
|
+ Migrated old compiler flags into Makefile.am.
|
||||||
+ Added ncurses endwin function check to configure.ac
|
+ Added ncurses endwin function check to configure.ac.
|
||||||
+ Set up structure for AUTHORS file.
|
+ Set up structure for AUTHORS file.
|
||||||
+ Set up NEWS file, with pleas for feedback.
|
+ Set up NEWS file, with pleas for feedback.
|
||||||
+ Added welcome message to README.
|
+ Added welcome message to README.
|
||||||
@@ -71,35 +234,35 @@ Configurable columns in reports
|
|||||||
+ Removed unnecessary SAMPLE_taskrc, and assorted references.
|
+ Removed unnecessary SAMPLE_taskrc, and assorted references.
|
||||||
+ Cleaned up ChangeLog.
|
+ Cleaned up ChangeLog.
|
||||||
+ Minor mods to standard docs.
|
+ Minor mods to standard docs.
|
||||||
+ Bumped version to 0.9.7
|
+ Bumped version to 0.9.7.
|
||||||
+ Changed some autoconf details
|
+ Changed some autoconf details.
|
||||||
+ Corrected comment in T.cpp
|
+ Corrected comment in T.cpp.
|
||||||
+ Made unit tests compile and run again.
|
+ Made unit tests compile and run again.
|
||||||
+ Removed tests from distibution.
|
+ Removed tests from distibution.
|
||||||
|
|
||||||
0.9.6 (5/13/208)
|
0.9.6 (5/13/208)
|
||||||
+ Corrected wrong include file in Table.cpp
|
+ Corrected wrong include file in Table.cpp.
|
||||||
+ Replaced color management code.
|
+ Replaced color management code.
|
||||||
+ Improved color rules code.
|
+ Improved color rules code.
|
||||||
|
|
||||||
0.9.5 (5/12/2008)
|
0.9.5 (5/12/2008)
|
||||||
+ Replaced Table storage with Grid.
|
+ Replaced Table storage with Grid.
|
||||||
+ Added Grid.cpp to configure.ac
|
+ Added Grid.cpp to configure.ac.
|
||||||
+ Added Makefile to src/.gitignore
|
+ Added Makefile to src/.gitignore.
|
||||||
+ Makefile should not be part of the repository.
|
+ Makefile should not be part of the repository.
|
||||||
+ Added Grid.cpp
|
+ Added Grid.cpp.
|
||||||
+ Added Grid::Cell::operator==
|
+ Added Grid::Cell::operator==.
|
||||||
+ ChangeLog file begun.
|
+ ChangeLog file begun.
|
||||||
+ Bumped version to 0.9.5 for next release.
|
+ Bumped version to 0.9.5 for next release.
|
||||||
|
|
||||||
0.9.4 (4/26/2008)
|
0.9.4 (4/26/2008)
|
||||||
+ Integrated new Grid object into build - not yet integrated into Table.
|
+ Integrated new Grid object into build - not yet integrated into Table.
|
||||||
+ More .gitignore tweaks.
|
+ More .gitignore tweaks.
|
||||||
+ Added .gitignore
|
+ Added .gitignore.
|
||||||
+ Added more missing files.
|
+ Added more missing files.
|
||||||
+ Added all source code.
|
+ Added all source code.
|
||||||
+ Generic OSS files added.
|
+ Generic OSS files added.
|
||||||
+ Initial commit.
|
+ Initial commit on Github.
|
||||||
|
|
||||||
0.9.3 (4/6/2008)
|
0.9.3 (4/6/2008)
|
||||||
+ Added "task completed" command.
|
+ Added "task completed" command.
|
||||||
@@ -110,74 +273,76 @@ Configurable columns in reports
|
|||||||
+ "task" duplicated to "task_rel" for preparation of a fork.
|
+ "task" duplicated to "task_rel" for preparation of a fork.
|
||||||
|
|
||||||
0.9.1 (4/1/2008)
|
0.9.1 (4/1/2008)
|
||||||
+ Blank attributes read are longer be written out.
|
+ Blank attributes read are no longer written out.
|
||||||
+ Completed "task export" command.
|
+ Completed "task export" command.
|
||||||
+ Added configuration values to "task version" command.
|
+ Added configuration values to "task version" command.
|
||||||
+ Consolidated header files, removed unnecessary ones.
|
+ Consolidated header files, removed unnecessary ones.
|
||||||
|
|
||||||
0.9.0 (3/23/2008)
|
0.9.0 (3/23/2008)
|
||||||
+ flat source directory
|
+ flat source directory.
|
||||||
+ autoconf complete
|
+ autoconf complete.
|
||||||
+ "task next"
|
+ "task next".
|
||||||
+ "task stats"
|
+ "task stats".
|
||||||
+ "task export"
|
+ "task export".
|
||||||
+ Rules-based colorization
|
+ Rules-based colorization.
|
||||||
|
|
||||||
0.8.1 (1/28/2008) - 0.8.16 (3/13/2008)
|
0.8.1 (1/28/2008) - 0.8.16 (3/13/2008)
|
||||||
+ autoconf conversion (many builds)
|
+ autoconf conversion (many builds).
|
||||||
|
|
||||||
0.8.0 Polish (1/25/2008)
|
0.8.0 Polish (1/25/2008)
|
||||||
+ Code cleanup, reorganization
|
+ Code cleanup, reorganization.
|
||||||
+ "task overdue"
|
+ "task overdue".
|
||||||
+ Add "age" column to list and long
|
+ Add "age" column to list and long.
|
||||||
+ Use 'conf' for build, version tracking
|
+ Use 'conf' for build, version tracking.
|
||||||
+ Add "/from/to/" description editing
|
+ Add "/from/to/" description editing.
|
||||||
|
|
||||||
0.7.0 Multi-user, File handling, atomicity (1/8/2008)
|
0.7.0 Multi-user, File handling, atomicity (1/8/2008)
|
||||||
+ Clean, publishable API reimplementation
|
+ Clean, publishable API reimplementation.
|
||||||
+ File locking
|
+ File locking.
|
||||||
+ retain deleted tasks
|
+ retain deleted tasks.
|
||||||
+ "task info ID" report showing all metadata
|
+ "task info ID" report showing all metadata.
|
||||||
+ File format v2
|
+ File format v2, including UUID.
|
||||||
|
|
||||||
[Development hiatus while planning for T, TDB API, new features and the future
|
[Development hiatus while planning for T, TDB API, new features and the future
|
||||||
of the project. Seeded to two testers for feedback, suggestions.]
|
of the project. Seeded to two testers for feedback, suggestions. Development
|
||||||
|
deliberately stopped to allow extended use of task, allowing command logging and
|
||||||
|
regular usage to determine which features were needed or unnecessary.]
|
||||||
|
|
||||||
0.6.0 Reports (12/27/2006)
|
0.6.0 Reports (12/27/2006)
|
||||||
+ "task history"
|
+ "task history".
|
||||||
+ "task summary"
|
+ "task summary".
|
||||||
+ "task calendar"
|
+ "task calendar".
|
||||||
+ due support
|
+ due support.
|
||||||
+ Table sorting
|
+ Table sorting.
|
||||||
|
|
||||||
0.5.0 Multi-user support (12/10/2006)
|
0.5.0 Multi-user support (12/10/2006)
|
||||||
+ Command logging
|
+ Command logging.
|
||||||
+ "task usage" report
|
+ "task usage" report.
|
||||||
|
|
||||||
0.4.0 Destructive / modification commands (12/3/2006)
|
0.4.0 Destructive / modification commands (12/3/2006)
|
||||||
+ "task delete" complete
|
+ "task delete" complete.
|
||||||
+ "task id ..." complete
|
+ "task id ..." complete.
|
||||||
+ "task list ..." synonym for "task find ..."
|
+ "task list ..." synonym for "task find ...".
|
||||||
|
|
||||||
0.3.0 Work in progress support (12/3/2006)
|
0.3.0 Work in progress support (12/3/2006)
|
||||||
+ "task start" complete
|
+ "task start" complete.
|
||||||
+ "task done" complete
|
+ "task done" complete.
|
||||||
+ completed.data support
|
+ completed.data support.
|
||||||
|
|
||||||
0.2.0 Neutral commands (12/2/2006)
|
0.2.0 Neutral commands (12/2/2006)
|
||||||
+ "task find" complete
|
+ "task find" complete.
|
||||||
+ "task projects" complete
|
+ "task projects" complete.
|
||||||
+ "task tags" complete
|
+ "task tags" complete.
|
||||||
|
|
||||||
0.1.0 Constructive commands (12/1/2006)
|
0.1.0 Constructive commands (12/1/2006)
|
||||||
+ "task add" complete
|
+ "task add" complete.
|
||||||
+ completed.data support
|
+ completed.data support.
|
||||||
+ ~/.taskrc support
|
+ ~/.taskrc support.
|
||||||
|
|
||||||
0.0.1 Basic infrastructure (11/29/2006)
|
0.0.1 Basic infrastructure (11/29/2006)
|
||||||
+ Command line parsing
|
+ Command line parsing.
|
||||||
+ API layer
|
+ API layer.
|
||||||
+ Usage
|
+ Usage.
|
||||||
|
|
||||||
------ start -----------------------------------
|
------ start -----------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
Developers may wish to change task, and here is a high-level guide to the files
|
Developers may wish to change task, and here is a high-level guide to the files
|
||||||
included.
|
included.
|
||||||
|
|
||||||
task.{cpp,h} Functions that implement the task commands, and main.
|
task.{cpp,h} Implements main, high level processing.
|
||||||
|
command.cpp Implements all non-report task commands.
|
||||||
|
report.cpp Implements all task reports.
|
||||||
parse.cpp Parses the command line.
|
parse.cpp Parses the command line.
|
||||||
TDB.{cpp,h} The task database, performs all file I/O
|
TDB.{cpp,h} The task database, performs all file I/O.
|
||||||
T.{cpp,h} Represents a single task - parses a record from TDB, and also
|
T.{cpp,h} Represents a single task - parses a record from TDB, and also
|
||||||
composes record for TDB. Provides accessors for tasks.
|
composes record for TDB. Provides accessors for tasks.
|
||||||
Grid.{cpp,h} Implements a sparse 2D array, provides data storage for the
|
Grid.{cpp,h} Implements a sparse 2D array, provides data storage for the
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
SUBDIRS = src
|
SUBDIRS = src
|
||||||
EXTRA_DIST = TUTORIAL DEVELOPERS
|
EXTRA_DIST = DEVELOPERS
|
||||||
|
|
||||||
|
|||||||
595
Makefile.in
Normal file
595
Makefile.in
Normal file
@@ -0,0 +1,595 @@
|
|||||||
|
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||||
|
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
VPATH = @srcdir@
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
subdir = .
|
||||||
|
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||||
|
$(srcdir)/Makefile.in $(srcdir)/auto.h.in \
|
||||||
|
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
|
||||||
|
depcomp install-sh missing
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
|
configure.lineno config.status.lineno
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_HEADER = auto.h
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
SOURCES =
|
||||||
|
DIST_SOURCES =
|
||||||
|
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||||
|
html-recursive info-recursive install-data-recursive \
|
||||||
|
install-dvi-recursive install-exec-recursive \
|
||||||
|
install-html-recursive install-info-recursive \
|
||||||
|
install-pdf-recursive install-ps-recursive install-recursive \
|
||||||
|
installcheck-recursive installdirs-recursive pdf-recursive \
|
||||||
|
ps-recursive uninstall-recursive
|
||||||
|
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||||
|
distclean-recursive maintainer-clean-recursive
|
||||||
|
ETAGS = etags
|
||||||
|
CTAGS = ctags
|
||||||
|
DIST_SUBDIRS = $(SUBDIRS)
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
top_distdir = $(distdir)
|
||||||
|
am__remove_distdir = \
|
||||||
|
{ test ! -d $(distdir) \
|
||||||
|
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||||
|
&& rm -fr $(distdir); }; }
|
||||||
|
DIST_ARCHIVES = $(distdir).tar.gz
|
||||||
|
GZIP_ENV = --best
|
||||||
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CXX = @CXX@
|
||||||
|
CXXCPP = @CXXCPP@
|
||||||
|
CXXDEPMODE = @CXXDEPMODE@
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
GREP = @GREP@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_CXX = @ac_ct_CXX@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
bindir = @bindir@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
SUBDIRS = src
|
||||||
|
EXTRA_DIST = DEVELOPERS
|
||||||
|
all: auto.h
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
am--refresh:
|
||||||
|
@:
|
||||||
|
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
|
||||||
|
cd $(srcdir) && $(AUTOMAKE) --gnu \
|
||||||
|
&& exit 0; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||||
|
cd $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --gnu Makefile
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
echo ' $(SHELL) ./config.status'; \
|
||||||
|
$(SHELL) ./config.status;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: $(am__configure_deps)
|
||||||
|
cd $(srcdir) && $(AUTOCONF)
|
||||||
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||||
|
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
|
|
||||||
|
auto.h: stamp-h1
|
||||||
|
@if test ! -f $@; then \
|
||||||
|
rm -f stamp-h1; \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||||
|
else :; fi
|
||||||
|
|
||||||
|
stamp-h1: $(srcdir)/auto.h.in $(top_builddir)/config.status
|
||||||
|
@rm -f stamp-h1
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status auto.h
|
||||||
|
$(srcdir)/auto.h.in: $(am__configure_deps)
|
||||||
|
cd $(top_srcdir) && $(AUTOHEADER)
|
||||||
|
rm -f stamp-h1
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
distclean-hdr:
|
||||||
|
-rm -f auto.h stamp-h1
|
||||||
|
|
||||||
|
# This directory's subdirectories are mostly independent; you can cd
|
||||||
|
# into them and run `make' without going through this Makefile.
|
||||||
|
# To change the values of `make' variables: instead of editing Makefiles,
|
||||||
|
# (1) if the variable is set in `config.status', edit `config.status'
|
||||||
|
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||||
|
# (2) otherwise, pass the desired values on the `make' command line.
|
||||||
|
$(RECURSIVE_TARGETS):
|
||||||
|
@failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
dot_seen=yes; \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done; \
|
||||||
|
if test "$$dot_seen" = "no"; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||||
|
fi; test -z "$$fail"
|
||||||
|
|
||||||
|
$(RECURSIVE_CLEAN_TARGETS):
|
||||||
|
@failcom='exit 1'; \
|
||||||
|
for f in x $$MAKEFLAGS; do \
|
||||||
|
case $$f in \
|
||||||
|
*=* | --[!k]*);; \
|
||||||
|
*k*) failcom='fail=yes';; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
dot_seen=no; \
|
||||||
|
case "$@" in \
|
||||||
|
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
|
||||||
|
*) list='$(SUBDIRS)' ;; \
|
||||||
|
esac; \
|
||||||
|
rev=''; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = "."; then :; else \
|
||||||
|
rev="$$subdir $$rev"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
rev="$$rev ."; \
|
||||||
|
target=`echo $@ | sed s/-recursive//`; \
|
||||||
|
for subdir in $$rev; do \
|
||||||
|
echo "Making $$target in $$subdir"; \
|
||||||
|
if test "$$subdir" = "."; then \
|
||||||
|
local_target="$$target-am"; \
|
||||||
|
else \
|
||||||
|
local_target="$$target"; \
|
||||||
|
fi; \
|
||||||
|
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||||
|
|| eval $$failcom; \
|
||||||
|
done && test -z "$$fail"
|
||||||
|
tags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||||
|
done
|
||||||
|
ctags-recursive:
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||||
|
done
|
||||||
|
|
||||||
|
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||||
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
|
mkid -fID $$unique
|
||||||
|
tags: TAGS
|
||||||
|
|
||||||
|
TAGS: tags-recursive $(HEADERS) $(SOURCES) auto.h.in $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
tags=; \
|
||||||
|
here=`pwd`; \
|
||||||
|
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||||
|
include_option=--etags-include; \
|
||||||
|
empty_fix=.; \
|
||||||
|
else \
|
||||||
|
include_option=--include; \
|
||||||
|
empty_fix=; \
|
||||||
|
fi; \
|
||||||
|
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
test ! -f $$subdir/TAGS || \
|
||||||
|
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
list='$(SOURCES) $(HEADERS) auto.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$tags $$unique; \
|
||||||
|
fi
|
||||||
|
ctags: CTAGS
|
||||||
|
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) auto.h.in $(TAGS_DEPENDENCIES) \
|
||||||
|
$(TAGS_FILES) $(LISP)
|
||||||
|
tags=; \
|
||||||
|
here=`pwd`; \
|
||||||
|
list='$(SOURCES) $(HEADERS) auto.h.in $(LISP) $(TAGS_FILES)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | \
|
||||||
|
$(AWK) ' { files[$$0] = 1; } \
|
||||||
|
END { for (i in files) print i; }'`; \
|
||||||
|
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$tags $$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& cd $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) $$here
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
|
||||||
|
distdir: $(DISTFILES)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
test -d $(distdir) || mkdir $(distdir)
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||||
|
fi; \
|
||||||
|
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f $(distdir)/$$file \
|
||||||
|
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||||
|
if test "$$subdir" = .; then :; else \
|
||||||
|
test -d "$(distdir)/$$subdir" \
|
||||||
|
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||||
|
|| exit 1; \
|
||||||
|
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||||
|
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||||
|
(cd $$subdir && \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
top_distdir="$$top_distdir" \
|
||||||
|
distdir="$$distdir/$$subdir" \
|
||||||
|
am__remove_distdir=: \
|
||||||
|
am__skip_length_check=: \
|
||||||
|
distdir) \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||||
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||||
|
|| chmod -R a+r $(distdir)
|
||||||
|
dist-gzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-bzip2: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-tarZ: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-shar: distdir
|
||||||
|
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist-zip: distdir
|
||||||
|
-rm -f $(distdir).zip
|
||||||
|
zip -rq $(distdir).zip $(distdir)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
dist dist-all: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||||
|
$(am__remove_distdir)
|
||||||
|
|
||||||
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
|
# it guarantees that the distribution is self-contained by making another
|
||||||
|
# tarfile.
|
||||||
|
distcheck: dist
|
||||||
|
case '$(DIST_ARCHIVES)' in \
|
||||||
|
*.tar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
|
*.tar.bz2*) \
|
||||||
|
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
|
*.tar.Z*) \
|
||||||
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
|
*.shar.gz*) \
|
||||||
|
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||||
|
*.zip*) \
|
||||||
|
unzip $(distdir).zip ;;\
|
||||||
|
esac
|
||||||
|
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||||
|
mkdir $(distdir)/_build
|
||||||
|
mkdir $(distdir)/_inst
|
||||||
|
chmod a-w $(distdir)
|
||||||
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||||
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||||
|
&& cd $(distdir)/_build \
|
||||||
|
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||||
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||||
|
distuninstallcheck \
|
||||||
|
&& chmod -R a-w "$$dc_install_base" \
|
||||||
|
&& ({ \
|
||||||
|
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||||
|
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||||
|
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||||
|
&& rm -rf "$$dc_destdir" \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
|
&& rm -rf $(DIST_ARCHIVES) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||||
|
$(am__remove_distdir)
|
||||||
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||||
|
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||||
|
distuninstallcheck:
|
||||||
|
@cd $(distuninstallcheck_dir) \
|
||||||
|
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||||
|
|| { echo "ERROR: files left after uninstall:" ; \
|
||||||
|
if test -n "$(DESTDIR)"; then \
|
||||||
|
echo " (check DESTDIR support)"; \
|
||||||
|
fi ; \
|
||||||
|
$(distuninstallcheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
distcleancheck: distclean
|
||||||
|
@if test '$(srcdir)' = . ; then \
|
||||||
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||||
|
exit 1 ; \
|
||||||
|
fi
|
||||||
|
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||||
|
$(distcleancheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
check-am: all-am
|
||||||
|
check: check-recursive
|
||||||
|
all-am: Makefile auto.h
|
||||||
|
installdirs: installdirs-recursive
|
||||||
|
installdirs-am:
|
||||||
|
install: install-recursive
|
||||||
|
install-exec: install-exec-recursive
|
||||||
|
install-data: install-data-recursive
|
||||||
|
uninstall: uninstall-recursive
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-recursive
|
||||||
|
install-strip:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
`test -z '$(STRIP)' || \
|
||||||
|
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||||
|
mostlyclean-generic:
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
clean: clean-recursive
|
||||||
|
|
||||||
|
clean-am: clean-generic mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-recursive
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-recursive
|
||||||
|
|
||||||
|
info: info-recursive
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am:
|
||||||
|
|
||||||
|
install-dvi: install-dvi-recursive
|
||||||
|
|
||||||
|
install-exec-am:
|
||||||
|
|
||||||
|
install-html: install-html-recursive
|
||||||
|
|
||||||
|
install-info: install-info-recursive
|
||||||
|
|
||||||
|
install-man:
|
||||||
|
|
||||||
|
install-pdf: install-pdf-recursive
|
||||||
|
|
||||||
|
install-ps: install-ps-recursive
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-recursive
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -rf $(top_srcdir)/autom4te.cache
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-recursive
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-generic
|
||||||
|
|
||||||
|
pdf: pdf-recursive
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-recursive
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am:
|
||||||
|
|
||||||
|
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||||
|
install-strip
|
||||||
|
|
||||||
|
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||||
|
all all-am am--refresh check check-am clean clean-generic \
|
||||||
|
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
|
||||||
|
dist-shar dist-tarZ dist-zip distcheck distclean \
|
||||||
|
distclean-generic distclean-hdr distclean-tags distcleancheck \
|
||||||
|
distdir distuninstallcheck dvi dvi-am html html-am info \
|
||||||
|
info-am install install-am install-data install-data-am \
|
||||||
|
install-dvi install-dvi-am install-exec install-exec-am \
|
||||||
|
install-html install-html-am install-info install-info-am \
|
||||||
|
install-man install-pdf install-pdf-am install-ps \
|
||||||
|
install-ps-am install-strip installcheck installcheck-am \
|
||||||
|
installdirs installdirs-am maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
|
||||||
|
pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
||||||
6
NEWS
6
NEWS
@@ -1,4 +1,4 @@
|
|||||||
Welcome to Task 1.2.0.
|
Welcome to Task 1.6.0.
|
||||||
|
|
||||||
Task has been built and tested on the following configurations:
|
Task has been built and tested on the following configurations:
|
||||||
|
|
||||||
@@ -6,7 +6,11 @@ Task has been built and tested on the following configurations:
|
|||||||
- OS X 10.5 Leopard
|
- OS X 10.5 Leopard
|
||||||
- Fedora Core 8
|
- Fedora Core 8
|
||||||
- Fedora Core 9
|
- Fedora Core 9
|
||||||
|
- Fedora Core 10
|
||||||
|
- Ubuntu 7 Feisty Fawn
|
||||||
- Ubuntu 8 Hardy Heron
|
- Ubuntu 8 Hardy Heron
|
||||||
|
- Ubuntu 8.10 Intrepid Ibex
|
||||||
|
- Ubuntu 9.04 Jaunty Jackalope (beta)
|
||||||
- Solaris 10
|
- Solaris 10
|
||||||
- Cygwin 1.5.25-14
|
- Cygwin 1.5.25-14
|
||||||
|
|
||||||
|
|||||||
27
README
27
README
@@ -3,20 +3,20 @@ Thank you for taking a look at task. Task is a GTD utility featuring:
|
|||||||
- Robust C++ implementation
|
- Robust C++ implementation
|
||||||
- Tags
|
- Tags
|
||||||
- Colorful, tabular output
|
- Colorful, tabular output
|
||||||
- Reports
|
- Reports, graphs
|
||||||
- Lots of commands
|
- Lots of commands
|
||||||
- Low-level API
|
- Low-level API
|
||||||
- Abbreviations for all commands, options
|
- Abbreviations for all commands, options
|
||||||
- Multi-user file locking
|
- Multi-user file locking
|
||||||
- Clean architecture allowing quick addition of new features
|
- Clean architecture allowing quick addition of new features
|
||||||
|
- Recurring tasks
|
||||||
|
|
||||||
It is intended that features, mainly in the form of reports will be added
|
It is intended that features, mainly in the form of reports will be added
|
||||||
frequently, with best practices and useful reports evolving from usage patterns.
|
frequently, with best practices and useful reports evolving from usage patterns.
|
||||||
|
|
||||||
Task is scope-limited to GTD functionality only.
|
Task is scope-limited to GTD functionality only.
|
||||||
|
|
||||||
You may want to jump straight to the TUTORIAL file, or perhaps watch the old
|
You may want to watch the old task movie on YouTube:
|
||||||
task movie on YouTube:
|
|
||||||
|
|
||||||
http://www.youtube.com/watch?v=l68LCl6BYvs
|
http://www.youtube.com/watch?v=l68LCl6BYvs
|
||||||
|
|
||||||
@@ -24,18 +24,21 @@ or the new improved one:
|
|||||||
|
|
||||||
http://www.youtube.com/watch?v=D2Kn4DMOVSw
|
http://www.youtube.com/watch?v=D2Kn4DMOVSw
|
||||||
|
|
||||||
Either will give you a fairly good idea of what task is capable of, and whether
|
Either will give you a fairly good idea of what task is capable of, and
|
||||||
it fits in to your way of working. As a command line application, task is not
|
whether it fits in to your way of working. As a command line application,
|
||||||
for everyone and some of you may prefer to not proceed. The movie or TUTORIAL
|
task is not for everyone and some of you may prefer to not proceed. The
|
||||||
file are the quickest way for you to make that decision.
|
movie or online tutorial file are the quickest way for you to make that
|
||||||
|
decision. The online tutorial can be found at:
|
||||||
|
|
||||||
|
http://www.beckingham.net/task.html
|
||||||
|
|
||||||
Task is based on ideas presented in the todo.sh script, found on:
|
Task is based on ideas presented in the todo.sh script, found on:
|
||||||
|
|
||||||
http://todotxt.org
|
http://todotxt.org
|
||||||
|
|
||||||
Task has a few more features than todo.sh, but fundamentally, they are both
|
Task has many more features than todo.sh, but fundamentally, they are
|
||||||
working toward the same goals, which is to help you follow basic Getting Things
|
both working toward the same goals, which is to help you follow basic
|
||||||
Done (GTD) principles.
|
Getting Things Done (GTD) principles.
|
||||||
|
|
||||||
All feedback is welcome, in addition to any bug reports or patches to:
|
All feedback is welcome, in addition to any bug reports or patches to:
|
||||||
|
|
||||||
@@ -43,6 +46,6 @@ All feedback is welcome, in addition to any bug reports or patches to:
|
|||||||
|
|
||||||
Got an idea for an enhancement? Send a message!
|
Got an idea for an enhancement? Send a message!
|
||||||
|
|
||||||
I have found that task makes me more productive and organized. I hope task can
|
I have found that task makes me more productive and organized.
|
||||||
do the same for you.
|
I hope task can do the same for you.
|
||||||
|
|
||||||
|
|||||||
739
TUTORIAL
739
TUTORIAL
@@ -1,739 +0,0 @@
|
|||||||
Task program tutorial, for version 1.2.0
|
|
||||||
----------------------------------------
|
|
||||||
|
|
||||||
This guide shows how to quickly set up the task program, and become proficient
|
|
||||||
with it.
|
|
||||||
|
|
||||||
Contents:
|
|
||||||
Quick Setup
|
|
||||||
Simple Usage
|
|
||||||
Advanced Usage
|
|
||||||
Interacting with the Shell
|
|
||||||
Configuring Task
|
|
||||||
Colors
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Quick Setup
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Build the task program according to the directions in the INSTALL file. This
|
|
||||||
transcript illustrates a typical installation:
|
|
||||||
|
|
||||||
% ls
|
|
||||||
task-1.2.0.tar.gz
|
|
||||||
% gunzip task-1.2.0.tar.gz
|
|
||||||
% tar xf task-1.2.0.tar
|
|
||||||
% cd task-1.2.0
|
|
||||||
% ./configure
|
|
||||||
...
|
|
||||||
% make
|
|
||||||
...
|
|
||||||
% make install # (may require sudo, depending on --prefix)
|
|
||||||
|
|
||||||
You need to make sure that the installed task program is in your PATH
|
|
||||||
environment variable.
|
|
||||||
|
|
||||||
Task reads a configuration file - called .taskrc in your home directory - and
|
|
||||||
stores pending and completed tasks in in a directory specified in the
|
|
||||||
configuration file.
|
|
||||||
|
|
||||||
The simplest way to get a configuration file and task directory is to run task.
|
|
||||||
On startup, task will check to see if it can find the configuration file and
|
|
||||||
task directory, and if not found, will ask you whether it may create both.
|
|
||||||
|
|
||||||
% task version
|
|
||||||
|
|
||||||
A configuration file could not be found in /Users/paul/.taskrc
|
|
||||||
|
|
||||||
Would you like a sample .taskrc created, so task can proceed? (y/n) y
|
|
||||||
Done.
|
|
||||||
|
|
||||||
[then task will show version information]
|
|
||||||
|
|
||||||
|
|
||||||
Simple Usage
|
|
||||||
------------
|
|
||||||
|
|
||||||
Let us begin by adding some tasks:
|
|
||||||
|
|
||||||
% task add Book plane ticket
|
|
||||||
% task add Rent a tux
|
|
||||||
% task add Reserve a rental car
|
|
||||||
% task add Reserve a hotel room
|
|
||||||
|
|
||||||
That's it. You'll notice immediately that task has a very minimalist
|
|
||||||
interface. Let us take a look at those tasks:
|
|
||||||
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
1 Book plane ticket
|
|
||||||
2 Rent a tux
|
|
||||||
3 Reserve a rental car
|
|
||||||
4 Send John a birthday card
|
|
||||||
|
|
||||||
The 'ls' command provides the most minimal list of tasks. Each task has been
|
|
||||||
given an id number, and you can see that there are no projects or priorities
|
|
||||||
assigned. Wait a minute - I own a tux, I don't need to rent one. Let us delete
|
|
||||||
task 2:
|
|
||||||
|
|
||||||
% task 2 delete
|
|
||||||
Permanently delete task? (y/n) y
|
|
||||||
|
|
||||||
Task wants you to confirm deletions. To remove the confirmation, edit your
|
|
||||||
.taskrc file and change the line:
|
|
||||||
|
|
||||||
confirmation=yes
|
|
||||||
|
|
||||||
to have a value of "no".
|
|
||||||
|
|
||||||
While the use of projects and priorities are not essential to benefitting from
|
|
||||||
task, they can be very useful when the list of tasks grows large. Let's assign
|
|
||||||
a project to these tasks:
|
|
||||||
|
|
||||||
% task 1 project:Wedding
|
|
||||||
% task 3 project:Wedding
|
|
||||||
% task 4 project:Family
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
3 Family Send John a birthday card
|
|
||||||
2 Wedding Reserve a rental car
|
|
||||||
1 Wedding Book plane ticket
|
|
||||||
|
|
||||||
Notice that the id numbers have changed. When tasks get deleted, or have their
|
|
||||||
attributes changed (project, for example), the ids are prone to change. But the
|
|
||||||
id numbers will remain valid until the next 'ls' command is run. You should
|
|
||||||
only use the ids from the most recent 'ls' command. The ids change, because
|
|
||||||
task is always trying to use small numbers so that it is easy for you to enter
|
|
||||||
them correctly.
|
|
||||||
|
|
||||||
Subprojects are supported. If you have a project "Wedding", you can specify
|
|
||||||
that a task is a subproject "Transport" of "Wedding" by assigning the project
|
|
||||||
"Wedding.Transport". Let's do this:
|
|
||||||
|
|
||||||
% task 2 project:Wedding.Transport
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
3 Family Send John a birthday card
|
|
||||||
2 Wedding.Transport Reserve a rental car
|
|
||||||
1 Wedding Book plane ticket
|
|
||||||
|
|
||||||
Task matches the leftmost part of the project when searching, so projects
|
|
||||||
may be abbreviated:
|
|
||||||
|
|
||||||
% task ls project:Wedding.Tra
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
2 Wedding.Transport Reserve a rental car
|
|
||||||
|
|
||||||
This way of matching projects can be used to see all tasks under the
|
|
||||||
"Wedding" project and all subprojects:
|
|
||||||
|
|
||||||
% task ls project:Wedding
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
2 Wedding.Transport Reserve a rental car
|
|
||||||
1 Wedding Book plane ticket
|
|
||||||
|
|
||||||
Let's reassign 2 back to the "Wedding" project:
|
|
||||||
|
|
||||||
% task 2 project:Wedding
|
|
||||||
|
|
||||||
Now that projects are assigned, we can look at just the Wedding project tasks:
|
|
||||||
|
|
||||||
% task ls project:Wedding
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
1 Wedding Book plane ticket
|
|
||||||
2 Wedding Reserve a rental car
|
|
||||||
|
|
||||||
Any command arguments after the 'ls' are used for filtering the output. We
|
|
||||||
could also have requested:
|
|
||||||
|
|
||||||
% task ls ticket plane
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
1 Wedding Book plane ticket
|
|
||||||
|
|
||||||
Now let's prioritize. Priorities can be H, M or L (High, Medium, Low).
|
|
||||||
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
3 Family Send John a birthday card
|
|
||||||
2 Wedding Reserve a rental car
|
|
||||||
1 Wedding Book plane ticket
|
|
||||||
|
|
||||||
% task 1 priority:H
|
|
||||||
% task 2 prior:M
|
|
||||||
% task 3 pr:H
|
|
||||||
Ambiguous attribute 'pr' - could be either of project, priority
|
|
||||||
% task 3 pri:H
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
3 Family H Send John a birthday card
|
|
||||||
1 Wedding H Book plane ticket
|
|
||||||
2 Wedding M Reserve a rental car
|
|
||||||
|
|
||||||
Notice that task supports the abbreviation of words such as priority, project.
|
|
||||||
Priority can be abbreviated to pri, but not pr, because it is ambiguous. Now
|
|
||||||
that tasks have been prioritized, you can see that the tasks are being sorted
|
|
||||||
by priority, with the highest priority tasks at the top.
|
|
||||||
|
|
||||||
These attributes can all be provided when the task is added, instead of
|
|
||||||
applying them afterwards, as shown. The following command shows how to set all
|
|
||||||
the attributes at once:
|
|
||||||
|
|
||||||
% task add project:Wedding priority:H Book plane ticket
|
|
||||||
|
|
||||||
The 'ls' command provides the least information for each task. The 'list'
|
|
||||||
command provides more:
|
|
||||||
|
|
||||||
% task list
|
|
||||||
|
|
||||||
ID Project Pri Due Active Age Description
|
|
||||||
3 Family H 4 mins Send John a birthday card
|
|
||||||
1 Wedding H 5 mins Book plane ticket
|
|
||||||
2 Wedding M 5 mins Reserve a rental car
|
|
||||||
|
|
||||||
Notice that a task can have a due date, and can be active. The task lists are
|
|
||||||
sorted by due date, then priority. Let's add due dates:
|
|
||||||
|
|
||||||
% task 3 due:6/25/2008
|
|
||||||
% task 1 due:7/31/2008
|
|
||||||
% task list
|
|
||||||
|
|
||||||
ID Project Pri Due Active Age Description
|
|
||||||
3 Family H 6/25/2008 6 mins Send John a birthday card
|
|
||||||
1 Wedding H 7/31/2008 7 mins Book plane ticket
|
|
||||||
2 Wedding M 7 mins Reserve a rental car
|
|
||||||
|
|
||||||
If today's date is 6/23/2008, then task 3 is due in 2 days. It will be colored
|
|
||||||
yellow if your terminal supports color. To change this color, edit your
|
|
||||||
.taskrc file, and change the line to one of these alternatives:
|
|
||||||
|
|
||||||
color.due=red
|
|
||||||
color.due=on_blue
|
|
||||||
color.due=red on_blue
|
|
||||||
color.due=bold_red on_blue
|
|
||||||
|
|
||||||
Where color is one of the following:
|
|
||||||
|
|
||||||
black
|
|
||||||
blue
|
|
||||||
red
|
|
||||||
green
|
|
||||||
cyan
|
|
||||||
magenta
|
|
||||||
yellow
|
|
||||||
white
|
|
||||||
|
|
||||||
All colors are specified in this way. Take a look in .taskrc for all the other
|
|
||||||
color rules that you control.
|
|
||||||
|
|
||||||
Tagging tasks is a good way to group them, aside from specifying a project. To
|
|
||||||
add a tag to a task:
|
|
||||||
|
|
||||||
% task <id> +tag
|
|
||||||
|
|
||||||
The plus sign indicates that this is a tag. Any number of tags may be applied
|
|
||||||
to a task, and then used for searching. Tags are just single words that are
|
|
||||||
labels.
|
|
||||||
|
|
||||||
% task list
|
|
||||||
|
|
||||||
ID Project Pri Due Active Age Description
|
|
||||||
3 Family H 6/25/2008 8 mins Send John a birthday card
|
|
||||||
1 Wedding H 7/31/2008 9 mins Book plane ticket
|
|
||||||
2 Wedding M 9 mins Reserve a rental car
|
|
||||||
|
|
||||||
% task 1 +phone
|
|
||||||
% task 2 +phone
|
|
||||||
% task 3 +shopping
|
|
||||||
% task 3 +john
|
|
||||||
|
|
||||||
% task list +phone
|
|
||||||
|
|
||||||
ID Project Pri Due Active Age Description
|
|
||||||
1 Wedding H 7/31/2008 9 mins Book plane ticket
|
|
||||||
2 Wedding M 9 mins Reserve a rental car
|
|
||||||
|
|
||||||
To remove a tag from a task, use the minus sign:
|
|
||||||
|
|
||||||
% task 3 -john
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Advanced Use
|
|
||||||
------------
|
|
||||||
|
|
||||||
Here are the other commands, in some detail. Note that the command:
|
|
||||||
|
|
||||||
% task
|
|
||||||
|
|
||||||
with no arguments will generate a help message that lists all these commands.
|
|
||||||
|
|
||||||
|
|
||||||
% task projects
|
|
||||||
---------------
|
|
||||||
|
|
||||||
This report generates a list of all the different projects that you are using
|
|
||||||
along with a count of the pending tasks for each project. For example:
|
|
||||||
|
|
||||||
% task projects
|
|
||||||
|
|
||||||
Project Tasks
|
|
||||||
Errands 1
|
|
||||||
Birthdays 3
|
|
||||||
Car 2
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task summary
|
|
||||||
--------------
|
|
||||||
|
|
||||||
This report lists all the projects and a summary of their task status.
|
|
||||||
|
|
||||||
% task summary
|
|
||||||
|
|
||||||
Project Remaining Avg age Complete 0% 100%
|
|
||||||
Errands 1 3 days 50% XXXXXXXXXXXXXXXX
|
|
||||||
Birthdays 3 7 mths 0%
|
|
||||||
Car 2 2 wks 25% XXXXXXXXX
|
|
||||||
|
|
||||||
This shows the project, the remaining tasks, the average age of each task,
|
|
||||||
the percentage completed (remaining vs total) and a bar indicating that
|
|
||||||
percentage.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task delete <id>
|
|
||||||
------------------
|
|
||||||
|
|
||||||
There are two ways of getting rid of tasks - mark them as done, or delete
|
|
||||||
them.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task done <id>
|
|
||||||
----------------
|
|
||||||
|
|
||||||
This is how a task is marked as done.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task list ...
|
|
||||||
---------------
|
|
||||||
|
|
||||||
The list report will show the active status, and age of the task in addition
|
|
||||||
to the columns that "task ls" shows. It is just a more detailed list.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task long ...
|
|
||||||
---------------
|
|
||||||
|
|
||||||
The long report will show the entry date and start date of a task, in
|
|
||||||
addition to the columns that the "task list" shows.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task start <id>
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
This marks a task as started (and therefore active), which is shown in the
|
|
||||||
"list" report:
|
|
||||||
|
|
||||||
% task list
|
|
||||||
|
|
||||||
ID Project Pri Due Active Age Description
|
|
||||||
12 Errand L Remember to deposit check
|
|
||||||
...
|
|
||||||
|
|
||||||
% task start 12
|
|
||||||
% task list
|
|
||||||
|
|
||||||
ID Project Pri Due Active Age Description
|
|
||||||
12 Errand L * 3 days Remember to deposit check
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task active
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Shows all active tasks, that is, the tasks for which the "task start ..."
|
|
||||||
command was run, as shown above.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task overdue
|
|
||||||
--------------
|
|
||||||
|
|
||||||
Simply lists all the task that have a due date that is past, in "list"
|
|
||||||
format.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task history
|
|
||||||
--------------
|
|
||||||
|
|
||||||
This report shows you an overview of how many tasks were added, completed and
|
|
||||||
deleted, by month. It looks like this:
|
|
||||||
|
|
||||||
% task history
|
|
||||||
|
|
||||||
Year Month Added Completed Deleted Net
|
|
||||||
2008 March 21 16 0 5
|
|
||||||
April 13 11 1 1
|
|
||||||
May 8 14 3 -9
|
|
||||||
|
|
||||||
This shows that for the three months that task has been used, March and April
|
|
||||||
saw the total number of tasks increase, but in May the number decreased as
|
|
||||||
more task were completed than added.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task calendar
|
|
||||||
---------------
|
|
||||||
|
|
||||||
This report shows a calendar of the current month, with any task due or
|
|
||||||
overdue dates marked on it. Color is used to mark these dates.
|
|
||||||
|
|
||||||
% task calendar
|
|
||||||
|
|
||||||
May 2008
|
|
||||||
|
|
||||||
Su Mo Tu We Th Fr Sa
|
|
||||||
1 2 3
|
|
||||||
4 5 6 7 8 9 10
|
|
||||||
11 12 13 14 15 16 17
|
|
||||||
18 19 20 21 22 23 24
|
|
||||||
25 26 27 28 29 30 31
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task next
|
|
||||||
-----------
|
|
||||||
|
|
||||||
This report shows you the tasks you should probable work on next. Task will
|
|
||||||
scan all the tasks and will pick two task from each project to report. Those
|
|
||||||
two tasks will be chosen in order of overdue, due soon, High, Medium or Low
|
|
||||||
priority. Essentially task chooses the two most important task for each
|
|
||||||
project and displays them ordered in the usual way.
|
|
||||||
|
|
||||||
If you wish to show a different number of tasks per project, modify the entry
|
|
||||||
in .taskrc:
|
|
||||||
|
|
||||||
next=2
|
|
||||||
|
|
||||||
To be your preferred number.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task <id> ...
|
|
||||||
---------------
|
|
||||||
|
|
||||||
When a task id is specified, everything applies to just that task. Suppose
|
|
||||||
we needed to correct a task:
|
|
||||||
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
12 Errand L Remember to deposit chekc
|
|
||||||
...
|
|
||||||
|
|
||||||
% task 12 Remember to deposit bonus check
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
12 Errand L Remember to deposit bonus check
|
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task /from/to/
|
|
||||||
----------------
|
|
||||||
|
|
||||||
If a task has been entered with a typo, it can be easily corrected by this
|
|
||||||
command. For example:
|
|
||||||
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
12 Errand L Remember to deposit chekc
|
|
||||||
...
|
|
||||||
|
|
||||||
% task 12 /chekc/check/
|
|
||||||
% task ls
|
|
||||||
|
|
||||||
ID Project Pri Description
|
|
||||||
12 Errand L Remember to deposit check
|
|
||||||
...
|
|
||||||
|
|
||||||
This command makes single corrections to a task description.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task tags
|
|
||||||
-----------
|
|
||||||
|
|
||||||
This command will generate a list of all the tags that are currently in use
|
|
||||||
by task.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task info <id>
|
|
||||||
----------------
|
|
||||||
|
|
||||||
This command gives detailed information about a single task. It will tell
|
|
||||||
you when the task was entered, when started, its status, tags, and more.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task stats
|
|
||||||
------------
|
|
||||||
|
|
||||||
This command generates a list of statistics about your task usage, such as
|
|
||||||
the average time it takes to complete a task, how often new tasks are added,
|
|
||||||
and more.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task completed
|
|
||||||
----------------
|
|
||||||
|
|
||||||
This generates a list of all tasks that have been completed, sorted by their
|
|
||||||
completion date.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task export <file name>
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
This instructs task to write out a CSV format dump of all tasks, both pending
|
|
||||||
and completed, to the file specified. This is how you might view tasks in a
|
|
||||||
spreadsheet.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task colors
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This command displays all the colors that task supports.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task usage
|
|
||||||
------------
|
|
||||||
|
|
||||||
If logging has been enabled by the "command.logging=on" directive in the
|
|
||||||
.taskrc file, then task will record every command that is run. When this
|
|
||||||
command is run, task will display a count of how many times each command was
|
|
||||||
used.
|
|
||||||
|
|
||||||
This command is for the purpose of seeing whether command are actually used.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task version
|
|
||||||
--------------
|
|
||||||
|
|
||||||
This can be used to show the version number of task, and to display all the
|
|
||||||
current configuration settings, as read from the .taskrc file.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Interacting with the Shell
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
Certain characters are interpreted by the shell. For example, the "&". If
|
|
||||||
you wish to include the & in a task description, you need to escape it, so
|
|
||||||
the shell doesn't interpret it. For example:
|
|
||||||
|
|
||||||
% task add Buy bread & milk
|
|
||||||
|
|
||||||
This command is an error because of the &. The shell will consider this to
|
|
||||||
be two commands:
|
|
||||||
|
|
||||||
% task add Buy bread &
|
|
||||||
% milk
|
|
||||||
|
|
||||||
The shell treats the & character as an indicator that the command is complete
|
|
||||||
and should be run in the background. Then the shell considers "milk" to be a
|
|
||||||
command all by itself. Which it is not. One way to get around this is to
|
|
||||||
individually escape the & character:
|
|
||||||
|
|
||||||
% task add Buy bread \& milk
|
|
||||||
|
|
||||||
Another is to quote the entire description, with either ' or " characters:
|
|
||||||
|
|
||||||
% task add "Buy bread & milk"
|
|
||||||
|
|
||||||
Task itself interprets the commands, and it too can make mistakes. For
|
|
||||||
example, any colon : character will be interpreted by task as a delimiter
|
|
||||||
between an attribute name and its value. Currently there is no workaround
|
|
||||||
for this.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% task <id> fg:... bg:...
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Not strictly a command, the setting of the fg and bg (foreground and
|
|
||||||
background) attributes determines the colors used to represent the task.
|
|
||||||
Valid foreground colors are:
|
|
||||||
|
|
||||||
bold underline bold_underline
|
|
||||||
black bold_black underline_black bold_underline_black
|
|
||||||
red bold_red underline_red bold_underline_red
|
|
||||||
green bold_green underline_green bold_underline_green
|
|
||||||
yellow bold_yellow underline_yellow bold_underline_yellow
|
|
||||||
blue bold_blue underline_blue bold_underline_blue
|
|
||||||
magenta bold_magenta underline_magenta bold_underline_magenta
|
|
||||||
cyan bold_cyan underline_cyan bold_underline_cyan
|
|
||||||
white bold_white underline_white bold_underline_white
|
|
||||||
|
|
||||||
Valid background colors are:
|
|
||||||
|
|
||||||
on_black on_bright_black
|
|
||||||
on_red on_bright_red
|
|
||||||
on_green on_bright_green
|
|
||||||
on_yellow on_bright_yellow
|
|
||||||
on_blue on_bright_blue
|
|
||||||
on_magenta on_bright_magenta
|
|
||||||
on_cyan on_bright_cyan
|
|
||||||
on_white on_bright_white
|
|
||||||
|
|
||||||
Note that these are not just colors, but combinations of colors and
|
|
||||||
attributes.
|
|
||||||
|
|
||||||
Note also that this capability does depend on whether your terminal program
|
|
||||||
can display these colors.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Configuring Task
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Task recognizes several entries in the .taskrc file for configuration
|
|
||||||
purposes. Valid entries are of the form:
|
|
||||||
|
|
||||||
name=value
|
|
||||||
|
|
||||||
Valid examples are:
|
|
||||||
|
|
||||||
data.location This is a path to the directory containing all the task
|
|
||||||
files. By default, it is set up to be ~/.task, for
|
|
||||||
example: /Users/paul/.task
|
|
||||||
|
|
||||||
command.logging May be "on" or "off", defaulting to "off". This
|
|
||||||
determines whether task records commands. This is not
|
|
||||||
generally useful, except while developing task.
|
|
||||||
|
|
||||||
confirmation May be "yes" or "no", and determines whether task will
|
|
||||||
ask for confirmation before deleting a task.
|
|
||||||
|
|
||||||
nag This may be a string of text, or blank. It is used as
|
|
||||||
a prompt when a task is completed that is not considered
|
|
||||||
high priority. The "task next" command lists important
|
|
||||||
tasks, and completing one of those does not generate
|
|
||||||
this nagging. Default value is:
|
|
||||||
|
|
||||||
Note: try to stick to high priority tasks.
|
|
||||||
See "task next".
|
|
||||||
|
|
||||||
next Is a number, defaulting to 2, which is the number of
|
|
||||||
tasks for each project that are shown in the "task next"
|
|
||||||
command.
|
|
||||||
|
|
||||||
curses Determines whether task uses ncurses to establish the
|
|
||||||
size of the window you are using, for text wrapping.
|
|
||||||
|
|
||||||
blanklines May be "on" or "off". Prevents the display of
|
|
||||||
unnecessary blank lines so that task makes better use
|
|
||||||
screen real estate on small-screened devices.
|
|
||||||
|
|
||||||
dateformat This is a string of characters that define how task
|
|
||||||
formats dates. The default value is:
|
|
||||||
|
|
||||||
m/d/Y
|
|
||||||
|
|
||||||
which means dates look like:
|
|
||||||
|
|
||||||
6/7/2008
|
|
||||||
|
|
||||||
The string should contain the characters:
|
|
||||||
|
|
||||||
m minimal-digit month 1, 12
|
|
||||||
d minimal-digit day 1, 30
|
|
||||||
y two-digit year 08
|
|
||||||
M two-digit month 01, 12
|
|
||||||
D two-digit day 01, 30
|
|
||||||
Y four-digit year 2008
|
|
||||||
|
|
||||||
The string may also contain other characters to act as
|
|
||||||
spacers, or formatting. Other values could include:
|
|
||||||
|
|
||||||
d/m/Y 7/6/2008
|
|
||||||
YMD 20080607
|
|
||||||
m-d-y 6-7-08
|
|
||||||
|
|
||||||
showage May be "yes" or "no". Determines whether the "Age"
|
|
||||||
column appears on the "list" and "next" reports.
|
|
||||||
|
|
||||||
color May be "on" or "off". Determines whether task uses
|
|
||||||
color.
|
|
||||||
|
|
||||||
color.overdue These are the coloration rules. They correspond to a
|
|
||||||
color.due particular attribute of a task, such as it being due, or
|
|
||||||
color.pri.H being active, and specifies the automatic coloring of
|
|
||||||
color.pri.M that task.
|
|
||||||
color.pri.L
|
|
||||||
color.pri.none The value may be one optional foreground color (see
|
|
||||||
color.active below) and one optional background color.
|
|
||||||
color.tagged
|
|
||||||
For example, the value may be:
|
|
||||||
|
|
||||||
bold_red on_bright_yellow
|
|
||||||
|
|
||||||
color.tag.X Colors any task that has the tag X.
|
|
||||||
|
|
||||||
color.project.X Colors any task assigned to project X.
|
|
||||||
|
|
||||||
color.keyword.X Colors any task where the description contains X.
|
|
||||||
|
|
||||||
|
|
||||||
Colors
|
|
||||||
------
|
|
||||||
|
|
||||||
Task supports color in several places. In cases where you may specify a
|
|
||||||
color, a foreground, a background, or a combination foreground and background
|
|
||||||
color may be used. The following are valid foreground colors:
|
|
||||||
|
|
||||||
bold underline bold_underline
|
|
||||||
black bold_black underline_black bold_underline_black
|
|
||||||
red bold_red underline_red bold_underline_red
|
|
||||||
green bold_green underline_green bold_underline_green
|
|
||||||
yellow bold_yellow underline_yellow bold_underline_yellow
|
|
||||||
blue bold_blue underline_blue bold_underline_blue
|
|
||||||
magenta bold_magenta underline_magenta bold_underline_magenta
|
|
||||||
cyan bold_cyan underline_cyan bold_underline_cyan
|
|
||||||
white bold_white underline_white bold_underline_white
|
|
||||||
|
|
||||||
and the following are valid background colors:
|
|
||||||
|
|
||||||
on_black on_bright_black
|
|
||||||
on_red on_bright_red
|
|
||||||
on_green on_bright_green
|
|
||||||
on_yellow on_bright_yellow
|
|
||||||
on_blue on_bright_blue
|
|
||||||
on_magenta on_bright_magenta
|
|
||||||
on_cyan on_bright_cyan
|
|
||||||
on_white on_bright_white
|
|
||||||
|
|
||||||
12
adsense.html
12
adsense.html
@@ -1,12 +0,0 @@
|
|||||||
<script type="text/javascript"><!--
|
|
||||||
google_ad_client = "pub-9709799404235424";
|
|
||||||
/* Task Main */
|
|
||||||
google_ad_slot = "8660617875";
|
|
||||||
google_ad_width = 120;
|
|
||||||
google_ad_height = 600;
|
|
||||||
//-->
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript"
|
|
||||||
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
|
||||||
</script>
|
|
||||||
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
Some considerable time ago - longer than I had hoped - I demonstrated an
|
|
||||||
alternate implementation of the todo script, called task, in the form of a
|
|
||||||
YouTube movie:
|
|
||||||
|
|
||||||
http://www.youtube.com/watch?v=l68LCl6BYvs
|
|
||||||
|
|
||||||
A lot has happened since then, and the task program has been slowly improving
|
|
||||||
thanks to feedback from some early testers, and continuous use by me. Today,
|
|
||||||
I have uploaded a new movie:
|
|
||||||
|
|
||||||
http://www.youtube.com/watch?v=D2Kn4DMOVSw
|
|
||||||
|
|
||||||
This movie includes most of the changes and improvements to task, but behind
|
|
||||||
the scenes are the biggest changes. There was a rewrite of the underlying
|
|
||||||
storage mechanism yielding a clean API for the front end, and the code was
|
|
||||||
reviewed for portability and converted to use GNU autoconf/automake.
|
|
||||||
|
|
||||||
Task has been released under GPL, and so far has been tested on:
|
|
||||||
|
|
||||||
Max OS X 10.4 (Tiger)
|
|
||||||
Max OS X 10.5 (Leopard)
|
|
||||||
Fedora 8
|
|
||||||
Fedora 9
|
|
||||||
Ubuntu 8 (Hardy Heron)
|
|
||||||
Solaris 10
|
|
||||||
|
|
||||||
Task has been making me more organized and productive for some time now.
|
|
||||||
Perhaps some of you might find it useful, and I welcome feedback of all kinds.
|
|
||||||
|
|
||||||
You can find the task source code at:
|
|
||||||
|
|
||||||
http://www.beckingham.net/task-1.0.0.tar.gz
|
|
||||||
|
|
||||||
Thank you.
|
|
||||||
Paul Beckingham
|
|
||||||
|
|
||||||
281
binary/COPYING.txt
Normal file
281
binary/COPYING.txt
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
51
binary/README.txt
Normal file
51
binary/README.txt
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
Thank you for taking a look at task. Task is a GTD utility featuring:
|
||||||
|
|
||||||
|
- Robust C++ implementation
|
||||||
|
- Tags
|
||||||
|
- Colorful, tabular output
|
||||||
|
- Reports, graphs
|
||||||
|
- Lots of commands
|
||||||
|
- Low-level API
|
||||||
|
- Abbreviations for all commands, options
|
||||||
|
- Multi-user file locking
|
||||||
|
- Clean architecture allowing quick addition of new features
|
||||||
|
- Recurring tasks
|
||||||
|
|
||||||
|
It is intended that features, mainly in the form of reports will be added
|
||||||
|
frequently, with best practices and useful reports evolving from usage patterns.
|
||||||
|
|
||||||
|
Task is scope-limited to GTD functionality only.
|
||||||
|
|
||||||
|
You may want to watch the old task movie on YouTube:
|
||||||
|
|
||||||
|
http://www.youtube.com/watch?v=l68LCl6BYvs
|
||||||
|
|
||||||
|
or the new improved one:
|
||||||
|
|
||||||
|
http://www.youtube.com/watch?v=D2Kn4DMOVSw
|
||||||
|
|
||||||
|
Either will give you a fairly good idea of what task is capable of, and
|
||||||
|
whether it fits in to your way of working. As a command line application,
|
||||||
|
task is not for everyone and some of you may prefer to not proceed. The
|
||||||
|
movie or online tutorial file are the quickest way for you to make that
|
||||||
|
decision. The online tutorial can be found at:
|
||||||
|
|
||||||
|
http://www.beckingham.net/task.html
|
||||||
|
|
||||||
|
Task is based on ideas presented in the todo.sh script, found on:
|
||||||
|
|
||||||
|
http://todotxt.org
|
||||||
|
|
||||||
|
Task has many more features than todo.sh, but fundamentally, they are
|
||||||
|
both working toward the same goals, which is to help you follow basic
|
||||||
|
Getting Things Done (GTD) principles.
|
||||||
|
|
||||||
|
All feedback is welcome, in addition to any bug reports or patches to:
|
||||||
|
|
||||||
|
task@beckingham.net
|
||||||
|
|
||||||
|
Got an idea for an enhancement? Send a message!
|
||||||
|
|
||||||
|
I have found that task makes me more productive and organized.
|
||||||
|
I hope task can do the same for you.
|
||||||
|
|
||||||
39
configure.ac
39
configure.ac
@@ -2,7 +2,36 @@
|
|||||||
# Process this file with autoconf to produce a configure script.
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
AC_PREREQ(2.61)
|
AC_PREREQ(2.61)
|
||||||
AC_INIT(task, 1.2.0, bugs@beckingham.net)
|
AC_INIT(task, 1.6.0, bugs@beckingham.net)
|
||||||
|
|
||||||
|
CFLAGS="${CFLAGS=}"
|
||||||
|
CXXFLAGS="${CXXFLAGS=}"
|
||||||
|
# this macro is used to get the arguments supplied
|
||||||
|
# to the configure script (./configure --enable-debug)
|
||||||
|
# Check if we have enable debug support.
|
||||||
|
AC_MSG_CHECKING(whether to enable debugging)
|
||||||
|
debug_default="yes"
|
||||||
|
AC_ARG_ENABLE(debug, [ --enable-debug=[no/yes] turn on debugging
|
||||||
|
[default=$debug_default]],, enable_debug=$debug_default)
|
||||||
|
# Yes, shell scripts can be used
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
CXXFLAGS="$CFLAGS -Wall -pedantic -ggdb3 -DDEBUG"
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
CXXFLAGS="$CFLAGS -Wall -pedantic -O3"
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for OS.
|
||||||
|
OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
|
||||||
|
if test "$OS" = "sunos"; then
|
||||||
|
AC_MSG_NOTICE([OS Solaris detected])
|
||||||
|
AC_DEFINE([SOLARIS], [], [Compiling on Solaris])
|
||||||
|
else
|
||||||
|
AC_MSG_NOTICE([OS Non-Solaris detected])
|
||||||
|
AC_DEFINE([LINUX], [], [Compiling on Non-Solaris])
|
||||||
|
fi
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE
|
AM_INIT_AUTOMAKE
|
||||||
AC_CONFIG_SRCDIR([src/task.cpp])
|
AC_CONFIG_SRCDIR([src/task.cpp])
|
||||||
AC_CONFIG_HEADER([auto.h])
|
AC_CONFIG_HEADER([auto.h])
|
||||||
@@ -12,14 +41,15 @@ AC_PROG_CXX
|
|||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_LANG(C++)
|
AC_LANG(C++)
|
||||||
|
|
||||||
|
AC_SUBST(CFLAGS)
|
||||||
|
|
||||||
# Checks for libraries.
|
# Checks for libraries.
|
||||||
AC_CHECK_LIB(ncurses,initscr)
|
AC_CHECK_LIB(ncurses,initscr)
|
||||||
AC_CHECK_LIB(ncurses,endwin)
|
|
||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
AC_HEADER_STDC
|
AC_HEADER_STDC
|
||||||
AC_CHECK_HEADERS([stdlib.h sys/file.h sys/stat.h sys/time.h unistd.h])
|
AC_CHECK_HEADERS([stdlib.h sys/file.h sys/stat.h sys/time.h unistd.h])
|
||||||
AC_CHECK_HEADERS([string vector map])
|
AC_CHECK_HEADERS([sstream string vector map])
|
||||||
|
|
||||||
# Checks for typedefs, structures, and compiler characteristics.
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_HEADER_STDBOOL
|
AC_HEADER_STDBOOL
|
||||||
@@ -33,10 +63,11 @@ AC_STRUCT_TM
|
|||||||
AC_FUNC_MKTIME
|
AC_FUNC_MKTIME
|
||||||
AC_FUNC_SELECT_ARGTYPES
|
AC_FUNC_SELECT_ARGTYPES
|
||||||
AC_CHECK_FUNCS([select])
|
AC_CHECK_FUNCS([select])
|
||||||
AC_CHECK_FUNC(flock, [AC_DEFINE([HAVE_FLOCK], [1], [Found flock])])
|
#AC_CHECK_FUNC(flock, [AC_DEFINE([HAVE_FLOCK], [1], [Found flock])])
|
||||||
AC_CHECK_FUNC(uuid_unparse_lower, [AC_DEFINE([HAVE_UUID], [1], [Found uuid_unparse_lower])])
|
AC_CHECK_FUNC(uuid_unparse_lower, [AC_DEFINE([HAVE_UUID], [1], [Found uuid_unparse_lower])])
|
||||||
AC_CHECK_FUNC(random, [AC_DEFINE([HAVE_RANDOM], [1], [Found random])])
|
AC_CHECK_FUNC(random, [AC_DEFINE([HAVE_RANDOM], [1], [Found random])])
|
||||||
AC_CHECK_FUNC(srandom, [AC_DEFINE([HAVE_SRANDOM], [1], [Found srandom])])
|
AC_CHECK_FUNC(srandom, [AC_DEFINE([HAVE_SRANDOM], [1], [Found srandom])])
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile src/Makefile])
|
AC_CONFIG_FILES([Makefile src/Makefile])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
|
|||||||
40
grammar.bnf
Normal file
40
grammar.bnf
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
|
||||||
|
# This is a full BNF grammar for the task command line. It is intended that a
|
||||||
|
# future release of task will incorporate a complete lexer/parser implementing
|
||||||
|
# this grammar, which will allow for more sophisticated command lines, for
|
||||||
|
# example:
|
||||||
|
#
|
||||||
|
# task delete 1 2 4-7
|
||||||
|
# task add pri:H pro:X -- pro pri 1 ///
|
||||||
|
#
|
||||||
|
|
||||||
|
command ::= simple_command
|
||||||
|
| filter_command filter?
|
||||||
|
| id_command
|
||||||
|
| "export" file
|
||||||
|
| <id>
|
||||||
|
| <id> <substitution> ;
|
||||||
|
|
||||||
|
simple_command ::= "version" | "help" | "projects" | "tags" | "next" | "stats"
|
||||||
|
| "color" ;
|
||||||
|
|
||||||
|
filter_command ::= "summary" | "history" | "calendar" | "active" | "overdue"
|
||||||
|
| "oldest" | "newest" | "add" | "list" | "long" | "ls"
|
||||||
|
| "completed" ;
|
||||||
|
|
||||||
|
id_command ::= "delete" | "undelete" | "info" | "start" | "end" | "done"
|
||||||
|
| "undo" ;
|
||||||
|
|
||||||
|
filter ::= filter_part+ ;
|
||||||
|
|
||||||
|
filter_part ::= tag_add | tag_remove | attribute | word ;
|
||||||
|
|
||||||
|
tag_add ::= "+" word ;
|
||||||
|
tag_remove ::= "-" word ;
|
||||||
|
attribute ::= word ":" word ;
|
||||||
|
word ::=
|
||||||
|
file ::=
|
||||||
|
id ::= digit+ ;
|
||||||
|
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
|
||||||
|
substitution ::= "/" word+ "/" word* "/" "g"? ;
|
||||||
|
|
||||||
131
html/30second.html
Normal file
131
html/30second.html
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>30-Second Tutorial</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="simple">30-second Tutorial</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
For the excessively lazy.
|
||||||
|
Add two tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add Read task documents later
|
||||||
|
% task add priority:H Pay bills</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Easy. See that second one has a High priority? Now let's look at those tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
2 H Pay bills
|
||||||
|
1 Read task documents later</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
They are ordered by priority. Let's mark number 2 as done:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 2 done
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
1 Read task documents later</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Gone. Now let's delete that remaining task, because, well,
|
||||||
|
why bother now we are already using task:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task delete 1
|
||||||
|
% task ls
|
||||||
|
No matches</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Easy. But now consider checking out what task can really do...
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
493
html/advanced.html
Normal file
493
html/advanced.html
Normal file
@@ -0,0 +1,493 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Advanced Usage</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="advanced">Advanced Usage</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Here are the other commands, in some detail.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task</strong>
|
||||||
|
<p>
|
||||||
|
With no arguments, this command will generate a help message that
|
||||||
|
lists all these commands.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
However, if the following configuration variable is specified:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>default.command=list pri:H</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Then this command will be run whenever task is run without arguments.
|
||||||
|
This means that your most common task command can be run simply
|
||||||
|
with the command:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task
|
||||||
|
[task list project:foo]
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
1 foo H Design the thing
|
||||||
|
2 foo Build the thing</code></pre>
|
||||||
|
|
||||||
|
<strong>% task projects</strong>
|
||||||
|
<p>
|
||||||
|
This report generates a list of all the different projects that you
|
||||||
|
are using along with a count of the pending tasks for each project.
|
||||||
|
For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task projects
|
||||||
|
|
||||||
|
Project Tasks
|
||||||
|
Errands 1
|
||||||
|
Birthdays 3
|
||||||
|
Car 2</code></pre>
|
||||||
|
|
||||||
|
|
||||||
|
<strong>% task summary</strong>
|
||||||
|
<p>
|
||||||
|
This report lists all the projects and a summary of their task
|
||||||
|
status.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task summary
|
||||||
|
|
||||||
|
Project Remaining Avg age Complete 0% 100%
|
||||||
|
Errands 1 3 days 50% XXXXXXXXXXXXXXXX
|
||||||
|
Birthdays 3 7 mths 0%
|
||||||
|
Car 2 2 wks 25% XXXXXXXXX</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This shows the project, the remaining tasks, the average age of each
|
||||||
|
task, the percentage completed (remaining vs total) and a bar
|
||||||
|
indicating that percentage.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task <id> append ...</strong>
|
||||||
|
<p>
|
||||||
|
Appends the additional description to an existing task.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task annotate <id> additional note...</strong>
|
||||||
|
<p>
|
||||||
|
Allows an annotation to be attached to an existing task. Each
|
||||||
|
annotation has a time stamp, and when displayed, the annotations
|
||||||
|
are shown under the task description. For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add Go to the supermarket
|
||||||
|
% task annotate 1 need milk
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
1 Go to the supermarket
|
||||||
|
3/23/2009 need milk</code></pre>
|
||||||
|
<p>
|
||||||
|
The date of the annotation uses the "dateformat" configuration
|
||||||
|
variable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task delete <id></strong>
|
||||||
|
<p>
|
||||||
|
There are two ways of getting rid of tasks - mark them as done, or
|
||||||
|
delete them.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task undelete <id></strong>
|
||||||
|
<p>
|
||||||
|
If a task was inadvertently deleted, it may be undeleted, provided that no
|
||||||
|
reports have been run since the deletion. Ideally, the undelete command is
|
||||||
|
run immediately after the erroneous delete command.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If a report is run (such as "task list"), then task performs a garbage
|
||||||
|
collection that removes deleted tasks, and the task cannot be undeleted.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task done <id></strong>
|
||||||
|
<p>
|
||||||
|
This is how a task is marked as done.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task undo <id></strong>
|
||||||
|
<p>
|
||||||
|
If a task was recently marked as done, and no report has been run, it
|
||||||
|
may be possible to cancel the completed status of the task as though
|
||||||
|
"task done ..." was never run.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task list ...</strong>
|
||||||
|
<p>
|
||||||
|
The list report will show the active status, and age of the task in
|
||||||
|
addition to the columns that "task ls" shows. It is just a more
|
||||||
|
detailed list.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task long ...</strong>
|
||||||
|
<p>
|
||||||
|
The long report will show the entry date and start date of a task,
|
||||||
|
in addition to the columns that the "task list" shows.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task start <id></strong>
|
||||||
|
<p>
|
||||||
|
This marks a task as started (and therefore active), which is shown
|
||||||
|
in the "list" report:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task list
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
12 Errand L Remember to deposit check
|
||||||
|
...
|
||||||
|
|
||||||
|
% task start 12
|
||||||
|
% task list
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
12 Errand L * 3 days Remember to deposit check
|
||||||
|
...</code></pre>
|
||||||
|
|
||||||
|
<strong>% task active</strong>
|
||||||
|
<p>
|
||||||
|
Shows all active tasks, that is, the tasks for which the
|
||||||
|
"task start ..." command was run, as shown above.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task stop <id></strong>
|
||||||
|
<p>
|
||||||
|
Marks a task as inactive, by removing the start time.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task overdue</strong>
|
||||||
|
<p>
|
||||||
|
Simply lists all the task that have a due date that is past, in
|
||||||
|
"list" format.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task history</strong>
|
||||||
|
<p>
|
||||||
|
This report shows you an overview of how many tasks were added,
|
||||||
|
completed and deleted, by month. It looks like this:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task history
|
||||||
|
|
||||||
|
Year Month Added Completed Deleted Net
|
||||||
|
2008 March 21 16 0 5
|
||||||
|
April 13 11 1 1
|
||||||
|
May 8 14 3 -9</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This shows that for the three months that task has been used, March
|
||||||
|
and April saw the total number of tasks increase, but in May the
|
||||||
|
number decreased as more task were completed than added.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task calendar</strong>
|
||||||
|
<p>
|
||||||
|
This report shows a calendar of the current month, with any task
|
||||||
|
due or overdue dates marked on it. Color is used to mark these
|
||||||
|
dates.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task calendar
|
||||||
|
|
||||||
|
May 2008
|
||||||
|
|
||||||
|
Su Mo Tu We Th Fr Sa
|
||||||
|
1 2 3
|
||||||
|
4 5 6 7 8 9 10
|
||||||
|
11 12 13 14 15 16 17
|
||||||
|
18 19 20 21 22 23 24
|
||||||
|
25 26 27 28 29 30 31</code></pre>
|
||||||
|
|
||||||
|
<strong>% task next</strong>
|
||||||
|
<p>
|
||||||
|
This report shows you the tasks you should probable work on next.
|
||||||
|
Task will scan all the tasks and will pick two task from each
|
||||||
|
project to report. Those two tasks will be chosen in order of
|
||||||
|
overdue, due soon, High, Medium or Low priority. Essentially task
|
||||||
|
chooses the two most important task for each project and displays
|
||||||
|
them ordered in the usual way.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you wish to show a different number of tasks per project, modify
|
||||||
|
the entry in .taskrc:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>next=2</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To be your preferred number.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task <id> ...</strong>
|
||||||
|
<p>
|
||||||
|
When a task id is specified, everything applies to just that task.
|
||||||
|
Suppose we needed to correct a task:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
12 Errand L Remember to deposit chekc
|
||||||
|
...
|
||||||
|
|
||||||
|
% task 12 Remember to deposit bonus check
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
12 Errand L Remember to deposit bonus check
|
||||||
|
...</code></pre>
|
||||||
|
|
||||||
|
<strong>% task oldest</strong>
|
||||||
|
<p>
|
||||||
|
Lists the oldest tasks. Shows 10 tasks by default, but can be
|
||||||
|
set via the "oldest" configuration variable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task newest</strong>
|
||||||
|
<p>
|
||||||
|
Lists the newest tasks. Shows 10 tasks by default, but can be
|
||||||
|
set via the "newest" configuration variable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task <id> /from/to/</strong>
|
||||||
|
<p>
|
||||||
|
If a task has been entered with a typo, it can be easily corrected
|
||||||
|
by this command. For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
12 Errand L Remember to deposit chekc
|
||||||
|
...
|
||||||
|
|
||||||
|
% task 12 /chekc/check/
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
12 Errand L Remember to deposit check
|
||||||
|
...</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This command makes a single correction to the first occurrence of
|
||||||
|
"from" in a task description.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If a task is annotated, the annotation can also be modified using
|
||||||
|
this command.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task <id> /from/to/g</strong>
|
||||||
|
<p>
|
||||||
|
The "g" modifier to the substitution command causes every occurrence
|
||||||
|
of "from" to be replaced with "to", in both the description and any
|
||||||
|
annotations.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task tags</strong>
|
||||||
|
<p>
|
||||||
|
This command will generate a list of all the tags that are currently
|
||||||
|
in use by task.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task info <id></strong>
|
||||||
|
<p>
|
||||||
|
This command gives detailed information about a single task. It
|
||||||
|
will tell you when the task was entered, when started, its status,
|
||||||
|
tags, and more.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task stats</strong>
|
||||||
|
<p>
|
||||||
|
This command generates a list of statistics about your task usage,
|
||||||
|
such as the average time it takes to complete a task, how often new
|
||||||
|
tasks are added, and more.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task completed</strong>
|
||||||
|
<p>
|
||||||
|
This generates a list of all tasks that have been completed, sorted
|
||||||
|
by their completion date.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task export <file name></strong>
|
||||||
|
<p>
|
||||||
|
This instructs task to write out a CSV format dump of all tasks,
|
||||||
|
both pending and completed, to the file specified. This is how you
|
||||||
|
might view tasks in a spreadsheet.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task colors</strong>
|
||||||
|
<p>
|
||||||
|
This command displays all the colors that task supports.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task version</strong>
|
||||||
|
<p>
|
||||||
|
This can be used to show the version number of task, and to display
|
||||||
|
all the current configuration settings, as read from the .taskrc
|
||||||
|
file.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task rc:<file> ...</strong>
|
||||||
|
<p>
|
||||||
|
By specifying rc:<file>, it is possible to force task to use an alternate
|
||||||
|
.taskrc file. By default, task looks in your home directory, so these two
|
||||||
|
commands are essentially identical:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task list
|
||||||
|
% task rc:~/.taskrc list</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
What this override allows, is the possibility of keeping your task lists
|
||||||
|
completely separate, say for work and home. This can be accomplished with
|
||||||
|
the following commands (valid for bash):
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% alias htask="task rc:/home/me/.taskrc_home"
|
||||||
|
% alias wtask="task rc:/home/me/.taskrc_work"
|
||||||
|
% htask list
|
||||||
|
...
|
||||||
|
% wtask list
|
||||||
|
...</code></pre>
|
||||||
|
|
||||||
|
<strong>% task <id> "new description"</strong>
|
||||||
|
<p>
|
||||||
|
Not strictly a command, the replacement of the description can
|
||||||
|
be achieved by quoting the entire description. The quotes are
|
||||||
|
necessary in case one of the description words looks like a task
|
||||||
|
command.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<strong>% task <id> fg:... bg:...</strong>
|
||||||
|
<p>
|
||||||
|
Not strictly a command, the setting of the fg and bg (foreground
|
||||||
|
and background) attributes determines the colors used to represent
|
||||||
|
the task. Valid foreground colors are:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code> bold underline bold_underline
|
||||||
|
black bold_black underline_black bold_underline_black
|
||||||
|
red bold_red underline_red bold_underline_red
|
||||||
|
green bold_green underline_green bold_underline_green
|
||||||
|
yellow bold_yellow underline_yellow bold_underline_yellow
|
||||||
|
blue bold_blue underline_blue bold_underline_blue
|
||||||
|
magenta bold_magenta underline_magenta bold_underline_magenta
|
||||||
|
cyan bold_cyan underline_cyan bold_underline_cyan
|
||||||
|
white bold_white underline_white bold_underline_white</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that these are not just colors, but combinations of colors and
|
||||||
|
attributes. Valid background colors are:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>on_black on_bright_black
|
||||||
|
on_red on_bright_red
|
||||||
|
on_green on_bright_green
|
||||||
|
on_yellow on_bright_yellow
|
||||||
|
on_blue on_bright_blue
|
||||||
|
on_magenta on_bright_magenta
|
||||||
|
on_cyan on_bright_cyan
|
||||||
|
on_white on_bright_white</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note also that this capability does depend on whether your terminal
|
||||||
|
program can display these colors.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
128
html/color.html
Normal file
128
html/color.html
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Color Usage</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="color">Colors</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Task supports color in several places. In cases where you may
|
||||||
|
specify a color, a foreground, a background, or a combination
|
||||||
|
foreground and background color may be used. The following are
|
||||||
|
valid foreground colors:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code> bold underline bold_underline
|
||||||
|
black bold_black underline_black bold_underline_black
|
||||||
|
red bold_red underline_red bold_underline_red
|
||||||
|
green bold_green underline_green bold_underline_green
|
||||||
|
yellow bold_yellow underline_yellow bold_underline_yellow
|
||||||
|
blue bold_blue underline_blue bold_underline_blue
|
||||||
|
magenta bold_magenta underline_magenta bold_underline_magenta
|
||||||
|
cyan bold_cyan underline_cyan bold_underline_cyan
|
||||||
|
white bold_white underline_white bold_underline_white</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
and the following are valid background colors:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>on_black on_bright_black
|
||||||
|
on_red on_bright_red
|
||||||
|
on_green on_bright_green
|
||||||
|
on_yellow on_bright_yellow
|
||||||
|
on_blue on_bright_blue
|
||||||
|
on_magenta on_bright_magenta
|
||||||
|
on_cyan on_bright_cyan
|
||||||
|
on_white on_bright_white</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Depending on your terminal color choices, task can display all
|
||||||
|
the colors it supports with the command:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<img src="images/color.png" />
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
428
html/config.html
Normal file
428
html/config.html
Normal file
@@ -0,0 +1,428 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Configuration</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="config">Configuring Task</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Task recognizes several entries in the .taskrc file for
|
||||||
|
configuration purposes. Valid entries are of the form:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>name=value</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Valid examples are:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dt>data.location</dt>
|
||||||
|
<dd>
|
||||||
|
This is a path to the directory containing all the task files.
|
||||||
|
By default, it is set up to be ~/.task, for example:
|
||||||
|
/Users/paul/.task
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>confirmation</dt>
|
||||||
|
<dd>
|
||||||
|
May be "yes" or "no", and determines whether task will ask for
|
||||||
|
confirmation before deleting a task.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>echo.command</dt>
|
||||||
|
<dd>
|
||||||
|
May be "yes" or "no", and causes task to display the ID and
|
||||||
|
description of any task when you run the start, stop, do, undo,
|
||||||
|
delete and undelete commands. The default value is "yes".
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>nag</dt>
|
||||||
|
<dd>
|
||||||
|
This may be a string of text, or blank. It is used as a prompt
|
||||||
|
when a task is completed that is not considered high priority.
|
||||||
|
The "task next" command lists important tasks, and completing
|
||||||
|
one of those does not generate this nagging. Default value is:
|
||||||
|
|
||||||
|
<strong>Note: try to stick to high priority tasks. See "task next".</strong>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>next</dt>
|
||||||
|
<dd>
|
||||||
|
Is a number, defaulting to 2, which is the number of tasks for
|
||||||
|
each project that are shown in the "task next" command.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>curses</dt>
|
||||||
|
<dd>
|
||||||
|
Determines whether task uses ncurses to establish the size of
|
||||||
|
the window you are using, for text wrapping.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>blanklines</dt>
|
||||||
|
<dd>
|
||||||
|
May be "on" or "off". Prevents the display of unnecessary blank
|
||||||
|
lines so that task makes better use screen real estate on small-
|
||||||
|
screened devices.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>dateformat</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
This is a string of characters that define how task formats dates.
|
||||||
|
The default value is:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>m/d/Y</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
which means dates look like:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>6/7/2008</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The string should contain the characters:
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th class="table_h">Character</th>
|
||||||
|
<th class="table_h">Meaning</th>
|
||||||
|
<th class="table_h">Example</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">m</td>
|
||||||
|
<td class="table_d">minimal-digit month</td>
|
||||||
|
<td class="table_d">1, 12</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">d</td>
|
||||||
|
<td class="table_d">minimal-digit day</td>
|
||||||
|
<td class="table_d">1, 30</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">y</td>
|
||||||
|
<td class="table_d">two-digit year</td>
|
||||||
|
<td class="table_d">08</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">M</td>
|
||||||
|
<td class="table_d">two-digit month</td>
|
||||||
|
<td class="table_d">01, 12</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">D</td>
|
||||||
|
<td class="table_d">two-digit day</td>
|
||||||
|
<td class="table_d">01, 30</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">Y</td>
|
||||||
|
<td class="table_d">four-digit year</td>
|
||||||
|
<td class="table_d">2008</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The string may also contain other characters to act as spacers,
|
||||||
|
or formatting. Other values could include (but are not limited to):
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th class="table_h">dateformat</td>
|
||||||
|
<th class="table_h">How it looks</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">d/m/Y</td>
|
||||||
|
<td class="table_d">7/6/2008</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">YMD</td>
|
||||||
|
<td class="table_d">20080607</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">m-d-y</td>
|
||||||
|
<td class="table_d">6-7-08</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>monthsperline</dt>
|
||||||
|
<dd>
|
||||||
|
Determines how many months the "task calendar" command
|
||||||
|
renders across the screen. Defaults to however many will
|
||||||
|
fit. If more months that will fit are specified, task will
|
||||||
|
only show as many that will fit.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>defaultwidth</dt>
|
||||||
|
<dd>
|
||||||
|
The width of tables used when ncurses support is not available.
|
||||||
|
Defaults to 80.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>due</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
This is the number of days into the future that define when a
|
||||||
|
task is considered due, and is colored accordingly.
|
||||||
|
Defaults to 7.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>color</dt>
|
||||||
|
<dd>
|
||||||
|
May be "on" or "off". Determines whether task uses color.
|
||||||
|
When "off", task will use dashes (-----) to underline column
|
||||||
|
headings.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
color.overdue<br />
|
||||||
|
color.due<br />
|
||||||
|
color.pri.H<br />
|
||||||
|
color.pri.M<br />
|
||||||
|
color.pri.L<br />
|
||||||
|
color.pri.none<br />
|
||||||
|
color.active<br />
|
||||||
|
color.tagged<br />
|
||||||
|
color.recurring
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
These are the coloration rules. They correspond to a particular
|
||||||
|
attribute of a task, such as it being due, or being active, and
|
||||||
|
specifies the automatic coloring of that task. The value may
|
||||||
|
be one optional foreground color (see below) and one optional
|
||||||
|
background color. For example, the value may be:
|
||||||
|
<br />
|
||||||
|
<strong>bold_red on_bright_yellow</strong>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>color.tag.X</dt>
|
||||||
|
<dd>
|
||||||
|
Colors any task that has the tag X.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>color.project.X</dt>
|
||||||
|
<dd>
|
||||||
|
Colors any task assigned to project X.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>color.keyword.X</dt>
|
||||||
|
<dd>
|
||||||
|
Colors any task where the description contains X.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>default.project</dt>
|
||||||
|
<dd>
|
||||||
|
Provides a default project name for the "task add ..." command.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>default.priority</dt>
|
||||||
|
<dd>
|
||||||
|
Provides a default priority for the "task add ..." command.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>default.command</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Provides a default command that is run every time task is
|
||||||
|
invoked with no arguments. For example, if set to:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>default.command=list project:foo</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Then task will run the "list project:foo" command if no
|
||||||
|
command is specified. This means that by merely typing:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task
|
||||||
|
[task list project:foo]
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
1 foo H Design the thing
|
||||||
|
2 foo Build the thing</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that the value of this variable is simply the command
|
||||||
|
line that you would ordinarily type, but without the
|
||||||
|
preceding "task" program name.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>shadow.file</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
If specified, designates a file path that will be autoamtically
|
||||||
|
written to by task, whenever the task database changes. In other
|
||||||
|
words, it is automatically kept up to date.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The shadow.command configuration variable is used to determine
|
||||||
|
which report is written to the shadow file. There is no color
|
||||||
|
used in the shadow file.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This feature can be useful in maintaining a current file for
|
||||||
|
use by the "Samurize" program.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>shadow.command</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
This is the command that is run to maintain the shadow file,
|
||||||
|
determined by the shadow.file configuration variable. The
|
||||||
|
format is identical to that of default.command - please see
|
||||||
|
the documentation for default.command.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If this command is not specified, task will use the default.command
|
||||||
|
value instead. If that is not specified, the command "list" is used.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>shadow.notify</dt>
|
||||||
|
<dd>
|
||||||
|
When this value is set to "on", task will display a message
|
||||||
|
whenever the shadow file is updated by some task command.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>locking</dt>
|
||||||
|
<dd>
|
||||||
|
<p>
|
||||||
|
Determines whether task uses file locking when accessing the pending.data
|
||||||
|
and completed.data files. Default to "on". Solaris users who store
|
||||||
|
the task data files on an NFS mount may need to set locking to "off".
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that setting this value to "off" is dangerous. It means that
|
||||||
|
another program may write to the task.pending file when task is
|
||||||
|
attempting to do the same.
|
||||||
|
</p>
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<dt>import.synonym.id</dt>
|
||||||
|
<dt>import.synonym.uuid</dt>
|
||||||
|
<dt>import.synonym.status</dt>
|
||||||
|
<dt>import.synonym.tags</dt>
|
||||||
|
<dt>import.synonym.entry</dt>
|
||||||
|
<dt>import.synonym.start</dt>
|
||||||
|
<dt>import.synonym.due</dt>
|
||||||
|
<dt>import.synonym.recur</dt>
|
||||||
|
<dt>import.synonym.end</dt>
|
||||||
|
<dt>import.synonym.project</dt>
|
||||||
|
<dt>import.synonym.priority</dt>
|
||||||
|
<dt>import.synonym.fg</dt>
|
||||||
|
<dt>import.synonym.bg</dt>
|
||||||
|
<dt>import.synonym.description</dt>
|
||||||
|
<dd>
|
||||||
|
If any of these configuration variables are found, they influence
|
||||||
|
data import by specifying a single additional field name synonym.
|
||||||
|
If a data import is failing because certain column names are not
|
||||||
|
being recognized, then this is how the field mapping can be
|
||||||
|
controlled.
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that the command:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>task version</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
will display the configuration variables found in the .taskrc file,
|
||||||
|
and will warn you of any variables that are not recognized.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
179
html/custom.html
Normal file
179
html/custom.html
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Custom Reports</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Custom Reports</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Task allows you to customize reports, to a limited degree.
|
||||||
|
The "list", "long", "ls", "oldest" and "newest" reports are
|
||||||
|
all now custom reports, whereas in previous releases of task
|
||||||
|
they were not mutable. This means they can be modified,
|
||||||
|
renamed, or deleted.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
More importantly, you can define your own. Here are the
|
||||||
|
three necessary items in the .taskrc file that define a new
|
||||||
|
report:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>report.mine.description=Just the essentials
|
||||||
|
report.mine.columns=id,project,priority,description
|
||||||
|
report.mine.sort=priority-,project+</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This defines a report, called "mine", that has four columns:
|
||||||
|
id, project, priority and description. It will be sorted on
|
||||||
|
two columns: by descending priority then ascending project.
|
||||||
|
The description that shows up in the task command usage page
|
||||||
|
is "Just the essentials". Because this report is called
|
||||||
|
"mine", it can be run with the command:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>% task mine</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
An optional filter can also be specified like this:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>report.mine.filter=priority:H +bug</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This adds a filter so that only tasks with priority "H" and
|
||||||
|
with the "bug" tag are included in the report. This filter
|
||||||
|
definition is optional.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
An optional limit can also be specified, which limits the
|
||||||
|
number of tasks shown in the report. If a limit is not
|
||||||
|
specified, then the number of tasks is not limited.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>report.mine.limit=10</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Here is a list of all the possible columns that may be included
|
||||||
|
in a report:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
It is also possible to override the default columns names, if
|
||||||
|
the following line is added to your .taskrc file:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>report.mine.labels=ID,Project,Priority,Description of task</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that there must be the same number of labels as there are
|
||||||
|
columns to label, and they must appear in the same sequence.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>id
|
||||||
|
<li>uuid
|
||||||
|
<li>project
|
||||||
|
<li>priority
|
||||||
|
<li>entry
|
||||||
|
<li>start
|
||||||
|
<li>due
|
||||||
|
<li>age
|
||||||
|
<li>active
|
||||||
|
<li>tags
|
||||||
|
<li>recur
|
||||||
|
<li>description_only
|
||||||
|
<li>description
|
||||||
|
<li>tag_indicator
|
||||||
|
<li>recurrence_indicator
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Custom reports will show up in the task command line usage.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
161
html/date.html
Normal file
161
html/date.html
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Date Handling</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Date Handling</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Task reads dates from the command line, and displays dates in the reports.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In order to do this in a flexible way, task obeys a configuration variable that
|
||||||
|
determines the expected and desired date format. See the
|
||||||
|
<a href="config.html">Configuring Task</a> page for details.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In addition to exactly specifying the date, such as:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:7/10/2008</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
task supports a flexible variety of alternatives. For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:today</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Similarly:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:yesterday
|
||||||
|
% task ... due:tomorrow</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Here are some other forms that are accepted. The day number, followed by an
|
||||||
|
ordinal:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:23rd</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
End of month:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:eom</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
End of year:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:eoy</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
End of week (Friday):
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:eow</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Next Friday:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:Friday</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Note that next Friday means seven days from now if today is Friday, otherwise
|
||||||
|
it means the next occurring Friday. Most of these forms may be specified using
|
||||||
|
abbreviations, provided they are unique. For example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ... due:fri</code></pre>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
175
html/faq.html
Normal file
175
html/faq.html
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Frequently Asked Questions</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Frequently Asked Questions</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
(Actually, that's a misnomer. These are really Repeatedly Asked
|
||||||
|
Questions.)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
Q: When I redirect the output of task to a file, I lose all
|
||||||
|
the colors. How do I fix this?
|
||||||
|
</b>
|
||||||
|
<br />
|
||||||
|
A: Task knows (or thinks it knows) when the output is not going
|
||||||
|
directly to a terminal, and strips out all the color control
|
||||||
|
characters. Prevent this with the following entry in your
|
||||||
|
.taskrc file:
|
||||||
|
<pre><code>_forcecolor=on</code></pre>
|
||||||
|
</p>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
Q: How do I backup my task data files? Where are they?
|
||||||
|
</b>
|
||||||
|
<br />
|
||||||
|
A: Task writes all pending tasks to the file ~/.task/pending.data
|
||||||
|
and all completed and deleted tasks to ~/.task/completed.data.
|
||||||
|
They are text files, so they can just be copied to another
|
||||||
|
location for safekeeping. Don't forget there is also the
|
||||||
|
~/.taskrc file that contains your task configuration data.
|
||||||
|
</p>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
Q: How can I separate my work tasks from my home tasks?
|
||||||
|
Specifically, can I keep them completely separate?
|
||||||
|
</b>
|
||||||
|
<br />
|
||||||
|
A: You can do this by creating an alternate .taskrc file,
|
||||||
|
then using shell aliases. Here is are example Bash
|
||||||
|
commands to achieve this:
|
||||||
|
|
||||||
|
<pre><code>% cp ~/.taskrc ~/.taskrc_home
|
||||||
|
% (now edit .taskrc_home to change the value of data.location)
|
||||||
|
% alias wtask="task"
|
||||||
|
% alias htask="task rc:~/.taskrc_home"</code></pre>
|
||||||
|
|
||||||
|
This gives you two commands, 'wtask' and 'htask' that
|
||||||
|
operate using two different sets of task data files.
|
||||||
|
</p>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
Q: Can I revert to a previous version of task? How?
|
||||||
|
</b>
|
||||||
|
<br />
|
||||||
|
A: Yes, you can revert to a previous version of task,
|
||||||
|
simply by downloading an
|
||||||
|
<a href="versions.html">older version</a> and
|
||||||
|
installing it. If you find a bug in task, then this
|
||||||
|
may be the only way to work around the bug, until a
|
||||||
|
new release is made.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Note that it is possible that the task file format will
|
||||||
|
change. For example, the format changed between versions
|
||||||
|
1.5.0 and 1.6.0. Task will automatically upgrade the file
|
||||||
|
but if you need to revert to a previous version of task,
|
||||||
|
there is the file format to consider. This is yet another
|
||||||
|
good reason to back up your task data files!
|
||||||
|
</p>
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<p>
|
||||||
|
<b>
|
||||||
|
Q:
|
||||||
|
</b>
|
||||||
|
<br />
|
||||||
|
A:
|
||||||
|
</p>
|
||||||
|
<hr>
|
||||||
|
-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
133
html/filter.html
Normal file
133
html/filter.html
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Filters</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Task Filters</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
A task filter is a means of reducing a task report to a
|
||||||
|
subset that may consist of all tasks that have a specific
|
||||||
|
project, priority, tag, or part of the description.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
A task filter consists of additional command line options,
|
||||||
|
that are specified in the same way as when a task is added.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
All task reports can make use of filters.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
For example, the report:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>% task list</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Lists all tasks.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>% task list the</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Lists only tasks with "the" in the task description.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>% task list project:Home priority:H</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Lists only tasks with both the "Home" project and "H" priority.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>% task list +shopping</pre></code>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Lists only tasks with the "shopping" tag.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
BIN
html/images/color.png
Normal file
BIN
html/images/color.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
158
html/import.html
Normal file
158
html/import.html
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Data Import</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Data Import</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Tasks can be imported from files with this command:
|
||||||
|
|
||||||
|
<pre><code>% task import file</code></pre>
|
||||||
|
|
||||||
|
A variety of different file types are recognized by task, namely:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Tasks exported from task prior to version 1.5.0.
|
||||||
|
<li>Tasks exported from task version 1.5.0 and later. The file
|
||||||
|
format changed with 1.5.0.
|
||||||
|
<li>todo.sh files.
|
||||||
|
<li>CSV files with a variety of recognized column names.
|
||||||
|
<li>Plain text files, with one task listed per line.
|
||||||
|
<li>Task command line format.
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task makes a good effort to determine which of these formats a
|
||||||
|
file is. It does this by reading the file, and looking for
|
||||||
|
familiar patterns. For example, the easiest files to recognize
|
||||||
|
are those exported from task itself, because they all have a
|
||||||
|
header line that comes in only three variations. Other formats
|
||||||
|
are a little harder to identify, but they all have their own
|
||||||
|
identifying characteristics.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The most complex import is when a CSV file is recognized.
|
||||||
|
Task needs a field header line in order to map columns to task
|
||||||
|
data items. For example, the if the following file is
|
||||||
|
imported:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>number,status,task
|
||||||
|
1,pending,task one
|
||||||
|
2,pending,task two</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task will map the "number" field to task's "id" field, etc,
|
||||||
|
based on name. Task has a list of synonyms that it uses to
|
||||||
|
map fields, but you can specify your own override with any of
|
||||||
|
the following configuration variables:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>import.synonym.id
|
||||||
|
<li>import.synonym.uuid
|
||||||
|
<li>import.synonym.status
|
||||||
|
<li>import.synonym.tags
|
||||||
|
<li>import.synonym.entry
|
||||||
|
<li>import.synonym.start
|
||||||
|
<li>import.synonym.due
|
||||||
|
<li>import.synonym.recur
|
||||||
|
<li>import.synonym.end
|
||||||
|
<li>import.synonym.project
|
||||||
|
<li>import.synonym.priority
|
||||||
|
<li>import.synonym.fg
|
||||||
|
<li>import.synonym.bg
|
||||||
|
<li>import.synonym.description
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Please note that it is wise to backup your task data files
|
||||||
|
before an import.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
214
html/links.html
Normal file
214
html/links.html
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task on the Web</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h1 class="title">Task on the Web</h1>
|
||||||
|
<p>
|
||||||
|
Task links from around the web...
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
February 2009, <a href="http://lifehacker.com/5155450/todotxt-cli-manages-your-tasks-from-the-command-line">Todo.txt CLI Manages Your Tasks from the Command Line</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Gina Trapani generously mentions task in an article about the newly updated, todo.sh 2.0.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
February, 2009, <a href="http://forum.worklifecreativity.net/index.php/topic,219.0.html">My command line based task management tools</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
Richard Querin talks about his task management tools.
|
||||||
|
Richard generously provides the Debian packages for task.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
February, 2009, <a href="http://wiki.archlinux.org/index.php/Common_Apps">Common Apps</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
<a href="http://wiki.archlinux.org">Archlinux.org</a> mentions task on a page which is
|
||||||
|
a point of reference for people looking for software to fill a particular need.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
November 2008, <a href="http://github.com/pbeckingham/task/tree/master/">Task repository on GitHub</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
For developers: the task git repository on github.com is now public.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
October 2008, <a href="http://blog.rfquerin.org/2008/10/07/using-task-and-dropbox-to-manage-your-to-do-list/">Using Task and Dropbox to manage your To-Do list</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
by Richard Querin. Richard discusses the ease of setting up task to
|
||||||
|
use DropBox to share todo lists between work and home.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
September 2008, <a href="http://stasantons.blogspot.com/2008/09/task-program-visually-simple.html">Task visualization</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
by Stas Antons. Stas - a colleague of mine - presents a visualization
|
||||||
|
of the simplicity of task.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
June 2008, <a href="http://blog.rfquerin.org/2008/06/17/building-debian-packages-for-task/">Building Debian Packages For Task</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
by Richard Querin. Richard has been providing Debian packages for the
|
||||||
|
various task releases, and discusses how he got up to speed.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
June 2008, <a href="http://blog.rfquerin.org/2008/06/06/task-101-an-attempt-at-a-cygwin-build-how-to/">Task 1.0.1 - an attempt at a Cygwin Build How-To</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
by Richard Querin. Richard shows us how to build task using Cygwin, after
|
||||||
|
a cry for help on the todo.txt mailing list.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
June 2008, <a href="http://www.youtube.com/watch?v=D2Kn4DMOVSw">The second task movie</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
This YouTube movie was made to illustrate some of the features of the task
|
||||||
|
program, back when task 1.0.0 was released. While task has grown
|
||||||
|
significantly since then, the commands shown are still valid. It will
|
||||||
|
soon be time for a new movie!
|
||||||
|
<p>
|
||||||
|
|
||||||
|
This movie has a voice-over that explains what is going on.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
For a higher-quality version, download the whole
|
||||||
|
<a href="http://www.beckingham.net/todo2.mov">movie file (10MB)</a>.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
December 2006, <a href="http://www.youtube.com/watch?v=l68LCl6BYvs">The first task movie</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
This original YouTube task movie was made to illustrate the features of the
|
||||||
|
then-unreleased task program. The idea was to get some feedback and see
|
||||||
|
whether anyone was interested in a new implementation of todo.sh, that added
|
||||||
|
features that are not easily possible with a shell implementation.
|
||||||
|
<p>
|
||||||
|
|
||||||
|
This movie has no voice-over, and you may notice that it exactly duplicates
|
||||||
|
the commands used in the original todo.sh movie (below). That is, until it
|
||||||
|
deviates because of new task commands.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
June 2006, <a href="http://www.youtube.com/watch?v=daJ1Hs_y738">The original todo.sh movie</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
by Gina Trapani. This is the original YouTube todo.sh movie, made to
|
||||||
|
illustrate the power and simplicity of the original todo.sh program.
|
||||||
|
</dd>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
June 2006, <a href="http://todotxt.com/">Todo.sh, the inspiration for task</a>
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
by Gina Trapani. The website that introduced me to the power and
|
||||||
|
simplicity of the original todo.sh program. Contains useful links
|
||||||
|
and resources - take a look!
|
||||||
|
</dd>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
220
html/recur.html
Normal file
220
html/recur.html
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Recurring Tasks</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Recurring Tasks</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Task supports recurring tasks, which is a task that keeps falling due, on a
|
||||||
|
regular schedule. An example of this may be "pay rent". Here is how
|
||||||
|
recurring tasks work in task:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Ordinarily, a task is a single item that is entered in the pending state, and
|
||||||
|
remains so until it is either completed or deleted. This is an example of a
|
||||||
|
single instance task.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
A recurring task is different. When a recurring task is entered, it remains
|
||||||
|
hidden from view, but acts as a root task for a task instances that are
|
||||||
|
generated on a regular basis. Consider the example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task Pay rent due:7/1/2008 recur:monthly</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If today's date is 7/10, for example, then that due date is in the past, and
|
||||||
|
you might expect there to be an already overdue task for 7/1/2008, and another
|
||||||
|
due on 8/1/2008. This means that from that root, task has created two
|
||||||
|
instances with different due dates.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task list
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
1 7/1/2008 1 min Pay rent
|
||||||
|
2 8/1/2008 1 min Pay rent
|
||||||
|
|
||||||
|
2 tasks</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task creates any overdue tasks, then creates one additional due task. These
|
||||||
|
new task instances are then completed or deleted as you normally would.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In the example above, a new task instance is created every month, and this will
|
||||||
|
repeat indefinitely. Task also supports an end date. Suppose you are taking
|
||||||
|
every Friday off work for the summer. You'll need to submit your TPS report on
|
||||||
|
Thursdays instead:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task TPS report due:thursday recur:weekly until:8/31/2008</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This create a weekly recurring task that expires on 8/31/2008. What this means
|
||||||
|
is that after all those task instances have been created, then completed or
|
||||||
|
deleted, the root task will expire and disappear. Task will tell you what it
|
||||||
|
is doing when this happens.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Deletion</h4>
|
||||||
|
<p>
|
||||||
|
When a recurring task is deleted, you will be asked if you would also like to
|
||||||
|
delete all recurring task instances:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task del 1
|
||||||
|
Permanently delete task? (y/n) y
|
||||||
|
This is a recurring task. Do you want to delete all pending
|
||||||
|
recurrences of this same task? (y/n) y</code></pre>
|
||||||
|
|
||||||
|
<h4>Modification</h4>
|
||||||
|
<p>
|
||||||
|
When a recurring task is modified, all the other recurring task instances will
|
||||||
|
be modified. For example, if you raise the priority of one of the recurring
|
||||||
|
task instances, all will be modified.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Recurrence Periods</h4>
|
||||||
|
<p>
|
||||||
|
In the above examples, the recurrence period was specified as "monthly" and
|
||||||
|
"weekly". Task supports several ways of specifying this:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th class="table_h">Period</th>
|
||||||
|
<th class="table_h">Meaning</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">daily, day, 1d, 2d ...</td>
|
||||||
|
<td class="table_d">Every day, or a number of days</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">weekdays</td>
|
||||||
|
<td class="table_d">
|
||||||
|
Monday, Tuesday, Wednesday, Thursday and Friday,
|
||||||
|
skipping weekend days
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">weekly, 1w, 2w ...</td>
|
||||||
|
<td class="table_d">Every week, or a number of weeks</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">biweekly, fortnight</td>
|
||||||
|
<td class="table_d">Every two weeks</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">monthly, 1m, 2m ...</td>
|
||||||
|
<td class="table_d">Every month, or a number of months</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">bimonthly</td>
|
||||||
|
<td class="table_d">Every two months</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">quarterly, 1q, 2q ...</td>
|
||||||
|
<td class="table_d">Every three months, a quarter, or a number of quarters</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">semiannual</td>
|
||||||
|
<td class="table_d">Every six months</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">annual, yearly, 1y, 2y ...</td>
|
||||||
|
<td class="table_d">Every year, or a number of years</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="table_d">biannual, biyearly, 2y</td>
|
||||||
|
<td class="table_d">Every two-years</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
141
html/setup.html
Normal file
141
html/setup.html
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Setup</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="setup">Quick Setup</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Build the task program according to the directions in the INSTALL
|
||||||
|
file. This transcript illustrates a typical installation:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% ls
|
||||||
|
task-1.6.0.tar.gz
|
||||||
|
% gunzip task-1.6.0.tar.gz
|
||||||
|
% tar xf task-1.6.0.tar
|
||||||
|
% cd task-1.6.0
|
||||||
|
% ./configure
|
||||||
|
...
|
||||||
|
% make
|
||||||
|
...
|
||||||
|
% make install # (may require sudo, depending on --prefix)</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
(For those of you using <a href="http://www.cygwin.com">Cygwin</a>,
|
||||||
|
you need to make sure you have the "gcc" and "make" packages
|
||||||
|
available, which are found in the "devel" category. For more
|
||||||
|
task features, also make sure you have "libncurses-devel" and
|
||||||
|
"lincurse8".)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You need to make sure that the installed task program is in your
|
||||||
|
PATH environment variable.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task reads a configuration file - called .taskrc in your home
|
||||||
|
directory - and stores pending and completed tasks in in a directory
|
||||||
|
specified in the configuration file.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The simplest way to get a configuration file and task directory is
|
||||||
|
to run task. On startup, task will check to see if it can find the
|
||||||
|
configuration file and task directory, and if not found, will ask
|
||||||
|
you whether it may create both.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task version
|
||||||
|
|
||||||
|
A configuration file could not be found in /Users/paul/.taskrc
|
||||||
|
|
||||||
|
Would you like a sample .taskrc created, so task can proceed? (y/n) y
|
||||||
|
Done.
|
||||||
|
|
||||||
|
[then task will show version information]</code></pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
129
html/shadow.html
Normal file
129
html/shadow.html
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Shadow Files</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Task Shadow Files</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
A shadow file is a text file containing a copy of a task
|
||||||
|
report. It is automatically maintained by task whenever
|
||||||
|
something changes in the task database.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This means there is always a current version of the task
|
||||||
|
report kept in a text file. Products such as
|
||||||
|
<a href="http://www.samurize.com">Samurize</a>,
|
||||||
|
<a href="http://www.mulle-kybernetik.com/software/MkConsole/">MkConsole</a>,
|
||||||
|
or
|
||||||
|
<a href="http://projects.tynsoe.org/en/geektool/">GeekTool</a>
|
||||||
|
can display this file on the computer desktop, so that it
|
||||||
|
is readily visible.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To use a shadow file, edit your .taskrc configuration file,
|
||||||
|
and add three entries as shown:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>shadow.file=/path/to/file
|
||||||
|
shadow.command=list pri:H
|
||||||
|
shadow.notify=on</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In this example the shadow file contains a report equivalent
|
||||||
|
to running "task list pri:H". Note that the third entry
|
||||||
|
causes a message to be displayed whenever task updates the
|
||||||
|
shadow file. It is optional.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
You can use any task command that generates a report, and of
|
||||||
|
course, you can specify any file name, provided the directory
|
||||||
|
it resides in already exists.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
131
html/shell.html
Normal file
131
html/shell.html
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Interacting with the Shell</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="shell">Interacting with the Shell</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Certain characters are interpreted by the shell. For example, the
|
||||||
|
"&". If you wish to include the & in a task description,
|
||||||
|
you need to escape it, so the shell doesn't interpret it. For
|
||||||
|
example:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add Buy bread & milk</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This command is an error because of the &. The shell will
|
||||||
|
consider this to be two commands:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add Buy bread &
|
||||||
|
% milk</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The shell treats the & character as an indicator that the
|
||||||
|
command is complete and should be run in the background. Then the
|
||||||
|
shell considers "milk" to be a command all by itself. Which it is
|
||||||
|
not. One way to get around this is to individually escape the &
|
||||||
|
character:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add Buy bread \& milk</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Another is to quote the entire description, with either ' or "
|
||||||
|
characters:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add "Buy bread & milk"</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task itself interprets the commands, and it too can make mistakes.
|
||||||
|
For example, any colon : character will be interpreted by task as a
|
||||||
|
delimiter between an attribute name and its value. Currently there
|
||||||
|
is no workaround for this.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
356
html/simple.html
Normal file
356
html/simple.html
Normal file
@@ -0,0 +1,356 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Simple Usage</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="simple">Simple Usage</a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Let us begin by adding some tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add Book plane ticket
|
||||||
|
% task add Rent a tux
|
||||||
|
% task add Reserve a rental car
|
||||||
|
% task add Reserve a hotel room</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
That's it. You'll notice immediately that task has a very
|
||||||
|
minimalist interface. Let us take a look at those tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
1 Book plane ticket
|
||||||
|
2 Rent a tux
|
||||||
|
3 Reserve a rental car
|
||||||
|
4 Send John a birthday card</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The 'ls' command provides the most minimal list of tasks. Each
|
||||||
|
task has been given an id number, and you can see that there are no
|
||||||
|
projects or priorities assigned. Wait a minute - I own a tux, I
|
||||||
|
don't need to rent one. Let us delete task 2:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 2 delete
|
||||||
|
Permanently delete task? (y/n) y</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task wants you to confirm deletions. To remove the confirmation,
|
||||||
|
edit your .taskrc file and change the line:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>confirmation=yes</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
to have a value of "no".
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
While the use of projects and priorities are not essential to
|
||||||
|
benefitting from task, they can be very useful when the list of
|
||||||
|
tasks grows large. Let's assign a project to these tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 1 project:Wedding
|
||||||
|
% task 3 project:Wedding
|
||||||
|
% task 4 project:Family
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
3 Family Send John a birthday card
|
||||||
|
2 Wedding Reserve a rental car
|
||||||
|
1 Wedding Book plane ticket</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Notice that the id numbers have changed. When tasks get deleted,
|
||||||
|
or have their attributes changed (project, for example), the ids are
|
||||||
|
prone to change. But the id numbers will remain valid until the
|
||||||
|
next 'ls' command is run. You should only use the ids from the most
|
||||||
|
recent 'ls' command. The ids change, because task is always trying
|
||||||
|
to use small numbers so that it is easy for you to enter them
|
||||||
|
correctly. Now that projects are assigned, we can look at just the
|
||||||
|
Wedding project tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Subprojects are supported. If you have a project "Wedding", you can
|
||||||
|
specify that a task is a subproject "Transport" of "Wedding" by
|
||||||
|
assigning the project "Wedding.Transport". Let's do this:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 2 project:Wedding.Transport
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
3 Family Send John a birthday card
|
||||||
|
2 Wedding.Transport Reserve a rental car
|
||||||
|
1 Wedding Book plane ticket</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task matches the leftmost part of the project when searching, so
|
||||||
|
projects may be abbreviated:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls project:Wedding.Tra
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
2 Wedding.Transport Reserve a rental car</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This way of matching projects can be used to see all tasks under
|
||||||
|
the "Wedding" project and all subprojects:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls project:Wedding
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
2 Wedding.Transport Reserve a rental car
|
||||||
|
1 Wedding Book plane ticket</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Let's reassign 2 back to the "Wedding" project:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 2 project:Wedding</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Now that projects are assigned, we can look at just the
|
||||||
|
Wedding project tasks:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls project:Wedding
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
1 Wedding Book plane ticket
|
||||||
|
2 Wedding Reserve a rental car</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Any command arguments after the 'ls' are used for filtering the
|
||||||
|
output. We could also have requested:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls ticket plane
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
1 Wedding Book plane ticket</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Now let's prioritize. Priorities can be H, M or L (High, Medium,
|
||||||
|
Low).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
3 Family Send John a birthday card
|
||||||
|
2 Wedding Reserve a rental car
|
||||||
|
1 Wedding Book plane ticket
|
||||||
|
|
||||||
|
% task 1 priority:H
|
||||||
|
% task 2 prior:M
|
||||||
|
% task 3 pr:H
|
||||||
|
Ambiguous attribute 'pr' - could be either of project, priority
|
||||||
|
% task 3 pri:H
|
||||||
|
% task ls
|
||||||
|
|
||||||
|
ID Project Pri Description
|
||||||
|
3 Family H Send John a birthday card
|
||||||
|
1 Wedding H Book plane ticket
|
||||||
|
2 Wedding M Reserve a rental car</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Notice that task supports the abbreviation of words such as
|
||||||
|
priority, project. Priority can be abbreviated to pri, but not pr,
|
||||||
|
because it is ambiguous. Now that tasks have been prioritized, you
|
||||||
|
can see that the tasks are being sorted by priority, with the
|
||||||
|
highest priority tasks at the top.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
These attributes can all be provided when the task is added, instead
|
||||||
|
of applying them afterwards, as shown. The following command shows
|
||||||
|
how to set all the attributes at once:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task add project:Wedding priority:H Book plane ticket<code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The 'ls' command provides the least information for each task. The
|
||||||
|
'list' command provides more:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task list
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
3 Family H 4 mins Send John a birthday card
|
||||||
|
1 Wedding H 5 mins Book plane ticket
|
||||||
|
2 Wedding M 5 mins Reserve a rental car</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Notice that a task can have a due date, and can be active. The
|
||||||
|
task lists are sorted by due date, then priority. Let's add due
|
||||||
|
dates:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 3 due:6/25/2008
|
||||||
|
% task 1 due:7/31/2008
|
||||||
|
% task list
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
3 Family H 6/25/2008 6 mins Send John a birthday card
|
||||||
|
1 Wedding H 7/31/2008 7 mins Book plane ticket
|
||||||
|
2 Wedding M 7 mins Reserve a rental car</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If today's date is 6/23/2008, then task 3 is due in 2 days. It will
|
||||||
|
be colored yellow if your terminal supports color. To change this
|
||||||
|
color, edit your .taskrc file, and change the line to one of these
|
||||||
|
alternatives:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>color.due=red
|
||||||
|
color.due=on_blue
|
||||||
|
color.due=red on_blue
|
||||||
|
color.due=bold_red on_blue</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Where color is one of the following:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>black
|
||||||
|
blue
|
||||||
|
red
|
||||||
|
green
|
||||||
|
cyan
|
||||||
|
magenta
|
||||||
|
yellow
|
||||||
|
white</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
All colors are specified in this way. Take a look in .taskrc for
|
||||||
|
all the other color rules that you control.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Tagging tasks is a good way to group them, aside from specifying a
|
||||||
|
project. To add a tag to a task:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task <id> +tag<code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The plus sign indicates that this is a tag. Any number of tags may
|
||||||
|
be applied to a task, and then used for searching. Tags are just
|
||||||
|
single words that are labels.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task list
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
3 Family H 6/25/2008 8 mins Send John a birthday card
|
||||||
|
1 Wedding H 7/31/2008 9 mins Book plane ticket
|
||||||
|
2 Wedding M 9 mins Reserve a rental car
|
||||||
|
|
||||||
|
% task 1 +phone
|
||||||
|
% task 2 +phone
|
||||||
|
% task 3 +shopping
|
||||||
|
% task 3 +john
|
||||||
|
|
||||||
|
% task list +phone
|
||||||
|
|
||||||
|
ID Project Pri Due Active Age Description
|
||||||
|
1 Wedding H 7/31/2008 9 mins Book plane ticket
|
||||||
|
2 Wedding M 9 mins Reserve a rental car</code></pre>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
To remove a tag from a task, use the minus sign:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre><code>% task 3 -john</code></pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
126
html/task.css
Normal file
126
html/task.css
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
body {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0; padding: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
width: 740px;
|
||||||
|
text-align: left;
|
||||||
|
margin: 0 auto; padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header {
|
||||||
|
height: 60px;
|
||||||
|
margin: 0 0 15px; padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page {}
|
||||||
|
|
||||||
|
#content {
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header a:link,
|
||||||
|
#header a:visited {
|
||||||
|
color:#000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header h1 {
|
||||||
|
font: bold 400% georgia, serif;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
margin: 0;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#header h2 {
|
||||||
|
font: normal 12px verdana, arial, sans-serif;
|
||||||
|
margin: 2.5em 0 0 0.8em;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content {}
|
||||||
|
|
||||||
|
#content h1,
|
||||||
|
#content h2,
|
||||||
|
#content h3,
|
||||||
|
#content h4,
|
||||||
|
#content h5 {
|
||||||
|
font-family: "lucidamac bold", "lucida grande", arial, sans-serif;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content h1 {
|
||||||
|
font-size: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content h2 {
|
||||||
|
font-size: 22px;
|
||||||
|
border-bottom: 1px dotted #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content h3 {
|
||||||
|
font-size: 20px;
|
||||||
|
border-bottom: 1px dotted #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content h4 {
|
||||||
|
font-size: 18px;
|
||||||
|
border-bottom: 1px dotted #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content h5 {
|
||||||
|
font-size: 18px;
|
||||||
|
background: #ffd;
|
||||||
|
border-bottom: 1px dotted #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content p {
|
||||||
|
line-height: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content ul,
|
||||||
|
#content ol {
|
||||||
|
}
|
||||||
|
|
||||||
|
#content code {
|
||||||
|
font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#content pre {
|
||||||
|
color: #63FF00;
|
||||||
|
background: #000;
|
||||||
|
overflow: auto;
|
||||||
|
font: normal 12px "bitstream vera sans mono", monaco "lucida console", "courier new", courier, serif;
|
||||||
|
margin: 0.9em 0; padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font: bold 14px "lucida grande", verdana, arial, helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font: normal 12px "lucida grande", verdana, arial, helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small {
|
||||||
|
font: normal 10px verdana, arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table_h {
|
||||||
|
background-color: #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table_d {
|
||||||
|
background-color: #f7f7f7;
|
||||||
|
}
|
||||||
|
input,
|
||||||
|
textarea { font: normal 12px "bitstream vera sans", verdana, sans-serif; }
|
||||||
|
|
||||||
|
abbr { border: none; }
|
||||||
|
cite { font-style: normal; }
|
||||||
|
a img { border: none; padding: 0; margin: 0; }
|
||||||
|
|
||||||
265
html/task.html
Normal file
265
html/task.html
Normal file
@@ -0,0 +1,265 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Latest Release</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h1 class="title">Task</h1>
|
||||||
|
<p>
|
||||||
|
Task is an open source, command-line, TODO list manager.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Here you will find information on how to acquire, build, configure,
|
||||||
|
use and become proficient with the task program.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="setup.html">Quick Setup</a>
|
||||||
|
<li><a href="30second.html">30-second Tutorial</a>
|
||||||
|
<li><a href="simple.html">Simple Usage</a>
|
||||||
|
<li><a href="advanced.html">Advanced Usage</a>
|
||||||
|
<li><a href="shell.html">Interacting with the Shell</a>
|
||||||
|
<li><a href="config.html">Configuring Task</a>
|
||||||
|
<li><a href="color.html">Color</a>
|
||||||
|
<li><a href="usage.html">Task Command Usage</a>
|
||||||
|
<li><a href="recur.html">Recurring Tasks</a>
|
||||||
|
<li><a href="date.html">Date Handling</a>
|
||||||
|
<li><a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<li><a href="versions.html">Old Versions</a>
|
||||||
|
<li><a href="filter.html">Filters</a>
|
||||||
|
<li><a href="shadow.html">Shadow Files</a>
|
||||||
|
<li><a href="custom.html">Custom Reports</a>
|
||||||
|
<li><a href="import.html">Data Import</a>
|
||||||
|
<li><a href="faq.html">Frequently Asked Questions</a>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
More documents are being written, and will be added here.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Alternatively, watch the
|
||||||
|
<a href="http://www.youtube.com/watch?v=D2Kn4DMOVSw">task movie</a>
|
||||||
|
which illustrates many of task's features.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Get the Latest Stable Release</h2>
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>Source:</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.6.0.tar.gz">task-1.6.0.tar.gz</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Mac OS X 10.5 (Leopard) Intel-only:</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.6.0.pkg">task-1.6.0.pkg</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Debian:
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>):
|
||||||
|
</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task_1.6.0-1_i386.deb">task_1.6.0-1_i386.deb</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Red Hat:
|
||||||
|
(Thanks to <a href="http://www.ultrafredde.com">Federico Hernandez</a>):
|
||||||
|
</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.6.0-1.i386.rpm">task-1.6.0-1.i386.rpm</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Git - get the whole source and history:</td>
|
||||||
|
<td><a href="http://github.com/pbeckingham/task">http://github.com/pbeckingham/task</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<h4>New in version 1.6.0 (?)</h4>
|
||||||
|
<ul>
|
||||||
|
<li>Added support for new "append" command that adds more description text to
|
||||||
|
an existing task.
|
||||||
|
<li>Added support for the "weekdays" recurrence, which means a task can recur
|
||||||
|
five times a week, and not on weekends (thanks to Chris Pride).
|
||||||
|
<li>UTF8 text is now supported in task project names, tags and descriptions.
|
||||||
|
<li>Fixed bug that caused the y/n confirmation on task deletion to ignore the
|
||||||
|
Enter key and fail to re-prompt (thanks to Bruce Dillahunty).
|
||||||
|
<li>When the "echo.command" configuration variable is set to "yes", it causes
|
||||||
|
commands that modify tasks to display which task was affected (thanks to
|
||||||
|
Bruce Dillahunty).
|
||||||
|
<li>A task can now be annotated with the command "task <id> annotate ...", and
|
||||||
|
a timestamped annotation will appear in reports.
|
||||||
|
<li>A 'description_only' column is now available for use in custom reports,
|
||||||
|
and it excludes annotations.
|
||||||
|
<li>A task can now be upgraded to a recurring task by adding a recurrence
|
||||||
|
frequency, a due date, and an optional until date.
|
||||||
|
<li>When a recurring task is modified, all other instances of the recurring
|
||||||
|
task are also modified.
|
||||||
|
<li>Custom reports now support user-specified column labels (thanks to T.
|
||||||
|
Charles Yun).
|
||||||
|
<li>Task can now import tasks from a variety of data formats, including task
|
||||||
|
export files from versions 1.4.3 and earlier, versions 1.5.0 and later,
|
||||||
|
todo.sh 2.x, CSV, plain text and task command line. See online docs for
|
||||||
|
full details.
|
||||||
|
<li>Export was including 'id' in the column header even though it was not
|
||||||
|
included in the data.
|
||||||
|
<li>The task file format has changed slightly. Please back up your task
|
||||||
|
data files before upgrading to 1.6.0.
|
||||||
|
<li>Added new column 'recurrence_indicator' that displays an 'R' if the task
|
||||||
|
is a recurring task. This column can be added to any custom report.
|
||||||
|
<li>Added new column 'tag_indicator' that displays a '+' if the task
|
||||||
|
has any tags. This column can be added to any custom report.
|
||||||
|
<li>Fixed bug where sometimes a task description was concatenated oddly if
|
||||||
|
there was a colon somewhere in the description.
|
||||||
|
<li>Fixed bug that caused recurring annual tasks to exhibit a creeping due
|
||||||
|
date, because of an assumption of 365 days per year, which failed to
|
||||||
|
consider leap years (thanks to T. Charles Yun).
|
||||||
|
<li>Annotations can now be modified with the substitution commands /from/to/.
|
||||||
|
<li>Substitutions can now be made global with /from/to/g and all occurrences
|
||||||
|
of "from" will be replaced with "to".
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
(Find out <a href="versions.html">what was new in prior versions</a>)
|
||||||
|
</p>
|
||||||
|
<!--
|
||||||
|
<h2>Task 1.6.0 Beta</h2>
|
||||||
|
<p>
|
||||||
|
The next version of task is in beta. This means it is approaching the
|
||||||
|
end of the current development and testing cycle, and feedback from
|
||||||
|
a wider audience is needed to find the last bugs. If you would like
|
||||||
|
to help test the next release of task, download the beta source below
|
||||||
|
and install in the usual manner.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Please note that beta software may contain significant bugs. If you
|
||||||
|
use this beta release, you should first backup your existing task
|
||||||
|
data files.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Refer to the ChangeLog file for details regarding the various fixes
|
||||||
|
and enhancements.
|
||||||
|
</p>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>Source:</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.6.0beta.tar.gz">task-1.6.0beta.tar.gz</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
-->
|
||||||
|
<h2>Troubleshooting</h2>
|
||||||
|
<p>
|
||||||
|
Task has been built from source and tested in the following environments:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>OS X 10.4 Tiger
|
||||||
|
<li>OS X 10.5 Leopard
|
||||||
|
<li>Fedora Core 8
|
||||||
|
<li>Fedora Core 9
|
||||||
|
<li>Fedora Core 10
|
||||||
|
<li>Ubuntu 7 Feisty Fawn
|
||||||
|
<li>Ubuntu 8 Hardy Heron
|
||||||
|
<li>Ubuntu 8.10 Intrepid Ibex
|
||||||
|
<li>Solaris 10
|
||||||
|
<li>Cygwin 1.5.25-14
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you have difficulties building task, have found a bug, have a
|
||||||
|
suggestion for improvement, or a feature request, please send mail to
|
||||||
|
<a href="mailto:task@beckingham.net">task@beckingham.net</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Take a look at the <a href="troubleshooting.html">troubleshooting guide</a>
|
||||||
|
for tips and workarounds to problems.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
156
html/troubleshooting.html
Normal file
156
html/troubleshooting.html
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Troubleshooting Guide</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h1 class="title">Task Troubleshooting Guide</h1>
|
||||||
|
<p>
|
||||||
|
Here you will find tips and suggestions for making task behave
|
||||||
|
properly, and bug workarounds.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Segmentation Fault for certain commands</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Upgrading task to version 1.1.0, 1.2.0 and 1.3.0 can cause
|
||||||
|
segmentation faults. This is mostly occurring for Ubuntu users,
|
||||||
|
although there is no reason for it to be limited to Ubuntu.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task 1.3.1 fixes this bug, but there is a workaround for users
|
||||||
|
of earlier versions. Add the following line to your ~/.taskrc
|
||||||
|
file:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<code><pre>dateformat=m/d/Y</pre></code>
|
||||||
|
|
||||||
|
<p class="small">
|
||||||
|
The "dateformat" setting is supported in task 1.1.0 and later.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<h2 class="title">How do I build task under Cygwin?</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Task is built the same way everywhere. But under Cygwin, you'll
|
||||||
|
need to make sure you have the following packages available
|
||||||
|
first:
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>gcc
|
||||||
|
<li>make
|
||||||
|
<li>libncurses-devel
|
||||||
|
<li>libncurses8
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
The gcc and make packages allow you to compile the code, and
|
||||||
|
are therefore required, but the ncurses packages are optional.
|
||||||
|
Ncurses will allow task to determine the width of the window, and
|
||||||
|
therefore use the whole width and wrap text accordingly, for a
|
||||||
|
more aesthetically pleasing display.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<h2 class="title">Do colors work under Cygwin?</h2>
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
They do, but only in a limited way. You can use regular
|
||||||
|
foreground colors (black, red, green ...) and you can
|
||||||
|
regular background colors (on_black, on_red, on_green ...),
|
||||||
|
but underline and bold are not supported.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
If you run the command:
|
||||||
|
<code><pre>% task colors</pre></code>
|
||||||
|
Task will display all the colors it can use, and you will
|
||||||
|
see which ones you can use.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
153
html/usage.html
Normal file
153
html/usage.html
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Usage</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h2 class="title"><a name="usage">Command Usage<a></h2>
|
||||||
|
<div class="content">
|
||||||
|
<pre><code>Usage: task
|
||||||
|
task add [tags] [attrs] desc...
|
||||||
|
task append [tags] [attrs] desc...
|
||||||
|
task annotate ID desc...
|
||||||
|
task completed [tags] [attrs] desc...
|
||||||
|
task ID [tags] [attrs] [desc...]
|
||||||
|
task ID /from/to/
|
||||||
|
task delete ID
|
||||||
|
task undelete ID
|
||||||
|
task info ID
|
||||||
|
task start ID
|
||||||
|
task stop ID
|
||||||
|
task done ID
|
||||||
|
task undo ID
|
||||||
|
task projects
|
||||||
|
task tags
|
||||||
|
task summary
|
||||||
|
task history
|
||||||
|
task ghistory
|
||||||
|
task next
|
||||||
|
task calendar
|
||||||
|
task active
|
||||||
|
task overdue
|
||||||
|
task stats
|
||||||
|
task export
|
||||||
|
task color
|
||||||
|
task version
|
||||||
|
task help
|
||||||
|
task list [tags] [attrs] desc...
|
||||||
|
task long [tags] [attrs] desc...
|
||||||
|
task ls [tags] [attrs] desc...
|
||||||
|
task newest [tags] [attrs] desc...
|
||||||
|
task oldest [tags] [attrs] desc...
|
||||||
|
|
||||||
|
See http://www.beckingham.net/task.html for the latest releases and a full tutorial.
|
||||||
|
|
||||||
|
ID is the numeric identifier displayed by the 'task list' command
|
||||||
|
|
||||||
|
Tags are arbitrary words, any quantity:
|
||||||
|
+tag The + means add the tag
|
||||||
|
-tag The - means remove the tag
|
||||||
|
|
||||||
|
Attributes are:
|
||||||
|
project: Project name
|
||||||
|
priority: Priority
|
||||||
|
due: Due date
|
||||||
|
recur: Recurrence frequency
|
||||||
|
until: Recurrence end date
|
||||||
|
fg: Foreground color
|
||||||
|
bg: Background color
|
||||||
|
rc: Alternate .taskrc file
|
||||||
|
|
||||||
|
Any command or attribute name may be abbreviated if still unique:
|
||||||
|
task list project:Home
|
||||||
|
task li pro:Home
|
||||||
|
|
||||||
|
Some task descriptions need to be escaped because of the shell:
|
||||||
|
task add "quoted ' quote"
|
||||||
|
task add escaped \' quote
|
||||||
|
|
||||||
|
Many characters have special meaning to the shell, including:
|
||||||
|
$ ! ' " ( ) ; \ ` * ? { } [ ] < > | & % # ~</code></pre>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
372
html/versions.html
Normal file
372
html/versions.html
Normal file
@@ -0,0 +1,372 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<title>Task Prior Versions</title>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" href="task.css" type="text/css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="toolbar">
|
||||||
|
<a href="task.html">Home</a>
|
||||||
|
<a href="setup.html">Setup</a>
|
||||||
|
<a href="30second.html">30-second Tutorial</a>
|
||||||
|
<a href="simple.html">Simple</a>
|
||||||
|
<a href="advanced.html">Advanced</a>
|
||||||
|
<a href="shell.html">Shell</a>
|
||||||
|
<a href="config.html">Configuration</a>
|
||||||
|
<a href="color.html">Colors</a>
|
||||||
|
<a href="usage.html">Usage</a>
|
||||||
|
<a href="recur.html">Recurrence</a>
|
||||||
|
<a href="date.html">Date Handling</a>
|
||||||
|
<a href="troubleshooting.html">Troubleshooting</a>
|
||||||
|
<a href="versions.html">Old Versions</a>
|
||||||
|
<a href="links.html">Task on the Web</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="content">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<h1 class="title">Task Prior Versions</h1>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.5.0 (3/15/2009)</h4>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>Source:</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.5.0.tar.gz">task-1.5.0.tar.gz</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Mac OS X 10.5 (Leopard) Intel-only:</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.5.0.pkg">task-1.5.0.pkg</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Debian:
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>):
|
||||||
|
</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task_1.5.0-1_i386.deb">task_1.5.0-1_i386.deb</a></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Red Hat:
|
||||||
|
(Thanks to <a href="http://www.ultrafredde.com">Federico Hernandez</a>):
|
||||||
|
</td>
|
||||||
|
<td><a href="http://www.beckingham.net/task-1.5.0-1.i386.rpm">task-1.5.0-1.i386.rpm</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<ul>
|
||||||
|
<li>Removed deprecated TUTORIAL file.
|
||||||
|
<li>Removed support for the "showage" configuration variable.
|
||||||
|
<li>"task stop" can remove the start time from a started task.
|
||||||
|
<li>"task ghistory" now displays a differently aligned graph, allowing
|
||||||
|
easier comparison by month of tasks added versus completed and deleted.
|
||||||
|
<li>"task version" command now reports unrecognized configuration variables,
|
||||||
|
which may be spelling mistakes or deprecated variables.
|
||||||
|
<li>"configure --enable-debug" now supported to suppress compiler optimization
|
||||||
|
to allow debugging.
|
||||||
|
<li>Allow lower case priorities, and automatically upper case them.
|
||||||
|
<li>Added support for "due" configuration variable which defines the number
|
||||||
|
of days in the future when a task is considered due.
|
||||||
|
<li>Added support for custom reports, comprised of a set of column names and
|
||||||
|
sort order, with optional filtering in the configuration file. This
|
||||||
|
means user-defined reports can be written, and the reports currently
|
||||||
|
in the configuration file can be renamed. Several of task's built in
|
||||||
|
reports have been converted to user-defined reports.
|
||||||
|
<li>New online documentation for custom reports.
|
||||||
|
<li>New algorithm for determining when the "nag" message is displayed.
|
||||||
|
<li>Fixed bug where task hangs with a certain combination of recurring tasks
|
||||||
|
and shadow files.
|
||||||
|
<li>Fixed bug with the task sort algorithm, which led to an unstable sequence
|
||||||
|
when there were only a handful of tasks.
|
||||||
|
<li>Performance enhanced by eliminating unnecessary sorting.
|
||||||
|
<li>Task now has a large (and growing) test suite and bug regression tests
|
||||||
|
to help ensure higher quality releases.
|
||||||
|
<li>Fixed bug that caused large performance hit during table rendering.
|
||||||
|
<li>Fixed bug that concatenated a modified description without spaces.
|
||||||
|
<li>Added new column 'recur' that displays the recurrence period of any
|
||||||
|
recurring tasks. This column can be added to any custom report.
|
||||||
|
<li>Added support for "color.recurring" configuration variable which
|
||||||
|
specifies the color of recurring tasks.
|
||||||
|
<li>Added support for "locking" configuration variable that controls whether
|
||||||
|
file locking is used.
|
||||||
|
<li>Task export feature now includes recurrence information, removes nested
|
||||||
|
quotes, and limits output to pending tasks.
|
||||||
|
<li>Task no longer includes deleted tasks in the summary report (thanks to
|
||||||
|
Benjamin Tegarden).
|
||||||
|
<li>Fixed bug that prevented the summary report from properly reporting
|
||||||
|
recently completed tasks.
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.4.3 (11/1/2008)</h4>
|
||||||
|
<a href="http://www.beckingham.net/task-1.4.3.tar.gz">task-1.4.3.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Mac OS X 10.5 (Leopard) Intel-only:
|
||||||
|
<a href="http://www.beckingham.net/task-1.4.3.pkg">task-1.4.3.pkg</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.4.3-1_i386.deb">task_1.4.3-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<li>Fixed misleading task count at bottom of "info" report.
|
||||||
|
<li>Added support for a shadow file that contains a plain text task report,
|
||||||
|
with the "shadow.file" and "shadow.command" configuration variables.
|
||||||
|
The shadow file is automatically updated whenever the task database
|
||||||
|
changes. Useful for integrating with "Samurize".
|
||||||
|
<li>Task now displays a message whenever a shadow file is updated, if the
|
||||||
|
"shadow.notify" configuration variable is set "on".
|
||||||
|
<li>Fixed bug whereby adding a task with a \n, \r or \f did not fail properly.
|
||||||
|
<li>Removed "task usage" command.
|
||||||
|
<li>Added documentation for Shadow files.
|
||||||
|
<li>Added documentation for task filters.
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.4.2 (9/18/2008)</h4>
|
||||||
|
<a href="http://www.beckingham.net/task-1.4.2.tar.gz">task-1.4.2.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Mac OS X 10.5 (Leopard) Intel-only:
|
||||||
|
<a href="http://www.beckingham.net/task-1.4.2.pkg">task-1.4.2.pkg</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.4.2-1_i386.deb">task_1.4.2-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>"task undo" can now retract a "task done" command, provided no
|
||||||
|
reports have been run.
|
||||||
|
<li>Task now correctly sorts on entire strings, instead of just the
|
||||||
|
first character (thanks to Andy Lester).
|
||||||
|
<li>Task now uses dashes (-----) to underline column headings when
|
||||||
|
color is disabled (thanks to Vincent Fleuranceau).
|
||||||
|
<li>Task now allows mixed case attribute names (pri:, PRI:, Pri: ...)
|
||||||
|
and commands (add, ADD, Add ...) (thanks to Vincent Fleuranceau).
|
||||||
|
<li>Task now supports a default project and priority for new tasks, via
|
||||||
|
the new "default.project" and "default.priority" configuration variables
|
||||||
|
(thanks to Vincent Fleuranceau).
|
||||||
|
<li>Task supports improved word-wrapping to the terminal width.
|
||||||
|
<li>Task now supports "default.command" configuration variable (for example
|
||||||
|
it could contain "list due:tomorrow") which is the command that is run
|
||||||
|
whenever task is invoked with no arguments.
|
||||||
|
<li>Task supports modifying the existing description of a task, with the
|
||||||
|
following syntax: task <id> "new description ...".
|
||||||
|
<li>Fixed bug so that relative dates in filters (task list due:eom,
|
||||||
|
task list due:tomorrow, task list due:23rd ...) are now properly
|
||||||
|
supported.
|
||||||
|
<li>Fixed bug so that source now properly includes <string.h> in
|
||||||
|
order to build clean using gcc 4.3 (thanks to H. İbrahim Güngör)
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.4.1 (7/18/2008)</h4>
|
||||||
|
<a href="http://www.beckingham.net/task-1.4.1.tar.gz">task-1.4.1.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Mac OS X 10.5 (Leopard) Intel-only:
|
||||||
|
<a href="http://www.beckingham.net/task-1.4.1.pkg">task-1.4.1.pkg</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.4.1-1_i386.deb">task_1.4.1-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Fixed bug: Descriptions could not be altered with "task 123 New description"
|
||||||
|
<li>Tweak: For "task calendar" month names are now centered over the month
|
||||||
|
<li>Removed TUTORIAL file contents in favor of online version
|
||||||
|
<li>New Mac Intel-only Leopard (10.5) binary package
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.4.0 (7/10/2008)</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.4.0.tar.gz">task-1.4.0.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.4.0-1_i386.deb">task_1.4.0-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Added new <a href="recur.html">recurring tasks</a> feature
|
||||||
|
<li>Added "task undelete" feature to restore a (very) recently deleted
|
||||||
|
task
|
||||||
|
<li>Added averages to the "task history" report
|
||||||
|
<li>Added bar chart history report "task ghistory"
|
||||||
|
<li>Added support for rc:<file> to allow override of the default
|
||||||
|
~/.taskrc file
|
||||||
|
<li>Added support for relative due: dates, such as "tomorrow", "friday",
|
||||||
|
"23rd", "eom"
|
||||||
|
<li>Added support for task filtering on all reports
|
||||||
|
<li>Automatically shuts off color, ncurses when output is not to a tty
|
||||||
|
<li>Added support for the ~ character in .taskrc data.location, for flexibility
|
||||||
|
<li>Allows colons on the description, provided what is to the left of the colon
|
||||||
|
is not a standard attribute name
|
||||||
|
<li>Fixed bug where Esc[0m sequences were being emitted for no good reason
|
||||||
|
<li>Fixed bug where table headers are underlined when color is turned off
|
||||||
|
<li>Fixed bug where adding a blank priority resulted in an assigned garbage value
|
||||||
|
<li>Fixed bug parsing date "07/08/2008" when using dateformat "m/d/Y"
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.3.1</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.3.1.tar.gz">task-1.3.1.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.3.1-1_i386.deb">task_1.3.1-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>New configuration variable "defaultwidth" determines the width
|
||||||
|
of windows in the absense of ncurses support
|
||||||
|
<li>Fixed bug where "showage" configuration variable was not being
|
||||||
|
oberved by the "task long" report
|
||||||
|
<li>Fixed bug causing segmentation faults (mostly for Ubuntu users)
|
||||||
|
when various commands are run
|
||||||
|
<li>Fixed bug so that task now will recreate a missing ~/.taskrc file,
|
||||||
|
OR a missing ~/.task directory
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.3.0</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.3.0.tar.gz">task-1.3.0.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.3.0-0_i386.deb">task_1.3.0-0_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>"task calendar" now displays multiple months per line, adjustable
|
||||||
|
by the "monthsperline" configuration variable. Feature added by
|
||||||
|
Damian Glenny
|
||||||
|
<li>Displays shorter message when a command is entered incorrectly,
|
||||||
|
and the full usage for "task help"
|
||||||
|
<li>"task export" can now filter tasks like the reports
|
||||||
|
<li>"task oldest" shows the oldest tasks
|
||||||
|
<li>"task newest" shows the newest tasks
|
||||||
|
<li>Fixed bug where task generates a segmentation fault for several
|
||||||
|
commands, when no "dateformat" configuration variable was present
|
||||||
|
<li>Fixed bug whereby if you have more than one task with a due date,
|
||||||
|
7 days gets added to the entry date of task 2..n
|
||||||
|
<li>Fixed bug whereby "1 wks" was being improperly pluralized
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.2.0</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.2.0.tar.gz">task-1.2.0.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.2.0-1_i386.deb">task_1.2.0-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Subprojects supported - please see documentation below, or TUTORIAL
|
||||||
|
file
|
||||||
|
<li>"dateformat" configuration variable now properly used to parse as
|
||||||
|
well as render dates
|
||||||
|
<li>"task list x" now performs a caseless comparison between "x" and
|
||||||
|
the task description
|
||||||
|
<li>"showage" configuration variable determines whether the "Age" column
|
||||||
|
should appear on the "task list" and "task next" reports
|
||||||
|
<li>Improvements to the TUTORIAL file and this page
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.1.0</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.1.0.tar.gz">task-1.1.0.tar.gz</a>
|
||||||
|
<br />
|
||||||
|
Debian package: <a href="http://www.beckingham.net/task_1.1.0-1_i386.deb">task_1.1.0-1_i386.deb</a>
|
||||||
|
(Thanks to <a href="http://blog.rfquerin.org">Richard Querin</a>)
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>"blanklines" configuration variable to stop displaying unnecessary
|
||||||
|
white space and thus work better on small-screen devices
|
||||||
|
<li>"dateformat" configuration now determines how dates are formatted
|
||||||
|
<li>Better formatting of "task tags" output
|
||||||
|
<li>This home page set up, with TUTORIAL
|
||||||
|
<li>Added tags to the "task long" report
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>New in version 1.0.1</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.0.1.tar.gz">task-1.0.1.tar.gz</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Fixed bug where the UUID generator not properly terminating strings
|
||||||
|
<li>Fixed bug where srandom/srand not called prior to custom UUID generation
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<h4>Version 1.0.0</h4>
|
||||||
|
Source: <a href="http://www.beckingham.net/task-1.0.0.tar.gz">task-1.0.0.tar.gz</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Task 1.0.0 was the first publicly available version of task.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
Copyright 2006-2009, P. Beckingham. All rights reserved.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td align="right" valign="top" width="200px">
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<script type="text/javascript"><!--
|
||||||
|
google_ad_client = "pub-9709799404235424";
|
||||||
|
/* Task Main */
|
||||||
|
google_ad_slot = "8660617875";
|
||||||
|
google_ad_width = 120;
|
||||||
|
google_ad_height = 600;
|
||||||
|
//-->
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
|
||||||
|
</script>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
|
||||||
|
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var pageTracker = _gat._getTracker("UA-4737637-1");
|
||||||
|
pageTracker._initData();
|
||||||
|
pageTracker._trackPageview();
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
92
script.txt
92
script.txt
@@ -1,105 +1,109 @@
|
|||||||
Hello, and welcome to this quick demo of the task program.
|
Hello, and welcome to this quick demo of the task program.
|
||||||
|
|
||||||
task add do laundry Let's add some tasks
|
task add do laundry Let's add some tasks
|
||||||
I need to do laundry
|
I need to do laundry
|
||||||
|
|
||||||
task add project:garage order dumpster Oh yeah, the dumpster
|
task add project:garage order dumpster Oh yeah, I need to order the dumpster
|
||||||
|
|
||||||
task add +phone tell mom i loveher Must call Mom (that "phone" there is a tag - they are
|
task add +phone tell mom i loveher Must call Mom (that "phone" there is a tag - they can
|
||||||
useful for searching, categorizing)
|
be useful for searching and categorizing)
|
||||||
task add +phone pro:garage schedule
|
task add +phone pro:garage schedule
|
||||||
goodwill pickup
|
goodwill pickup
|
||||||
|
|
||||||
task ad +email pro:garage ask Tom if Notice I can abbreviating commands
|
task ad +email pro:garage ask Tom if Notice I can abbreviate commands
|
||||||
he wants that old bkie
|
he wants that old bkie
|
||||||
|
|
||||||
task ls Let's see what we've got
|
task ls Let's see what we've got
|
||||||
I spelled bike wrong
|
Oh, I spelled bike wrong
|
||||||
|
|
||||||
task 5 /bkie/bike/
|
task 5 /bkie/bike/
|
||||||
task ls That's better
|
task ls That's better
|
||||||
|
|
||||||
task 1 pro:home Let's assign projects
|
task 1 pro:home Let's assign projects
|
||||||
task 3 pro:home tell mom I love her
|
task 3 pro:home tell mom I love her
|
||||||
task ls pro:garage
|
task ls pro:garage
|
||||||
|
|
||||||
task long pro:garage Let's see all the columns
|
task long pro:garage Let's see all the columns
|
||||||
|
|
||||||
task list pro:garage There are different ways to list
|
task list pro:garage There are different ways to list
|
||||||
|
|
||||||
task lis +phone By tag
|
task lis +phone By tag
|
||||||
task li pro:garage +phone By project and tag
|
task li pro:garage +phone By project and tag
|
||||||
task l mom By word
|
task l mom By word
|
||||||
|
|
||||||
task 1 priority:H Priorities can be High, Medium or Low
|
task 1 priority:H Priorities can be High, Medium or Low
|
||||||
task pri:H 3
|
task pri:H 3
|
||||||
task 1 pri:M
|
task 1 pri:M
|
||||||
task li The list is sorted by priority.
|
task li The list is sorted by priority.
|
||||||
|
|
||||||
task 2 pri:L
|
task 2 pri:L
|
||||||
task li
|
task li
|
||||||
|
|
||||||
task done 3 Suppose task 3 is done
|
task done 3 Suppose task 3 is done
|
||||||
task li ...and it's gone
|
task li ...and it's gone
|
||||||
|
|
||||||
task 2 +phone +mistake Lets add tags
|
task 2 +phone +mistake Lets add tags
|
||||||
|
|
||||||
# Oops!
|
# Oops!
|
||||||
task 2 -mistake or remove tags
|
task 2 -mistake or remove tags
|
||||||
|
|
||||||
task tags or look at all the tags
|
task tags or look at all the tags
|
||||||
|
|
||||||
task info 2 or all the details
|
task info 2 or all the details
|
||||||
|
|
||||||
task projects or all the projects
|
task projects or all the projects
|
||||||
|
|
||||||
task 3 fg:bold Let's make it colorful
|
task 3 fg:bold Let's make it colorful
|
||||||
task 4 fg:bold_green
|
task 4 fg:bold_green
|
||||||
task li
|
task li
|
||||||
task 3 fg:bold_underline_white
|
task 3 fg:bold_underline_white
|
||||||
task li
|
task li
|
||||||
|
|
||||||
task 4 bg:on_bright_red fg:bold_yellow
|
task 4 bg:on_bright_red fg:bold_yellow
|
||||||
task li Oh that's just nasty - let's get rid of that.
|
task li Oh that's just nasty - let's get rid of that.
|
||||||
task 4 bg:
|
task 4 bg:
|
||||||
task li
|
task li
|
||||||
task 4 fg:
|
task 4 fg:
|
||||||
task 3 fg:
|
task 3 fg:
|
||||||
|
|
||||||
task colors There are many combinations to choose from
|
task colors There are many combinations to choose from
|
||||||
|
|
||||||
(Slashes!!!)
|
(Slashes!!!)
|
||||||
task 1 due:6/8/2008 Let's add a due date
|
task 1 due:6/8/2008 Let's add a due date
|
||||||
date
|
date
|
||||||
|
|
||||||
task li
|
task li
|
||||||
task calendar Notice the due task is in yellow, today is marked cyan
|
task calendar Notice the due task is in yellow, today is marked cyan
|
||||||
|
|
||||||
task 1 due:5/20/2008 This is now an overdue task
|
task 1 due:5/20/2008 This is now an overdue task
|
||||||
task li and it shows up red
|
task li and it shows up red
|
||||||
task overdue
|
task overdue
|
||||||
task cal
|
task cal
|
||||||
|
|
||||||
task export file.csv You can export the tasks to a spreadsheet
|
task export file.csv You can export the tasks to a spreadsheet
|
||||||
cat file.csv
|
cat file.csv
|
||||||
|
|
||||||
task start 1 Started tasks can be used as reminders
|
task start 1 Started tasks can be used as reminders
|
||||||
of what you are supposed to be doing
|
of what you are supposed to be doing
|
||||||
|
|
||||||
task active They show up as active
|
task active They show up as active
|
||||||
task done 1 Let's clear out a couple
|
task done 1 Let's clear out a couple
|
||||||
task li
|
task li
|
||||||
task done 3
|
task done 3
|
||||||
task active
|
task active
|
||||||
|
|
||||||
task summary Summary shows progress on all projects
|
task summary Summary shows progress on all projects
|
||||||
|
|
||||||
task history History shows general activity - how many added,
|
task history History shows general activity - how many added,
|
||||||
completed etc, by month
|
completed etc, by month
|
||||||
|
|
||||||
And that's it. There are more commands than this
|
task ghistory This report shows a histogram of tasks that were
|
||||||
covered in the TUTORIAL file, but this should give
|
added (in red), completed (in green) and deleted
|
||||||
the basic idea.
|
(in yellow), all by month.
|
||||||
|
|
||||||
Thank you for watching.
|
And that's it. There are more commands than this
|
||||||
|
covered in the online documentation, but this should give
|
||||||
|
the basic idea.
|
||||||
|
|
||||||
|
Thank you for watching.
|
||||||
|
|
||||||
|
|||||||
@@ -1,405 +0,0 @@
|
|||||||
Config.o Config.o: Config.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc /usr/include/c++/4.0.0/fstream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/basic_file.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/fstream.tcc /usr/include/c++/4.0.0/sstream \
|
|
||||||
/usr/include/c++/4.0.0/bits/sstream.tcc /usr/include/sys/stat.h task.h \
|
|
||||||
/usr/include/c++/4.0.0/vector /usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h /usr/include/sys/types.h \
|
|
||||||
Config.h Table.h color.h Grid.h color.h TDB.h T.h ../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/fstream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/basic_file.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/fstream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/sstream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/sstream.tcc:
|
|
||||||
|
|
||||||
/usr/include/sys/stat.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
@@ -1,392 +0,0 @@
|
|||||||
Date.o Date.o: Date.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc task.h \
|
|
||||||
/usr/include/c++/4.0.0/vector /usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h /usr/include/sys/types.h \
|
|
||||||
Config.h Table.h color.h Grid.h color.h TDB.h T.h ../auto.h Date.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
|
|
||||||
Date.h:
|
|
||||||
390
src/.deps/T.Po
390
src/.deps/T.Po
@@ -1,390 +0,0 @@
|
|||||||
T.o T.o: T.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc task.h \
|
|
||||||
/usr/include/c++/4.0.0/vector /usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h /usr/include/sys/types.h \
|
|
||||||
Config.h Table.h color.h Grid.h color.h TDB.h T.h ../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
406
src/.deps/TDB.Po
406
src/.deps/TDB.Po
@@ -1,406 +0,0 @@
|
|||||||
TDB.o TDB.o: TDB.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc /usr/include/c++/4.0.0/fstream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/basic_file.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/fstream.tcc /usr/include/sys/file.h \
|
|
||||||
/usr/include/sys/types.h /usr/include/sys/fcntl.h \
|
|
||||||
/usr/include/sys/queue.h task.h /usr/include/c++/4.0.0/vector \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h Config.h Table.h color.h \
|
|
||||||
Grid.h color.h TDB.h T.h ../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/fstream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/basic_file.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/fstream.tcc:
|
|
||||||
|
|
||||||
/usr/include/sys/file.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/fcntl.h:
|
|
||||||
|
|
||||||
/usr/include/sys/queue.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
@@ -1,397 +0,0 @@
|
|||||||
Table.o Table.o: Table.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc Table.h \
|
|
||||||
/usr/include/c++/4.0.0/map /usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.0.0/vector /usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc color.h Grid.h Date.h task.h \
|
|
||||||
/usr/include/sys/types.h Config.h Table.h color.h TDB.h T.h T.h \
|
|
||||||
../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
Date.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
@@ -1,278 +0,0 @@
|
|||||||
color.o color.o: color.cpp /usr/include/c++/4.0.0/string \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/cstring /usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/_types.h /usr/include/sys/_types.h \
|
|
||||||
/usr/include/sys/cdefs.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/machine/signal.h /usr/include/i386/signal.h \
|
|
||||||
/usr/include/i386/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/unistd.h \
|
|
||||||
/usr/include/sys/unistd.h /usr/include/sys/select.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc color.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
@@ -1,393 +0,0 @@
|
|||||||
parse.o parse.o: parse.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc /usr/include/c++/4.0.0/vector \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h Date.h task.h \
|
|
||||||
/usr/include/sys/types.h Config.h Table.h color.h Grid.h color.h TDB.h \
|
|
||||||
T.h ../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
Date.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
@@ -1,392 +0,0 @@
|
|||||||
rules.o rules.o: rules.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc Config.h \
|
|
||||||
/usr/include/c++/4.0.0/map /usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.0.0/vector /usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc Table.h color.h Grid.h Date.h \
|
|
||||||
T.h task.h /usr/include/sys/types.h color.h TDB.h ../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
Date.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
@@ -1,417 +0,0 @@
|
|||||||
task.o task.o: task.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc /usr/include/c++/4.0.0/iomanip \
|
|
||||||
/usr/include/c++/4.0.0/functional /usr/include/c++/4.0.0/fstream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/basic_file.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/fstream.tcc /usr/include/sys/types.h \
|
|
||||||
/usr/include/pwd.h Config.h /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h \
|
|
||||||
/usr/include/c++/4.0.0/vector /usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc Date.h Table.h color.h Grid.h \
|
|
||||||
TDB.h T.h task.h color.h ../auto.h /usr/include/ncurses.h \
|
|
||||||
/usr/include/ncurses_dll.h /usr/include/unctrl.h /usr/include/curses.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iomanip:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/functional:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/fstream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/basic_file.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/fstream.tcc:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
/usr/include/pwd.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
Date.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
|
|
||||||
/usr/include/ncurses.h:
|
|
||||||
|
|
||||||
/usr/include/ncurses_dll.h:
|
|
||||||
|
|
||||||
/usr/include/unctrl.h:
|
|
||||||
|
|
||||||
/usr/include/curses.h:
|
|
||||||
@@ -1,390 +0,0 @@
|
|||||||
text.o text.o: text.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc /usr/include/c++/4.0.0/vector \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc task.h \
|
|
||||||
/usr/include/c++/4.0.0/map /usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h /usr/include/sys/types.h \
|
|
||||||
Config.h Table.h color.h Grid.h color.h TDB.h T.h ../auto.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
@@ -1,395 +0,0 @@
|
|||||||
util.o util.o: util.cpp /usr/include/c++/4.0.0/iostream \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/ostream /usr/include/c++/4.0.0/ios \
|
|
||||||
/usr/include/c++/4.0.0/iosfwd \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h \
|
|
||||||
/usr/include/c++/4.0.0/clocale /usr/include/locale.h \
|
|
||||||
/usr/include/_locale.h /usr/include/sys/cdefs.h /usr/include/_types.h \
|
|
||||||
/usr/include/sys/_types.h /usr/include/machine/_types.h \
|
|
||||||
/usr/include/i386/_types.h /usr/include/c++/4.0.0/cstring \
|
|
||||||
/usr/include/c++/4.0.0/cstddef \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h \
|
|
||||||
/usr/include/string.h /usr/include/c++/4.0.0/cstdio \
|
|
||||||
/usr/include/stdio.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h \
|
|
||||||
/usr/include/pthread.h /usr/include/pthread_impl.h /usr/include/sched.h \
|
|
||||||
/usr/include/time.h /usr/include/_structs.h /usr/include/sys/_structs.h \
|
|
||||||
/usr/include/unistd.h /usr/include/sys/unistd.h \
|
|
||||||
/usr/include/sys/select.h /usr/include/sys/appleapiopts.h \
|
|
||||||
/usr/include/sys/_select.h /usr/include/c++/4.0.0/cctype \
|
|
||||||
/usr/include/ctype.h /usr/include/runetype.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h /usr/include/c++/4.0.0/cwchar \
|
|
||||||
/usr/include/c++/4.0.0/ctime /usr/include/wchar.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h \
|
|
||||||
/usr/include/_wctype.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h \
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h \
|
|
||||||
/usr/include/c++/4.0.0/exception \
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h \
|
|
||||||
/usr/include/c++/4.0.0/climits \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h \
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h \
|
|
||||||
/usr/include/limits.h /usr/include/machine/limits.h \
|
|
||||||
/usr/include/i386/limits.h /usr/include/i386/_limits.h \
|
|
||||||
/usr/include/sys/syslimits.h /usr/include/c++/4.0.0/cstdlib \
|
|
||||||
/usr/include/stdlib.h /usr/include/available.h /usr/include/sys/wait.h \
|
|
||||||
/usr/include/sys/signal.h /usr/include/machine/signal.h \
|
|
||||||
/usr/include/i386/signal.h /usr/include/i386/_structs.h \
|
|
||||||
/usr/include/machine/_structs.h /usr/include/mach/i386/_structs.h \
|
|
||||||
/usr/include/sys/resource.h /usr/include/machine/endian.h \
|
|
||||||
/usr/include/i386/endian.h /usr/include/sys/_endian.h \
|
|
||||||
/usr/include/libkern/_OSByteOrder.h \
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h /usr/include/alloca.h \
|
|
||||||
/usr/include/machine/types.h /usr/include/i386/types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h /usr/include/c++/4.0.0/cassert \
|
|
||||||
/usr/include/assert.h /usr/include/c++/4.0.0/bits/localefwd.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h \
|
|
||||||
/usr/include/c++/4.0.0/string /usr/include/c++/4.0.0/memory \
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h \
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h /usr/include/c++/4.0.0/new \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h \
|
|
||||||
/usr/include/c++/4.0.0/limits \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h \
|
|
||||||
/usr/include/c++/4.0.0/algorithm /usr/include/c++/4.0.0/bits/stl_algo.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc \
|
|
||||||
/usr/include/c++/4.0.0/streambuf \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h \
|
|
||||||
/usr/include/c++/4.0.0/cwctype /usr/include/wctype.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h \
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc \
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc /usr/include/c++/4.0.0/locale \
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc \
|
|
||||||
/usr/include/c++/4.0.0/typeinfo /usr/include/c++/4.0.0/istream \
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc /usr/include/c++/4.0.0/vector \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc /usr/include/sys/types.h \
|
|
||||||
/usr/include/sys/time.h Table.h /usr/include/c++/4.0.0/map \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h \
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h color.h Grid.h task.h \
|
|
||||||
Config.h color.h TDB.h T.h ../auto.h /usr/include/uuid/uuid.h
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++config.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/os_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ostream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ios:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/iosfwd:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++locale.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/clocale:
|
|
||||||
|
|
||||||
/usr/include/locale.h:
|
|
||||||
|
|
||||||
/usr/include/_locale.h:
|
|
||||||
|
|
||||||
/usr/include/sys/cdefs.h:
|
|
||||||
|
|
||||||
/usr/include/_types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_types.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstring:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstddef:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stddef.h:
|
|
||||||
|
|
||||||
/usr/include/string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdio:
|
|
||||||
|
|
||||||
/usr/include/stdio.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++io.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/gthr-default.h:
|
|
||||||
|
|
||||||
/usr/include/pthread.h:
|
|
||||||
|
|
||||||
/usr/include/pthread_impl.h:
|
|
||||||
|
|
||||||
/usr/include/sched.h:
|
|
||||||
|
|
||||||
/usr/include/time.h:
|
|
||||||
|
|
||||||
/usr/include/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/unistd.h:
|
|
||||||
|
|
||||||
/usr/include/sys/select.h:
|
|
||||||
|
|
||||||
/usr/include/sys/appleapiopts.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_select.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cctype:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:
|
|
||||||
|
|
||||||
/usr/include/runetype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stringfwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/postypes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwchar:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ctime:
|
|
||||||
|
|
||||||
/usr/include/wchar.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdarg.h:
|
|
||||||
|
|
||||||
/usr/include/_wctype.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/stdint.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/functexcept.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception_defines.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/exception:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/char_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algobase.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/climits:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/limits.h:
|
|
||||||
|
|
||||||
/usr/lib/gcc/i686-apple-darwin9/4.0.1/include/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/limits.h:
|
|
||||||
|
|
||||||
/usr/include/machine/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/limits.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_limits.h:
|
|
||||||
|
|
||||||
/usr/include/sys/syslimits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cstdlib:
|
|
||||||
|
|
||||||
/usr/include/stdlib.h:
|
|
||||||
|
|
||||||
/usr/include/available.h:
|
|
||||||
|
|
||||||
/usr/include/sys/wait.h:
|
|
||||||
|
|
||||||
/usr/include/sys/signal.h:
|
|
||||||
|
|
||||||
/usr/include/machine/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/signal.h:
|
|
||||||
|
|
||||||
/usr/include/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/machine/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/mach/i386/_structs.h:
|
|
||||||
|
|
||||||
/usr/include/sys/resource.h:
|
|
||||||
|
|
||||||
/usr/include/machine/endian.h:
|
|
||||||
|
|
||||||
/usr/include/i386/endian.h:
|
|
||||||
|
|
||||||
/usr/include/sys/_endian.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/libkern/i386/_OSByteOrder.h:
|
|
||||||
|
|
||||||
/usr/include/alloca.h:
|
|
||||||
|
|
||||||
/usr/include/machine/types.h:
|
|
||||||
|
|
||||||
/usr/include/i386/types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_pair.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/cpp_type_traits.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_types.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator_base_funcs.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/concept_check.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/debug/debug.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cassert:
|
|
||||||
|
|
||||||
/usr/include/assert.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/localefwd.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ios_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/atomicity.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/atomic_word.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_classes.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/string:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/memory:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/c++allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/ext/new_allocator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/new:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_construct.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_uninitialized.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_raw_storage_iter.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/limits:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_function.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/algorithm:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_algo.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_heap.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tempbuf.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_string.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/streambuf:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/streambuf_iterator.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/cwctype:
|
|
||||||
|
|
||||||
/usr/include/wctype.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_base.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/ctype_inline.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/codecvt.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/time_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/i686-apple-darwin9/bits/messages_members.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/basic_ios.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/ostream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/locale:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/locale_facets.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/typeinfo:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/istream:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/istream.tcc:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/vector:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_vector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_bvector.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/vector.tcc:
|
|
||||||
|
|
||||||
/usr/include/sys/types.h:
|
|
||||||
|
|
||||||
/usr/include/sys/time.h:
|
|
||||||
|
|
||||||
Table.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/map:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_tree.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_map.h:
|
|
||||||
|
|
||||||
/usr/include/c++/4.0.0/bits/stl_multimap.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
Grid.h:
|
|
||||||
|
|
||||||
task.h:
|
|
||||||
|
|
||||||
Config.h:
|
|
||||||
|
|
||||||
color.h:
|
|
||||||
|
|
||||||
TDB.h:
|
|
||||||
|
|
||||||
T.h:
|
|
||||||
|
|
||||||
../auto.h:
|
|
||||||
|
|
||||||
/usr/include/uuid/uuid.h:
|
|
||||||
1
src/.gitignore
vendored
1
src/.gitignore
vendored
@@ -1,2 +1 @@
|
|||||||
./Makefile
|
|
||||||
*.o
|
*.o
|
||||||
|
|||||||
195
src/Config.cpp
195
src/Config.cpp
@@ -1,7 +1,7 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -27,14 +27,49 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <pwd.h>
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// These are default (but overridable) reports. These entries are necessary
|
||||||
|
// because these three reports were converted from hard-coded reports to custom
|
||||||
|
// reports, and therefore need these config file entries. However, users are
|
||||||
|
// already used to seeing these five reports, but do not have these entries.
|
||||||
|
// The choice was a) make users edit their .taskrc files, b) write a .taskrc
|
||||||
|
// upgrade program to make the change, or c) this.
|
||||||
Config::Config ()
|
Config::Config ()
|
||||||
{
|
{
|
||||||
|
(*this)["report.long.description"] = "Lists all task, all data, matching the specified criteria";
|
||||||
|
(*this)["report.long.columns"] = "id,project,priority,entry,start,due,recur,age,tags,description";
|
||||||
|
(*this)["report.long.labels"] = "ID,Project,Pri,Added,Started,Due,Recur,Age,Tags,Description";
|
||||||
|
(*this)["report.long.sort"] = "due+,priority-,project+";
|
||||||
|
|
||||||
|
(*this)["report.list.description"] = "Lists all tasks matching the specified criteria";
|
||||||
|
(*this)["report.list.columns"] = "id,project,priority,due,active,age,description";
|
||||||
|
(*this)["report.list.labels"] = "ID,Project,Pri,Due,Active,Age,Description";
|
||||||
|
(*this)["report.list.sort"] = "due+,priority-,project+";
|
||||||
|
|
||||||
|
(*this)["report.ls.description"] = "Minimal listing of all tasks matching the specified criteria";
|
||||||
|
(*this)["report.ls.columns"] = "id,project,priority,description";
|
||||||
|
(*this)["report.ls.labels"] = "ID,Project,Pri,Description";
|
||||||
|
(*this)["report.ls.sort"] = "priority-,project+";
|
||||||
|
|
||||||
|
(*this)["report.newest.description"] = "Shows the newest tasks";
|
||||||
|
(*this)["report.newest.columns"] = "id,project,priority,due,active,age,description";
|
||||||
|
(*this)["report.newest.labels"] = "ID,Project,Pri,Due,Active,Age,Description";
|
||||||
|
(*this)["report.newest.sort"] = "id-";
|
||||||
|
(*this)["report.newest.limit"] = "10";
|
||||||
|
|
||||||
|
(*this)["report.oldest.description"] = "Shows the oldest tasks";
|
||||||
|
(*this)["report.oldest.columns"] = "id,project,priority,due,active,age,description";
|
||||||
|
(*this)["report.oldest.labels"] = "ID,Project,Pri,Due,Active,Age,Description";
|
||||||
|
(*this)["report.oldest.sort"] = "id+";
|
||||||
|
(*this)["report.oldest.limit"] = "10";
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -44,9 +79,9 @@ Config::Config (const std::string& file)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Read the Configuration filee and populate the *this map. The file format
|
// Read the Configuration file and populate the *this map. The file format is
|
||||||
// is simply lines with name=value pairs. Whitespace between name, = and value
|
// simply lines with name=value pairs. Whitespace between name, = and value is
|
||||||
// is not tolerated, but blank lines and comments starting with # are allowed.
|
// not tolerated, but blank lines and comments starting with # are allowed.
|
||||||
bool Config::load (const std::string& file)
|
bool Config::load (const std::string& file)
|
||||||
{
|
{
|
||||||
std::ifstream in;
|
std::ifstream in;
|
||||||
@@ -84,74 +119,107 @@ bool Config::load (const std::string& file)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void Config::createDefault (const std::string& file)
|
void Config::createDefault (const std::string& home)
|
||||||
{
|
{
|
||||||
if (confirm (
|
// Strip trailing slash off home directory, if necessary.
|
||||||
"A configuration file could not be found in "
|
std::string terminatedHome = home;
|
||||||
+ file
|
if (home[home.length () - 1] == '/')
|
||||||
+ "\n\n"
|
terminatedHome = home.substr (0, home.length () - 1);
|
||||||
+ "Would you like a sample .taskrc created, so task can proceed?"))
|
|
||||||
{
|
|
||||||
// Determine a path to the task directory.
|
|
||||||
std::string taskDir = "";
|
|
||||||
for (int i = file.length () - 1; i >= 0; --i)
|
|
||||||
{
|
|
||||||
if (file[i] == '/')
|
|
||||||
{
|
|
||||||
taskDir = file.substr (0, i) + "/.task";
|
|
||||||
if (-1 == access (taskDir.c_str (), F_OK))
|
|
||||||
mkdir (taskDir.c_str (), S_IRWXU);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (taskDir != "")
|
// Determine default names of init file and task directory.
|
||||||
|
std::string rcFile = terminatedHome + "/.taskrc";
|
||||||
|
std::string dataDir = terminatedHome + "/.task";;
|
||||||
|
|
||||||
|
// If rcFile is not found, offer to create one.
|
||||||
|
if (-1 == access (rcFile.c_str (), F_OK))
|
||||||
|
{
|
||||||
|
if (confirm (
|
||||||
|
"A configuration file could not be found in "
|
||||||
|
+ rcFile
|
||||||
|
+ "\n\n"
|
||||||
|
+ "Would you like a sample .taskrc created, so task can proceed?"))
|
||||||
{
|
{
|
||||||
// Create a sample .taskrc file.
|
// Create a sample .taskrc file.
|
||||||
FILE* out;
|
FILE* out;
|
||||||
if ((out = fopen (file.c_str (), "w")))
|
if ((out = fopen (rcFile.c_str (), "w")))
|
||||||
{
|
{
|
||||||
fprintf (out, "data.location=%s\n", taskDir.c_str ());
|
fprintf (out, "data.location=%s\n", dataDir.c_str ());
|
||||||
fprintf (out, "command.logging=off\n");
|
|
||||||
fprintf (out, "confirmation=yes\n");
|
fprintf (out, "confirmation=yes\n");
|
||||||
fprintf (out, "#nag=Note: try to stick to high priority tasks. See \"task next\".\n");
|
fprintf (out, "echo.command=yes\n");
|
||||||
fprintf (out, "next=2\n");
|
fprintf (out, "next=2\n");
|
||||||
|
fprintf (out, "dateformat=m/d/Y\n");
|
||||||
|
fprintf (out, "#monthsperline=2\n");
|
||||||
fprintf (out, "curses=on\n");
|
fprintf (out, "curses=on\n");
|
||||||
fprintf (out, "color=on\n");
|
fprintf (out, "color=on\n");
|
||||||
|
fprintf (out, "due=7\n");
|
||||||
|
fprintf (out, "nag=You have higher priority tasks.\n");
|
||||||
|
fprintf (out, "locking=on\n");
|
||||||
|
|
||||||
fprintf (out, "color.overdue=bold_red\n");
|
fprintf (out, "color.overdue=bold_red\n");
|
||||||
fprintf (out, "#color.due=on_bright_yellow\n");
|
fprintf (out, "color.due=bold_yellow\n");
|
||||||
fprintf (out, "#color.pri.H=on_red\n");
|
fprintf (out, "color.pri.H=bold\n");
|
||||||
fprintf (out, "#color.pri.M=on_yellow\n");
|
fprintf (out, "#color.pri.M=on_yellow\n");
|
||||||
fprintf (out, "#color.pri.L=on_green\n");
|
fprintf (out, "#color.pri.L=on_green\n");
|
||||||
|
fprintf (out, "#color.pri.none=white on_blue\n");
|
||||||
fprintf (out, "color.active=bold_cyan\n");
|
fprintf (out, "color.active=bold_cyan\n");
|
||||||
fprintf (out, "color.tagged=yellow\n");
|
fprintf (out, "color.tagged=yellow\n");
|
||||||
fprintf (out, "#color.tag.bug=yellow\n");
|
fprintf (out, "#color.tag.bug=yellow\n");
|
||||||
fprintf (out, "#color.project.home=on_green\n");
|
fprintf (out, "#color.project.garden=on_green\n");
|
||||||
fprintf (out, "#color.keyword.car=on_blue\n");
|
fprintf (out, "#color.keyword.car=on_blue\n");
|
||||||
|
fprintf (out, "#color.recurring=on_red\n");
|
||||||
|
fprintf (out, "#shadow.file=%s/shadow.txt\n", dataDir.c_str ());
|
||||||
|
fprintf (out, "#shadow.command=list\n");
|
||||||
|
fprintf (out, "#shadow.notify=on\n");
|
||||||
|
fprintf (out, "#default.project=foo\n");
|
||||||
|
fprintf (out, "#default.priority=M\n");
|
||||||
|
fprintf (out, "default.command=list\n");
|
||||||
|
|
||||||
|
// Custom reports.
|
||||||
|
fprintf (out, "# Fields: id,uuid,project,priority,entry,start,due,recur,age,active,tags,description\n");
|
||||||
|
fprintf (out, "# description_only\n");
|
||||||
|
fprintf (out, "# Description: This report is ...\n");
|
||||||
|
fprintf (out, "# Sort: due+,priority-,project+\n");
|
||||||
|
fprintf (out, "# Filter: pro:x pri:H +bug\n");
|
||||||
|
fprintf (out, "# Limit: 10\n");
|
||||||
|
|
||||||
|
fprintf (out, "report.long.description=Lists all task, all data, matching the specified criteria\n");
|
||||||
|
fprintf (out, "report.long.columns=id,project,priority,entry,start,due,recur,age,tags,description\n");
|
||||||
|
fprintf (out, "report.long.sort=due+,priority-,project+\n");
|
||||||
|
|
||||||
|
fprintf (out, "report.list.description=Lists all tasks matching the specified criteria\n");
|
||||||
|
fprintf (out, "report.list.columns=id,project,priority,due,active,age,description\n");
|
||||||
|
fprintf (out, "report.list.sort=due+,priority-,project+\n");
|
||||||
|
|
||||||
|
fprintf (out, "report.ls.description=Minimal listing of all tasks matching the specified criteria\n");
|
||||||
|
fprintf (out, "report.ls.columns=id,project,priority,description\n");
|
||||||
|
fprintf (out, "report.ls.sort=priority-,project+\n");
|
||||||
|
|
||||||
|
fprintf (out, "report.newest.description=Shows the newest tasks\n");
|
||||||
|
fprintf (out, "report.newest.columns=id,project,priority,due,active,age,description\n");
|
||||||
|
fprintf (out, "report.newest.sort=id-\n");
|
||||||
|
fprintf (out, "report.newest.limit=10\n");
|
||||||
|
|
||||||
|
fprintf (out, "report.oldest.description=Shows the oldest tasks\n");
|
||||||
|
fprintf (out, "report.oldest.columns=id,project,priority,due,active,age,description\n");
|
||||||
|
fprintf (out, "report.oldest.sort=id+\n");
|
||||||
|
fprintf (out, "report.oldest.limit=10\n");
|
||||||
|
|
||||||
fclose (out);
|
fclose (out);
|
||||||
|
|
||||||
// Now set the live values.
|
|
||||||
set ("data.location", taskDir);
|
|
||||||
set ("command.logging", "off");
|
|
||||||
set ("confirmation", "yes");
|
|
||||||
set ("next", 1);
|
|
||||||
set ("curses", "on");
|
|
||||||
set ("color", "on");
|
|
||||||
set ("color.overdue", "red");
|
|
||||||
set ("color.active", "cyan");
|
|
||||||
set ("color.tagged", "yellow");
|
|
||||||
|
|
||||||
std::cout << "Done." << std::endl;
|
std::cout << "Done." << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this->load (rcFile);
|
||||||
|
|
||||||
|
if (-1 == access (dataDir.c_str (), F_OK))
|
||||||
|
mkdir (dataDir.c_str (), S_IRWXU);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Return the configuration value given the specified key.
|
// Return the configuration value given the specified key.
|
||||||
const std::string& Config::get (const char* key)
|
const std::string Config::get (const char* key)
|
||||||
{
|
{
|
||||||
return this->get (std::string (key));
|
return this->get (std::string (key));
|
||||||
}
|
}
|
||||||
@@ -159,7 +227,7 @@ const std::string& Config::get (const char* key)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Return the configuration value given the specified key. If a default_value
|
// Return the configuration value given the specified key. If a default_value
|
||||||
// is present, it will be the returned value in the event of a missing key.
|
// is present, it will be the returned value in the event of a missing key.
|
||||||
const std::string& Config::get (
|
const std::string Config::get (
|
||||||
const char* key,
|
const char* key,
|
||||||
const char* default_value)
|
const char* default_value)
|
||||||
{
|
{
|
||||||
@@ -168,7 +236,7 @@ const std::string& Config::get (
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Return the configuration value given the specified key.
|
// Return the configuration value given the specified key.
|
||||||
const std::string& Config::get (const std::string& key)
|
const std::string Config::get (const std::string& key)
|
||||||
{
|
{
|
||||||
return (*this)[key];
|
return (*this)[key];
|
||||||
}
|
}
|
||||||
@@ -176,7 +244,7 @@ const std::string& Config::get (const std::string& key)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Return the configuration value given the specified key. If a default_value
|
// Return the configuration value given the specified key. If a default_value
|
||||||
// is present, it will be the returned value in the event of a missing key.
|
// is present, it will be the returned value in the event of a missing key.
|
||||||
const std::string& Config::get (
|
const std::string Config::get (
|
||||||
const std::string& key,
|
const std::string& key,
|
||||||
const std::string& default_value)
|
const std::string& default_value)
|
||||||
{
|
{
|
||||||
@@ -193,11 +261,13 @@ bool Config::get (const std::string& key, bool default_value)
|
|||||||
{
|
{
|
||||||
std::string value = lowerCase ((*this)[key]);
|
std::string value = lowerCase ((*this)[key]);
|
||||||
|
|
||||||
if (value == "t" ||
|
if (value == "t" ||
|
||||||
value == "true" ||
|
value == "true" ||
|
||||||
value == "1" ||
|
value == "1" ||
|
||||||
value == "yes" ||
|
value == "yes" ||
|
||||||
value == "on")
|
value == "on" ||
|
||||||
|
value == "enable" ||
|
||||||
|
value == "enabled")
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@@ -246,29 +316,6 @@ void Config::set (const std::string& key, const std::string& value)
|
|||||||
(*this)[key] = value;
|
(*this)[key] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// The vector form of Config::get assumes the single value is comma-separated,
|
|
||||||
// and splits accordingly.
|
|
||||||
void Config::get (
|
|
||||||
const std::string& key,
|
|
||||||
std::vector <std::string>& values)
|
|
||||||
{
|
|
||||||
values.clear ();
|
|
||||||
split (values, (*this)[key], ',');
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// The vector form of Config::set joins the values together with commas, and
|
|
||||||
// stores the single value.
|
|
||||||
void Config::set (
|
|
||||||
const std::string& key,
|
|
||||||
const std::vector <std::string>& values)
|
|
||||||
{
|
|
||||||
std::string conjoined;
|
|
||||||
join (conjoined, ",", values);
|
|
||||||
(*this)[key] = conjoined;
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Provide a vector of all configuration keys.
|
// Provide a vector of all configuration keys.
|
||||||
void Config::all (std::vector<std::string>& items)
|
void Config::all (std::vector<std::string>& items)
|
||||||
|
|||||||
12
src/Config.h
12
src/Config.h
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -40,18 +40,16 @@ public:
|
|||||||
bool load (const std::string&);
|
bool load (const std::string&);
|
||||||
void createDefault (const std::string&);
|
void createDefault (const std::string&);
|
||||||
|
|
||||||
const std::string& get (const char*);
|
const std::string get (const char*);
|
||||||
const std::string& get (const char*, const char*);
|
const std::string get (const char*, const char*);
|
||||||
const std::string& get (const std::string&);
|
const std::string get (const std::string&);
|
||||||
const std::string& get (const std::string&, const std::string&);
|
const std::string get (const std::string&, const std::string&);
|
||||||
bool get (const std::string&, bool);
|
bool get (const std::string&, bool);
|
||||||
int get (const std::string&, const int);
|
int get (const std::string&, const int);
|
||||||
double get (const std::string&, const double);
|
double get (const std::string&, const double);
|
||||||
void get (const std::string&, std::vector <std::string>&);
|
|
||||||
void set (const std::string&, const int);
|
void set (const std::string&, const int);
|
||||||
void set (const std::string&, const double);
|
void set (const std::string&, const double);
|
||||||
void set (const std::string&, const std::string&);
|
void set (const std::string&, const std::string&);
|
||||||
void set (const std::string&, const std::vector <std::string>&);
|
|
||||||
void all (std::vector <std::string>&);
|
void all (std::vector <std::string>&);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
299
src/Date.cpp
299
src/Date.cpp
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -57,12 +57,16 @@ Date::Date (const int m, const int d, const int y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
Date::Date (const std::string& mdy, const std::string format /* = "m/d/Y" */)
|
Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
|
||||||
{
|
{
|
||||||
int month = 0;
|
int month = 0;
|
||||||
int day = 0;
|
int day = 0;
|
||||||
int year = 0;
|
int year = 0;
|
||||||
|
|
||||||
|
// Before parsing according to "format", perhaps this is a relative date?
|
||||||
|
if (isRelativeDate (mdy))
|
||||||
|
return;
|
||||||
|
|
||||||
unsigned int i = 0; // Index into mdy.
|
unsigned int i = 0; // Index into mdy.
|
||||||
|
|
||||||
for (unsigned int f = 0; f < format.length (); ++f)
|
for (unsigned int f = 0; f < format.length (); ++f)
|
||||||
@@ -78,8 +82,8 @@ Date::Date (const std::string& mdy, const std::string format /* = "m/d/Y" */)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (i + 1 < mdy.length () &&
|
if (i + 1 < mdy.length () &&
|
||||||
mdy[i + 0] == '1' &&
|
(mdy[i + 0] == '0' || mdy[i + 0] == '1') &&
|
||||||
(mdy[i + 1] == '0' || mdy[i + 1] == '1' || mdy[i + 1] == '2'))
|
::isdigit (mdy[i + 1]))
|
||||||
{
|
{
|
||||||
month = ::atoi (mdy.substr (i, 2).c_str ());
|
month = ::atoi (mdy.substr (i, 2).c_str ());
|
||||||
i += 2;
|
i += 2;
|
||||||
@@ -98,8 +102,8 @@ Date::Date (const std::string& mdy, const std::string format /* = "m/d/Y" */)
|
|||||||
throw std::string ("\"") + mdy + "\" is not a valid date.";
|
throw std::string ("\"") + mdy + "\" is not a valid date.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i + 1 < mdy.length () &&
|
if (i + 1 < mdy.length () &&
|
||||||
(mdy[i + 0] == '1' || mdy[i + 0] == '2' || mdy[i + 0] == '3') &&
|
(mdy[i + 0] == '0' || mdy[i + 0] == '1' || mdy[i + 0] == '2' || mdy[i + 0] == '3') &&
|
||||||
::isdigit (mdy[i + 1]))
|
::isdigit (mdy[i + 1]))
|
||||||
{
|
{
|
||||||
day = ::atoi (mdy.substr (i, 2).c_str ());
|
day = ::atoi (mdy.substr (i, 2).c_str ());
|
||||||
@@ -184,7 +188,7 @@ Date::Date (const std::string& mdy, const std::string format /* = "m/d/Y" */)
|
|||||||
t.tm_mon = month - 1;
|
t.tm_mon = month - 1;
|
||||||
t.tm_year = year - 1900;
|
t.tm_year = year - 1900;
|
||||||
|
|
||||||
mT = mktime (&t);
|
mT = mktime (&t);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -221,65 +225,29 @@ void Date::toMDY (int& m, int& d, int& y)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
std::string Date::toString (const std::string& format /*= "m/d/Y"*/)
|
const std::string Date::toString (const std::string& format /*= "m/d/Y" */) const
|
||||||
{
|
{
|
||||||
|
// Making this local copy seems to fix a bug. Remove the local copy and you'll
|
||||||
|
// see segmentation faults and all kinds of gibberish.
|
||||||
|
std::string localFormat = format;
|
||||||
|
|
||||||
|
char buffer[12];
|
||||||
std::string formatted;
|
std::string formatted;
|
||||||
for (unsigned int i = 0; i < format.length (); ++i)
|
for (unsigned int i = 0; i < localFormat.length (); ++i)
|
||||||
{
|
{
|
||||||
switch (format[i])
|
char c = localFormat[i];
|
||||||
|
switch (c)
|
||||||
{
|
{
|
||||||
case 'm':
|
case 'm': sprintf (buffer, "%d", this->month ()); break;
|
||||||
{
|
case 'M': sprintf (buffer, "%02d", this->month ()); break;
|
||||||
char m[3];
|
case 'd': sprintf (buffer, "%d", this->day ()); break;
|
||||||
sprintf (m, "%d", this->month ());
|
case 'D': sprintf (buffer, "%02d", this->day ()); break;
|
||||||
formatted += m;
|
case 'y': sprintf (buffer, "%02d", this->year () % 100); break;
|
||||||
}
|
case 'Y': sprintf (buffer, "%d", this->year ()); break;
|
||||||
break;
|
default: sprintf (buffer, "%c", c); break;
|
||||||
|
|
||||||
case 'M':
|
|
||||||
{
|
|
||||||
char m[3];
|
|
||||||
sprintf (m, "%02d", this->month ());
|
|
||||||
formatted += m;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'd':
|
|
||||||
{
|
|
||||||
char d[3];
|
|
||||||
sprintf (d, "%d", this->day ());
|
|
||||||
formatted += d;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'D':
|
|
||||||
{
|
|
||||||
char d[3];
|
|
||||||
sprintf (d, "%02d", this->day ());
|
|
||||||
formatted += d;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'y':
|
|
||||||
{
|
|
||||||
char y[3];
|
|
||||||
sprintf (y, "%02d", this->year () % 100);
|
|
||||||
formatted += y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'Y':
|
|
||||||
{
|
|
||||||
char y[5];
|
|
||||||
sprintf (y, "%d", this->year ());
|
|
||||||
formatted += y;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
formatted += format[i];
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
formatted += buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
return formatted;
|
return formatted;
|
||||||
@@ -349,7 +317,7 @@ std::string Date::monthName (int month)
|
|||||||
|
|
||||||
assert (month > 0);
|
assert (month > 0);
|
||||||
assert (month <= 12);
|
assert (month <= 12);
|
||||||
return months[month -1];
|
return months[month - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -393,6 +361,22 @@ int Date::dayOfWeek () const
|
|||||||
return t->tm_wday;
|
return t->tm_wday;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
int Date::dayOfWeek (const std::string& input)
|
||||||
|
{
|
||||||
|
std::string in = lowerCase (input);
|
||||||
|
|
||||||
|
if (in == "sunday") return 0;
|
||||||
|
if (in == "monday") return 1;
|
||||||
|
if (in == "tuesday") return 2;
|
||||||
|
if (in == "wednesday") return 3;
|
||||||
|
if (in == "thursday") return 4;
|
||||||
|
if (in == "friday") return 5;
|
||||||
|
if (in == "saturday") return 6;
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int Date::month () const
|
int Date::month () const
|
||||||
{
|
{
|
||||||
@@ -450,6 +434,36 @@ bool Date::operator>= (const Date& rhs)
|
|||||||
return mT >= rhs.mT;
|
return mT >= rhs.mT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool Date::sameDay (const Date& rhs)
|
||||||
|
{
|
||||||
|
if (this->year () == rhs.year () &&
|
||||||
|
this->month () == rhs.month () &&
|
||||||
|
this->day () == rhs.day ())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool Date::sameMonth (const Date& rhs)
|
||||||
|
{
|
||||||
|
if (this->year () == rhs.year () &&
|
||||||
|
this->month () == rhs.month ())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool Date::sameYear (const Date& rhs)
|
||||||
|
{
|
||||||
|
if (this->year () == rhs.year ())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
Date Date::operator+ (const int delta)
|
Date Date::operator+ (const int delta)
|
||||||
{
|
{
|
||||||
@@ -477,3 +491,164 @@ time_t Date::operator- (const Date& rhs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// If the input string looks like a relative date, determine that date, set mT
|
||||||
|
// and return true.
|
||||||
|
//
|
||||||
|
// What is a relative date? All of the following should be recognizable, and
|
||||||
|
// converted to an absolute date:
|
||||||
|
// wednesday
|
||||||
|
// fri
|
||||||
|
// 23rd
|
||||||
|
// today
|
||||||
|
// tomorrow
|
||||||
|
// yesterday
|
||||||
|
// eow (end of week)
|
||||||
|
// eom (end of month)
|
||||||
|
// eoy (end of year)
|
||||||
|
bool Date::isRelativeDate (const std::string& input)
|
||||||
|
{
|
||||||
|
std::string in (lowerCase (input));
|
||||||
|
Date today;
|
||||||
|
|
||||||
|
std::vector <std::string> supported;
|
||||||
|
supported.push_back ("monday");
|
||||||
|
supported.push_back ("tuesday");
|
||||||
|
supported.push_back ("wednesday");
|
||||||
|
supported.push_back ("thursday");
|
||||||
|
supported.push_back ("friday");
|
||||||
|
supported.push_back ("saturday");
|
||||||
|
supported.push_back ("sunday");
|
||||||
|
supported.push_back ("today");
|
||||||
|
supported.push_back ("tomorrow");
|
||||||
|
supported.push_back ("yesterday");
|
||||||
|
supported.push_back ("eow");
|
||||||
|
supported.push_back ("eom");
|
||||||
|
supported.push_back ("eoy");
|
||||||
|
|
||||||
|
std::vector <std::string> matches;
|
||||||
|
if (autoComplete (in, supported, matches) == 1)
|
||||||
|
{
|
||||||
|
std::string found = matches[0];
|
||||||
|
|
||||||
|
// If day name.
|
||||||
|
int dow;
|
||||||
|
if ((dow = Date::dayOfWeek (found)) != -1 ||
|
||||||
|
found == "eow")
|
||||||
|
{
|
||||||
|
if (found == "eow")
|
||||||
|
dow = 5;
|
||||||
|
|
||||||
|
if (today.dayOfWeek () >= dow)
|
||||||
|
today += (dow - today.dayOfWeek () + 7) * 86400;
|
||||||
|
else
|
||||||
|
today += (dow - today.dayOfWeek ()) * 86400;
|
||||||
|
|
||||||
|
int m, d, y;
|
||||||
|
today.toMDY (m, d, y);
|
||||||
|
Date then (m, d, y);
|
||||||
|
|
||||||
|
mT = then.mT;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (found == "today")
|
||||||
|
{
|
||||||
|
Date then (today.month (),
|
||||||
|
today.day (),
|
||||||
|
today.year ());
|
||||||
|
mT = then.mT;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (found == "tomorrow")
|
||||||
|
{
|
||||||
|
Date then (today.month (),
|
||||||
|
today.day (),
|
||||||
|
today.year ());
|
||||||
|
mT = then.mT + 86400;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (found == "yesterday")
|
||||||
|
{
|
||||||
|
Date then (today.month (),
|
||||||
|
today.day (),
|
||||||
|
today.year ());
|
||||||
|
mT = then.mT - 86400;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (found == "eom")
|
||||||
|
{
|
||||||
|
Date then (today.month (),
|
||||||
|
daysInMonth (today.month (), today.year ()),
|
||||||
|
today.year ());
|
||||||
|
mT = then.mT;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (found == "eoy")
|
||||||
|
{
|
||||||
|
Date then (12, 31, today.year ());
|
||||||
|
mT = then.mT;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Support "21st" to indicate the next date that is the 21st day.
|
||||||
|
else if (input.length () <= 4 &&
|
||||||
|
isdigit (input[0]))
|
||||||
|
{
|
||||||
|
int number;
|
||||||
|
std::string ordinal;
|
||||||
|
|
||||||
|
if (isdigit (input[1]))
|
||||||
|
{
|
||||||
|
number = ::atoi (input.substr (0, 2).c_str ());
|
||||||
|
ordinal = lowerCase (input.substr (2, std::string::npos));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
number = ::atoi (input.substr (0, 2).c_str ());
|
||||||
|
ordinal = lowerCase (input.substr (1, std::string::npos));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sanity check.
|
||||||
|
if (number <= 31)
|
||||||
|
{
|
||||||
|
if (ordinal == "st" ||
|
||||||
|
ordinal == "nd" ||
|
||||||
|
ordinal == "rd" ||
|
||||||
|
ordinal == "th")
|
||||||
|
{
|
||||||
|
int m = today.month ();
|
||||||
|
int d = today.day ();
|
||||||
|
int y = today.year ();
|
||||||
|
|
||||||
|
// If it is this month.
|
||||||
|
if (d < number &&
|
||||||
|
number <= Date::daysInMonth (m, y))
|
||||||
|
{
|
||||||
|
Date then (m, number, y);
|
||||||
|
mT = then.mT;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
m++;
|
||||||
|
|
||||||
|
if (m > 12)
|
||||||
|
{
|
||||||
|
m = 1;
|
||||||
|
y++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (number > Date::daysInMonth (m, y));
|
||||||
|
|
||||||
|
Date then (m, number, y);
|
||||||
|
mT = then.mT;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
15
src/Date.h
15
src/Date.h
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -37,14 +37,14 @@ public:
|
|||||||
Date ();
|
Date ();
|
||||||
Date (time_t);
|
Date (time_t);
|
||||||
Date (const int, const int, const int);
|
Date (const int, const int, const int);
|
||||||
Date (const std::string&, const std::string format = "m/d/Y");
|
Date (const std::string&, const std::string& format = "m/d/Y");
|
||||||
Date (const Date&);
|
Date (const Date&);
|
||||||
virtual ~Date ();
|
virtual ~Date ();
|
||||||
|
|
||||||
void toEpoch (time_t&);
|
void toEpoch (time_t&);
|
||||||
time_t toEpoch ();
|
time_t toEpoch ();
|
||||||
void toMDY (int&, int&, int&);
|
void toMDY (int&, int&, int&);
|
||||||
std::string toString (const std::string& format = "m/d/Y");
|
const std::string toString (const std::string& format = "m/d/Y") const;
|
||||||
static bool valid (const int, const int, const int);
|
static bool valid (const int, const int, const int);
|
||||||
|
|
||||||
static bool leapYear (int);
|
static bool leapYear (int);
|
||||||
@@ -52,11 +52,12 @@ public:
|
|||||||
static std::string monthName (int);
|
static std::string monthName (int);
|
||||||
static void dayName (int, std::string&);
|
static void dayName (int, std::string&);
|
||||||
static std::string dayName (int);
|
static std::string dayName (int);
|
||||||
int dayOfWeek () const;
|
static int dayOfWeek (const std::string&);
|
||||||
|
|
||||||
int month () const;
|
int month () const;
|
||||||
int day () const;
|
int day () const;
|
||||||
int year () const;
|
int year () const;
|
||||||
|
int dayOfWeek () const;
|
||||||
|
|
||||||
bool operator== (const Date&);
|
bool operator== (const Date&);
|
||||||
bool operator!= (const Date&);
|
bool operator!= (const Date&);
|
||||||
@@ -64,6 +65,9 @@ public:
|
|||||||
bool operator> (const Date&);
|
bool operator> (const Date&);
|
||||||
bool operator<= (const Date&);
|
bool operator<= (const Date&);
|
||||||
bool operator>= (const Date&);
|
bool operator>= (const Date&);
|
||||||
|
bool sameDay (const Date&);
|
||||||
|
bool sameMonth (const Date&);
|
||||||
|
bool sameYear (const Date&);
|
||||||
|
|
||||||
Date operator+ (const int);
|
Date operator+ (const int);
|
||||||
Date& operator+= (const int);
|
Date& operator+= (const int);
|
||||||
@@ -71,6 +75,9 @@ public:
|
|||||||
|
|
||||||
time_t operator- (const Date&);
|
time_t operator- (const Date&);
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool isRelativeDate (const std::string&);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
time_t mT;
|
time_t mT;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -60,6 +60,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <Grid.h>
|
#include <Grid.h>
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -325,7 +326,7 @@ Grid::Cell::operator int () const
|
|||||||
case CELL_INT: return mInt;
|
case CELL_INT: return mInt;
|
||||||
case CELL_FLOAT: return (int) mFloat;
|
case CELL_FLOAT: return (int) mFloat;
|
||||||
case CELL_DOUBLE: return (int) mDouble;
|
case CELL_DOUBLE: return (int) mDouble;
|
||||||
case CELL_STRING: return mString.length ();
|
case CELL_STRING: return ::atoi (mString.c_str ());
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -340,7 +341,7 @@ Grid::Cell::operator float () const
|
|||||||
case CELL_INT: return (float) mInt;
|
case CELL_INT: return (float) mInt;
|
||||||
case CELL_FLOAT: return mFloat;
|
case CELL_FLOAT: return mFloat;
|
||||||
case CELL_DOUBLE: return (float) mDouble;
|
case CELL_DOUBLE: return (float) mDouble;
|
||||||
case CELL_STRING: return (float) mString.length ();
|
case CELL_STRING: return (float) ::atof (mString.c_str ());
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0.0;
|
return 0.0;
|
||||||
@@ -355,7 +356,7 @@ Grid::Cell::operator double () const
|
|||||||
case CELL_INT: return (double) mInt;
|
case CELL_INT: return (double) mInt;
|
||||||
case CELL_FLOAT: return (double) mFloat;
|
case CELL_FLOAT: return (double) mFloat;
|
||||||
case CELL_DOUBLE: return mDouble;
|
case CELL_DOUBLE: return mDouble;
|
||||||
case CELL_STRING: return (double) mString.length ();
|
case CELL_STRING: return (double) ::atof (mString.c_str ());
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
|
|||||||
@@ -1,3 +1,2 @@
|
|||||||
bin_PROGRAMS = task
|
bin_PROGRAMS = task
|
||||||
task_SOURCES = Config.cpp Date.cpp T.cpp TDB.cpp Table.cpp Grid.cpp color.cpp parse.cpp task.cpp util.cpp text.cpp rules.cpp Config.h Date.h T.h TDB.h Table.h Grid.h color.h task.h
|
task_SOURCES = Config.cpp Date.cpp T.cpp TDB.cpp Table.cpp Grid.cpp Timer.cpp color.cpp parse.cpp task.cpp command.cpp report.cpp util.cpp text.cpp rules.cpp import.cpp Config.h Date.h T.h TDB.h Table.h Grid.h Timer.h color.h task.h
|
||||||
AM_CPPFLAGS = -Wall -pedantic -ggdb3 -fno-rtti
|
|
||||||
|
|||||||
@@ -44,9 +44,10 @@ am__installdirs = "$(DESTDIR)$(bindir)"
|
|||||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||||
PROGRAMS = $(bin_PROGRAMS)
|
PROGRAMS = $(bin_PROGRAMS)
|
||||||
am_task_OBJECTS = Config.$(OBJEXT) Date.$(OBJEXT) T.$(OBJEXT) \
|
am_task_OBJECTS = Config.$(OBJEXT) Date.$(OBJEXT) T.$(OBJEXT) \
|
||||||
TDB.$(OBJEXT) Table.$(OBJEXT) Grid.$(OBJEXT) color.$(OBJEXT) \
|
TDB.$(OBJEXT) Table.$(OBJEXT) Grid.$(OBJEXT) Timer.$(OBJEXT) \
|
||||||
parse.$(OBJEXT) task.$(OBJEXT) util.$(OBJEXT) text.$(OBJEXT) \
|
color.$(OBJEXT) parse.$(OBJEXT) task.$(OBJEXT) \
|
||||||
rules.$(OBJEXT)
|
command.$(OBJEXT) report.$(OBJEXT) util.$(OBJEXT) \
|
||||||
|
text.$(OBJEXT) rules.$(OBJEXT) import.$(OBJEXT)
|
||||||
task_OBJECTS = $(am_task_OBJECTS)
|
task_OBJECTS = $(am_task_OBJECTS)
|
||||||
task_LDADD = $(LDADD)
|
task_LDADD = $(LDADD)
|
||||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
|
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
|
||||||
@@ -154,8 +155,7 @@ sysconfdir = @sysconfdir@
|
|||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
task_SOURCES = Config.cpp Date.cpp T.cpp TDB.cpp Table.cpp Grid.cpp color.cpp parse.cpp task.cpp util.cpp text.cpp rules.cpp Config.h Date.h T.h TDB.h Table.h Grid.h color.h task.h
|
task_SOURCES = Config.cpp Date.cpp T.cpp TDB.cpp Table.cpp Grid.cpp Timer.cpp color.cpp parse.cpp task.cpp command.cpp report.cpp util.cpp text.cpp rules.cpp import.cpp Config.h Date.h T.h TDB.h Table.h Grid.h Timer.h color.h task.h
|
||||||
AM_CPPFLAGS = -Wall -pedantic -ggdb3 -fno-rtti
|
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@@ -228,8 +228,12 @@ distclean-compile:
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/T.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/T.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TDB.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TDB.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Table.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Table.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Timer.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/import.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/report.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rules.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rules.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text.Po@am__quote@
|
||||||
|
|||||||
271
src/T.cpp
271
src/T.cpp
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
#include "T.h"
|
#include "T.h"
|
||||||
@@ -39,6 +40,10 @@ T::T ()
|
|||||||
mTags.clear ();
|
mTags.clear ();
|
||||||
mAttributes.clear ();
|
mAttributes.clear ();
|
||||||
mDescription = "";
|
mDescription = "";
|
||||||
|
mFrom = "";
|
||||||
|
mTo = "";
|
||||||
|
mGlobal = false;
|
||||||
|
mAnnotations.clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -58,6 +63,7 @@ T::T (const T& other)
|
|||||||
mTags = other.mTags;
|
mTags = other.mTags;
|
||||||
mRemoveTags = other.mRemoveTags;
|
mRemoveTags = other.mRemoveTags;
|
||||||
mAttributes = other.mAttributes;
|
mAttributes = other.mAttributes;
|
||||||
|
mAnnotations = other.mAnnotations;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -72,6 +78,7 @@ T& T::operator= (const T& other)
|
|||||||
mTags = other.mTags;
|
mTags = other.mTags;
|
||||||
mRemoveTags = other.mRemoveTags;
|
mRemoveTags = other.mRemoveTags;
|
||||||
mAttributes = other.mAttributes;
|
mAttributes = other.mAttributes;
|
||||||
|
mAnnotations = other.mAnnotations;
|
||||||
}
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
@@ -109,6 +116,12 @@ void T::addRemoveTag (const std::string& tag)
|
|||||||
mRemoveTags.push_back (tag);
|
mRemoveTags.push_back (tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
int T::getTagCount () const
|
||||||
|
{
|
||||||
|
return mTags.size ();
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void T::getTags (std::vector<std::string>& all) const
|
void T::getTags (std::vector<std::string>& all) const
|
||||||
{
|
{
|
||||||
@@ -230,24 +243,54 @@ void T::removeAttribute (const std::string& name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void T::getSubstitution (std::string& from, std::string& to) const
|
void T::getSubstitution (
|
||||||
|
std::string& from,
|
||||||
|
std::string& to,
|
||||||
|
bool& global) const
|
||||||
{
|
{
|
||||||
from = mFrom;
|
from = mFrom;
|
||||||
to = mTo;
|
to = mTo;
|
||||||
|
global = mGlobal;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void T::setSubstitution (const std::string& from, const std::string& to)
|
void T::setSubstitution (
|
||||||
|
const std::string& from,
|
||||||
|
const std::string& to,
|
||||||
|
bool global)
|
||||||
{
|
{
|
||||||
mFrom = from;
|
mFrom = from;
|
||||||
mTo = to;
|
mTo = to;
|
||||||
|
mGlobal = global;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// uuid status [tags] [attributes] description
|
void T::getAnnotations (std::map <time_t, std::string>& all) const
|
||||||
|
{
|
||||||
|
all = mAnnotations;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void T::setAnnotations (const std::map <time_t, std::string>& all)
|
||||||
|
{
|
||||||
|
mAnnotations = all;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void T::addAnnotation (const std::string& description)
|
||||||
|
{
|
||||||
|
std::string sanitized = description;
|
||||||
|
std::replace (sanitized.begin (), sanitized.end (), '"', '\'');
|
||||||
|
std::replace (sanitized.begin (), sanitized.end (), '[', '(');
|
||||||
|
std::replace (sanitized.begin (), sanitized.end (), ']', ')');
|
||||||
|
mAnnotations[time (NULL)] = sanitized;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// uuid status [tags] [attributes] [annotations] description
|
||||||
//
|
//
|
||||||
// uuid \x{8}-\x{4}-\x{4}-\x{4}-\x{12}
|
// uuid \x{8}-\x{4}-\x{4}-\x{4}-\x{12}
|
||||||
// status - O X
|
// status - + X r
|
||||||
// tags \w+ \s ...
|
// tags \w+ \s ...
|
||||||
// attributes \w+:\w+ \s ...
|
// attributes \w+:\w+ \s ...
|
||||||
// description .+
|
// description .+
|
||||||
@@ -261,6 +304,7 @@ const std::string T::compose () const
|
|||||||
if (mStatus == pending) line += "- [";
|
if (mStatus == pending) line += "- [";
|
||||||
else if (mStatus == completed) line += "+ [";
|
else if (mStatus == completed) line += "+ [";
|
||||||
else if (mStatus == deleted) line += "X [";
|
else if (mStatus == deleted) line += "X [";
|
||||||
|
else if (mStatus == recurring) line += "r [";
|
||||||
|
|
||||||
// Tags
|
// Tags
|
||||||
for (size_t i = 0; i < mTags.size (); ++i)
|
for (size_t i = 0; i < mTags.size (); ++i)
|
||||||
@@ -281,10 +325,26 @@ const std::string T::compose () const
|
|||||||
++count;
|
++count;
|
||||||
}
|
}
|
||||||
|
|
||||||
line += "] ";
|
line += "] [";
|
||||||
|
|
||||||
|
// Annotations
|
||||||
|
std::stringstream annotation;
|
||||||
|
bool first = true;
|
||||||
|
foreach (note, mAnnotations)
|
||||||
|
{
|
||||||
|
if (first)
|
||||||
|
first = false;
|
||||||
|
else
|
||||||
|
annotation << " ";
|
||||||
|
|
||||||
|
annotation << note->first << ":\"" << note->second << "\"";
|
||||||
|
}
|
||||||
|
line += annotation.str () + "] ";
|
||||||
|
|
||||||
// Description
|
// Description
|
||||||
line += mDescription;
|
line += mDescription;
|
||||||
|
|
||||||
|
// EOL
|
||||||
line += "\n";
|
line += "\n";
|
||||||
|
|
||||||
if (line.length () > T_LINE_MAX)
|
if (line.length () > T_LINE_MAX)
|
||||||
@@ -303,6 +363,7 @@ const std::string T::composeCSV ()
|
|||||||
if (mStatus == pending) line += "'pending',";
|
if (mStatus == pending) line += "'pending',";
|
||||||
else if (mStatus == completed) line += "'completed',";
|
else if (mStatus == completed) line += "'completed',";
|
||||||
else if (mStatus == deleted) line += "'deleted',";
|
else if (mStatus == deleted) line += "'deleted',";
|
||||||
|
else if (mStatus == recurring) line += "'recurring',";
|
||||||
|
|
||||||
// Tags
|
// Tags
|
||||||
line += "'";
|
line += "'";
|
||||||
@@ -326,6 +387,11 @@ const std::string T::composeCSV ()
|
|||||||
line += value;
|
line += value;
|
||||||
line += ",";
|
line += ",";
|
||||||
|
|
||||||
|
value = mAttributes["recur"];
|
||||||
|
if (value != "")
|
||||||
|
line += value;
|
||||||
|
line += ",";
|
||||||
|
|
||||||
value = mAttributes["end"];
|
value = mAttributes["end"];
|
||||||
if (value != "")
|
if (value != "")
|
||||||
line += value;
|
line += value;
|
||||||
@@ -351,7 +417,11 @@ const std::string T::composeCSV ()
|
|||||||
line += "'" + value + "'";
|
line += "'" + value + "'";
|
||||||
line += ",";
|
line += ",";
|
||||||
|
|
||||||
line += "'" + mDescription + "'\n";
|
// Convert single quotes to double quotes, because single quotes are used to
|
||||||
|
// delimit the values that need it.
|
||||||
|
std::string clean = mDescription;
|
||||||
|
std::replace (clean.begin (), clean.end (), '\'', '"');
|
||||||
|
line += "'" + clean + "'\n";
|
||||||
|
|
||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
@@ -410,10 +480,12 @@ void T::parse (const std::string& line)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw std::string ("Line too short");
|
throw std::string ("Line too short");
|
||||||
|
|
||||||
|
mAnnotations.clear ();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// File format version 2, from 2008.1.1
|
// File format version 2, from 2008.1.1 - 2009.3.23
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
if (line.length () > 46) // ^.{36} . \[\] \[\] \n
|
if (line.length () > 46) // ^.{36} . \[\] \[\] \n
|
||||||
@@ -422,7 +494,8 @@ void T::parse (const std::string& line)
|
|||||||
|
|
||||||
mStatus = line[37] == '+' ? completed
|
mStatus = line[37] == '+' ? completed
|
||||||
: line[37] == 'X' ? deleted
|
: line[37] == 'X' ? deleted
|
||||||
: pending;
|
: line[37] == 'r' ? recurring
|
||||||
|
: pending;
|
||||||
|
|
||||||
size_t openTagBracket = line.find ("[");
|
size_t openTagBracket = line.find ("[");
|
||||||
size_t closeTagBracket = line.find ("]", openTagBracket);
|
size_t closeTagBracket = line.find ("]", openTagBracket);
|
||||||
@@ -434,24 +507,122 @@ void T::parse (const std::string& line)
|
|||||||
if (openAttrBracket != std::string::npos &&
|
if (openAttrBracket != std::string::npos &&
|
||||||
closeAttrBracket != std::string::npos)
|
closeAttrBracket != std::string::npos)
|
||||||
{
|
{
|
||||||
std::string tags = line.substr (
|
std::string tags = line.substr (
|
||||||
openTagBracket + 1, closeTagBracket - openTagBracket - 1);
|
openTagBracket + 1, closeTagBracket - openTagBracket - 1);
|
||||||
std::vector <std::string> rawTags;
|
std::vector <std::string> rawTags;
|
||||||
split (mTags, tags, ' ');
|
split (mTags, tags, ' ');
|
||||||
|
|
||||||
std::string attributes = line.substr (
|
std::string attributes = line.substr (
|
||||||
openAttrBracket + 1, closeAttrBracket - openAttrBracket - 1);
|
openAttrBracket + 1, closeAttrBracket - openAttrBracket - 1);
|
||||||
std::vector <std::string> pairs;
|
std::vector <std::string> pairs;
|
||||||
split (pairs, attributes, ' ');
|
split (pairs, attributes, ' ');
|
||||||
for (size_t i = 0; i < pairs.size (); ++i)
|
for (size_t i = 0; i < pairs.size (); ++i)
|
||||||
{
|
{
|
||||||
std::vector <std::string> pair;
|
std::vector <std::string> pair;
|
||||||
split (pair, pairs[i], ':');
|
split (pair, pairs[i], ':');
|
||||||
if (pair[1] != "")
|
if (pair.size () == 2)
|
||||||
mAttributes[pair[0]] = pair[1];
|
mAttributes[pair[0]] = pair[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
mDescription = line.substr (closeAttrBracket + 2, std::string::npos);
|
mDescription = line.substr (closeAttrBracket + 2, std::string::npos);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
throw std::string ("Missing attribute brackets");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
throw std::string ("Missing tag brackets");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
throw std::string ("Line too short");
|
||||||
|
|
||||||
|
mAnnotations.clear ();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// File format version 3, from 2009.3.23
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
if (line.length () > 49) // ^.{36} . \[\] \[\] \[\] \n
|
||||||
|
{
|
||||||
|
mUUID = line.substr (0, 36);
|
||||||
|
|
||||||
|
mStatus = line[37] == '+' ? completed
|
||||||
|
: line[37] == 'X' ? deleted
|
||||||
|
: line[37] == 'r' ? recurring
|
||||||
|
: pending;
|
||||||
|
|
||||||
|
size_t openTagBracket = line.find ("[");
|
||||||
|
size_t closeTagBracket = line.find ("]", openTagBracket);
|
||||||
|
if (openTagBracket != std::string::npos &&
|
||||||
|
closeTagBracket != std::string::npos)
|
||||||
|
{
|
||||||
|
size_t openAttrBracket = line.find ("[", closeTagBracket);
|
||||||
|
size_t closeAttrBracket = line.find ("]", openAttrBracket);
|
||||||
|
if (openAttrBracket != std::string::npos &&
|
||||||
|
closeAttrBracket != std::string::npos)
|
||||||
|
{
|
||||||
|
size_t openAnnoBracket = line.find ("[", closeAttrBracket);
|
||||||
|
size_t closeAnnoBracket = line.find ("]", openAnnoBracket);
|
||||||
|
if (openAnnoBracket != std::string::npos &&
|
||||||
|
closeAnnoBracket != std::string::npos)
|
||||||
|
{
|
||||||
|
std::string tags = line.substr (
|
||||||
|
openTagBracket + 1, closeTagBracket - openTagBracket - 1);
|
||||||
|
std::vector <std::string> rawTags;
|
||||||
|
split (mTags, tags, ' ');
|
||||||
|
|
||||||
|
std::string attributes = line.substr (
|
||||||
|
openAttrBracket + 1, closeAttrBracket - openAttrBracket - 1);
|
||||||
|
std::vector <std::string> pairs;
|
||||||
|
split (pairs, attributes, ' ');
|
||||||
|
for (size_t i = 0; i < pairs.size (); ++i)
|
||||||
|
{
|
||||||
|
std::vector <std::string> pair;
|
||||||
|
split (pair, pairs[i], ':');
|
||||||
|
if (pair.size () == 2)
|
||||||
|
mAttributes[pair[0]] = pair[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract and split the annotations, which are of the form:
|
||||||
|
// 1234:"..." 5678:"..."
|
||||||
|
std::string annotations = line.substr (
|
||||||
|
openAnnoBracket + 1, closeAnnoBracket - openAnnoBracket - 1);
|
||||||
|
pairs.clear ();
|
||||||
|
|
||||||
|
std::string::size_type start = 0;
|
||||||
|
std::string::size_type end = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
end = annotations.find ('"', start);
|
||||||
|
if (end != std::string::npos)
|
||||||
|
{
|
||||||
|
end = annotations.find ('"', end + 1);
|
||||||
|
|
||||||
|
if (start != std::string::npos &&
|
||||||
|
end != std::string::npos)
|
||||||
|
{
|
||||||
|
pairs.push_back (annotations.substr (start, end - start + 1));
|
||||||
|
start = end + 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (start != std::string::npos &&
|
||||||
|
end != std::string::npos);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < pairs.size (); ++i)
|
||||||
|
{
|
||||||
|
std::string pair = pairs[i];
|
||||||
|
std::string::size_type colon = pair.find (":");
|
||||||
|
if (colon != std::string::npos)
|
||||||
|
{
|
||||||
|
std::string name = pair.substr (0, colon);
|
||||||
|
std::string value = pair.substr (colon + 2, pair.length () - colon - 3);
|
||||||
|
mAnnotations[::atoi (name.c_str ())] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mDescription = line.substr (closeAnnoBracket + 2, std::string::npos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw std::string ("Missing attribute brackets");
|
throw std::string ("Missing attribute brackets");
|
||||||
@@ -465,7 +636,7 @@ void T::parse (const std::string& line)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw std::string ();
|
throw std::string ("Unrecognized task file format.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -499,17 +670,32 @@ int T::determineVersion (const std::string& line)
|
|||||||
line[18] == '-' &&
|
line[18] == '-' &&
|
||||||
line[23] == '-' &&
|
line[23] == '-' &&
|
||||||
line[36] == ' ' &&
|
line[36] == ' ' &&
|
||||||
(line[37] == '-' || line[37] == '+' || line[37] == 'X'))
|
(line[37] == '-' || line[37] == '+' || line[37] == 'X' || line[37] == 'r'))
|
||||||
return 2;
|
{
|
||||||
|
// Version 3 looks like:
|
||||||
|
//
|
||||||
|
// uuid status [tags] [attributes] [annotations] description\n
|
||||||
|
//
|
||||||
|
// Scan for the number of [] pairs.
|
||||||
|
std::string::size_type tagAtts = line.find ("] [", 0);
|
||||||
|
std::string::size_type attsAnno = line.find ("] [", tagAtts + 1);
|
||||||
|
std::string::size_type annoDesc = line.find ("] ", attsAnno + 1);
|
||||||
|
if (tagAtts != std::string::npos &&
|
||||||
|
attsAnno != std::string::npos &&
|
||||||
|
annoDesc != std::string::npos)
|
||||||
|
return 3;
|
||||||
|
else
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
// Version 3?
|
// Version 4?
|
||||||
//
|
//
|
||||||
// Fortunately, with the hindsight that will come with version 3, the
|
// Fortunately, with the hindsight that will come with version 4, the
|
||||||
// identifying characteristics of 1 and 2 may be modified such that if 3 has
|
// identifying characteristics of 1, 2 and 3 may be modified such that if 4
|
||||||
// a UUID followed by a status, then there is still a way to differentiate
|
// has a UUID followed by a status, then there is still a way to differentiate
|
||||||
// between 2 and 3.
|
// between 2, 3 and 4.
|
||||||
//
|
//
|
||||||
// The danger is that a version 2 binary reads and misinterprets a version 3
|
// The danger is that a version 3 binary reads and misinterprets a version 4
|
||||||
// file. This is why it is a good idea to rely on an explicit version
|
// file. This is why it is a good idea to rely on an explicit version
|
||||||
// declaration rather than chance positioning.
|
// declaration rather than chance positioning.
|
||||||
|
|
||||||
@@ -518,3 +704,12 @@ int T::determineVersion (const std::string& line)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// TODO Expand this method into a full-blown task validation check.
|
||||||
|
bool T::validate () const
|
||||||
|
{
|
||||||
|
// TODO Verify until > due
|
||||||
|
// TODO Verify entry < until, due, start, end
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
20
src/T.h
20
src/T.h
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -32,12 +32,12 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
// Length of longest line.
|
// Length of longest line.
|
||||||
#define T_LINE_MAX 8192
|
#define T_LINE_MAX 32768
|
||||||
|
|
||||||
class T
|
class T
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum status {pending, completed, deleted};
|
enum status {pending, completed, deleted, recurring};
|
||||||
|
|
||||||
T (); // Default constructor
|
T (); // Default constructor
|
||||||
T (const std::string&); // Initialize by parsing storage format
|
T (const std::string&); // Initialize by parsing storage format
|
||||||
@@ -56,15 +56,17 @@ public:
|
|||||||
|
|
||||||
const std::string getDescription () const { return mDescription; }
|
const std::string getDescription () const { return mDescription; }
|
||||||
void setDescription (const std::string& description) { mDescription = description; }
|
void setDescription (const std::string& description) { mDescription = description; }
|
||||||
|
int getAnnotationCount () const { return mAnnotations.size (); }
|
||||||
|
|
||||||
void getSubstitution (std::string&, std::string&) const;
|
void getSubstitution (std::string&, std::string&, bool&) const;
|
||||||
void setSubstitution (const std::string&, const std::string&);
|
void setSubstitution (const std::string&, const std::string&, bool);
|
||||||
|
|
||||||
bool hasTag (const std::string&) const;
|
bool hasTag (const std::string&) const;
|
||||||
|
|
||||||
void getRemoveTags (std::vector<std::string>&); // SPECIAL
|
void getRemoveTags (std::vector<std::string>&); // SPECIAL
|
||||||
void addRemoveTag (const std::string&); // SPECIAL
|
void addRemoveTag (const std::string&); // SPECIAL
|
||||||
|
|
||||||
|
int getTagCount () const;
|
||||||
void getTags (std::vector<std::string>&) const;
|
void getTags (std::vector<std::string>&) const;
|
||||||
void addTag (const std::string&);
|
void addTag (const std::string&);
|
||||||
void addTags (const std::vector <std::string>&);
|
void addTags (const std::vector <std::string>&);
|
||||||
@@ -77,9 +79,14 @@ public:
|
|||||||
void removeAttribute (const std::string&);
|
void removeAttribute (const std::string&);
|
||||||
void removeAttributes ();
|
void removeAttributes ();
|
||||||
|
|
||||||
|
void getAnnotations (std::map <time_t, std::string>&) const;
|
||||||
|
void setAnnotations (const std::map <time_t, std::string>&);
|
||||||
|
void addAnnotation (const std::string&);
|
||||||
|
|
||||||
const std::string compose () const;
|
const std::string compose () const;
|
||||||
const std::string composeCSV ();
|
const std::string composeCSV ();
|
||||||
void parse (const std::string&);
|
void parse (const std::string&);
|
||||||
|
bool validate () const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int determineVersion (const std::string&);
|
int determineVersion (const std::string&);
|
||||||
@@ -92,9 +99,10 @@ private:
|
|||||||
std::vector<std::string> mTags;
|
std::vector<std::string> mTags;
|
||||||
std::vector<std::string> mRemoveTags;
|
std::vector<std::string> mRemoveTags;
|
||||||
std::map<std::string, std::string> mAttributes;
|
std::map<std::string, std::string> mAttributes;
|
||||||
|
|
||||||
std::string mFrom;
|
std::string mFrom;
|
||||||
std::string mTo;
|
std::string mTo;
|
||||||
|
bool mGlobal;
|
||||||
|
std::map <time_t, std::string> mAnnotations;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
157
src/TDB.cpp
157
src/TDB.cpp
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -37,7 +37,8 @@
|
|||||||
TDB::TDB ()
|
TDB::TDB ()
|
||||||
: mPendingFile ("")
|
: mPendingFile ("")
|
||||||
, mCompletedFile ("")
|
, mCompletedFile ("")
|
||||||
, mLogFile ("")
|
, mId (1)
|
||||||
|
, mNoLock (false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,11 +50,10 @@ TDB::~TDB ()
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void TDB::dataDirectory (const std::string& directory)
|
void TDB::dataDirectory (const std::string& directory)
|
||||||
{
|
{
|
||||||
if (! access (directory.c_str (), F_OK))
|
if (! access (expandPath (directory).c_str (), F_OK))
|
||||||
{
|
{
|
||||||
mPendingFile = directory + "/pending.data";
|
mPendingFile = directory + "/pending.data";
|
||||||
mCompletedFile = directory + "/completed.data";
|
mCompletedFile = directory + "/completed.data";
|
||||||
mLogFile = directory + "/command.log";
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -67,7 +67,7 @@ void TDB::dataDirectory (const std::string& directory)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Combine allPendingT with allCompletedT.
|
// Combine allPendingT with allCompletedT.
|
||||||
// Note: this method is O(N1) + O(N2), where N2 is not bounded.
|
// Note: this method is O(N1) + O(N2), where N2 is not bounded.
|
||||||
bool TDB::allT (std::vector <T>& all) const
|
bool TDB::allT (std::vector <T>& all)
|
||||||
{
|
{
|
||||||
all.clear ();
|
all.clear ();
|
||||||
|
|
||||||
@@ -95,20 +95,20 @@ bool TDB::allT (std::vector <T>& all) const
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Only accesses to the pending file result in Tasks that have assigned ids.
|
// Only accesses to the pending file result in Tasks that have assigned ids.
|
||||||
bool TDB::pendingT (std::vector <T>& all) const
|
bool TDB::pendingT (std::vector <T>& all)
|
||||||
{
|
{
|
||||||
all.clear ();
|
all.clear ();
|
||||||
|
|
||||||
std::vector <std::string> lines;
|
std::vector <std::string> lines;
|
||||||
if (readLockedFile (mPendingFile, lines))
|
if (readLockedFile (mPendingFile, lines))
|
||||||
{
|
{
|
||||||
int id = 1;
|
mId = 1;
|
||||||
|
|
||||||
std::vector <std::string>::iterator it;
|
std::vector <std::string>::iterator it;
|
||||||
for (it = lines.begin (); it != lines.end (); ++it)
|
for (it = lines.begin (); it != lines.end (); ++it)
|
||||||
{
|
{
|
||||||
T t (*it);
|
T t (*it);
|
||||||
t.setId (id++);
|
t.setId (mId++);
|
||||||
if (t.getStatus () == T::pending)
|
if (t.getStatus () == T::pending)
|
||||||
all.push_back (t);
|
all.push_back (t);
|
||||||
}
|
}
|
||||||
@@ -121,20 +121,20 @@ bool TDB::pendingT (std::vector <T>& all) const
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Only accesses to the pending file result in Tasks that have assigned ids.
|
// Only accesses to the pending file result in Tasks that have assigned ids.
|
||||||
bool TDB::allPendingT (std::vector <T>& all) const
|
bool TDB::allPendingT (std::vector <T>& all)
|
||||||
{
|
{
|
||||||
all.clear ();
|
all.clear ();
|
||||||
|
|
||||||
std::vector <std::string> lines;
|
std::vector <std::string> lines;
|
||||||
if (readLockedFile (mPendingFile, lines))
|
if (readLockedFile (mPendingFile, lines))
|
||||||
{
|
{
|
||||||
int id = 1;
|
mId = 1;
|
||||||
|
|
||||||
std::vector <std::string>::iterator it;
|
std::vector <std::string>::iterator it;
|
||||||
for (it = lines.begin (); it != lines.end (); ++it)
|
for (it = lines.begin (); it != lines.end (); ++it)
|
||||||
{
|
{
|
||||||
T t (*it);
|
T t (*it);
|
||||||
t.setId (id++);
|
t.setId (mId++);
|
||||||
all.push_back (t);
|
all.push_back (t);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -188,7 +188,7 @@ bool TDB::allCompletedT (std::vector <T>& all) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::deleteT (const T& t) const
|
bool TDB::deleteT (const T& t)
|
||||||
{
|
{
|
||||||
T task (t);
|
T task (t);
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ bool TDB::deleteT (const T& t) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::completeT (const T& t) const
|
bool TDB::completeT (const T& t)
|
||||||
{
|
{
|
||||||
T task (t);
|
T task (t);
|
||||||
|
|
||||||
@@ -236,10 +236,9 @@ bool TDB::completeT (const T& t) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::addT (const T& t) const
|
bool TDB::addT (const T& t)
|
||||||
{
|
{
|
||||||
T task (t);
|
T task (t);
|
||||||
|
|
||||||
std::vector <std::string> tags;
|
std::vector <std::string> tags;
|
||||||
task.getTags (tags);
|
task.getTags (tags);
|
||||||
|
|
||||||
@@ -254,14 +253,17 @@ bool TDB::addT (const T& t) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (task.getStatus () == T::pending)
|
if (task.getStatus () == T::pending ||
|
||||||
|
task.getStatus () == T::recurring)
|
||||||
|
{
|
||||||
return writePending (task);
|
return writePending (task);
|
||||||
|
}
|
||||||
|
|
||||||
return writeCompleted (task);
|
return writeCompleted (task);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::modifyT (const T& t) const
|
bool TDB::modifyT (const T& t)
|
||||||
{
|
{
|
||||||
T modified (t);
|
T modified (t);
|
||||||
|
|
||||||
@@ -285,80 +287,26 @@ bool TDB::modifyT (const T& t) const
|
|||||||
return overwritePending (pending);
|
return overwritePending (pending);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
bool TDB::logRead (std::vector <std::string>& entries) const
|
|
||||||
{
|
|
||||||
entries.clear ();
|
|
||||||
return readLockedFile (mLogFile, entries);
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
bool TDB::logCommand (int argc, char** argv) const
|
|
||||||
{
|
|
||||||
// Get time info.
|
|
||||||
time_t now;
|
|
||||||
time (&now);
|
|
||||||
struct tm* t = localtime (&now);
|
|
||||||
|
|
||||||
// Generate timestamp.
|
|
||||||
char timestamp[20];
|
|
||||||
sprintf (timestamp, "%04d-%02d-%02d %02d:%02d:%02d",
|
|
||||||
t->tm_year + 1900,
|
|
||||||
t->tm_mon + 1,
|
|
||||||
t->tm_mday,
|
|
||||||
t->tm_hour,
|
|
||||||
t->tm_min,
|
|
||||||
t->tm_sec);
|
|
||||||
|
|
||||||
std::string command = timestamp;
|
|
||||||
command += " \"";
|
|
||||||
for (int i = 0; i < argc; ++i)
|
|
||||||
command += std::string (i ? " " : "") + argv[i];
|
|
||||||
command += "\"\n";
|
|
||||||
|
|
||||||
if (! access (mLogFile.c_str (), F_OK | W_OK))
|
|
||||||
{
|
|
||||||
FILE* out;
|
|
||||||
if ((out = fopen (mLogFile.c_str (), "a")))
|
|
||||||
{
|
|
||||||
#ifdef HAVE_FLOCK
|
|
||||||
int retry = 0;
|
|
||||||
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
|
||||||
delay (0.25);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
fputs (command.c_str (), out);
|
|
||||||
|
|
||||||
fclose (out);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::lock (FILE* file) const
|
bool TDB::lock (FILE* file) const
|
||||||
{
|
{
|
||||||
#ifdef HAVE_FLOCK
|
if (mNoLock)
|
||||||
|
return true;
|
||||||
|
|
||||||
return flock (fileno (file), LOCK_EX) ? false : true;
|
return flock (fileno (file), LOCK_EX) ? false : true;
|
||||||
#else
|
|
||||||
return true;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::overwritePending (std::vector <T>& all) const
|
bool TDB::overwritePending (std::vector <T>& all)
|
||||||
{
|
{
|
||||||
// Write a single task to the pending file
|
// Write a single task to the pending file
|
||||||
FILE* out;
|
FILE* out;
|
||||||
if ((out = fopen (mPendingFile.c_str (), "w")))
|
if ((out = fopen (mPendingFile.c_str (), "w")))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_FLOCK
|
|
||||||
int retry = 0;
|
int retry = 0;
|
||||||
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
if (!mNoLock)
|
||||||
delay (0.25);
|
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
||||||
#endif
|
delay (0.1);
|
||||||
|
|
||||||
std::vector <T>::iterator it;
|
std::vector <T>::iterator it;
|
||||||
for (it = all.begin (); it != all.end (); ++it)
|
for (it = all.begin (); it != all.end (); ++it)
|
||||||
@@ -372,17 +320,16 @@ bool TDB::overwritePending (std::vector <T>& all) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::writePending (const T& t) const
|
bool TDB::writePending (const T& t)
|
||||||
{
|
{
|
||||||
// Write a single task to the pending file
|
// Write a single task to the pending file
|
||||||
FILE* out;
|
FILE* out;
|
||||||
if ((out = fopen (mPendingFile.c_str (), "a")))
|
if ((out = fopen (mPendingFile.c_str (), "a")))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_FLOCK
|
|
||||||
int retry = 0;
|
int retry = 0;
|
||||||
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
if (!mNoLock)
|
||||||
delay (0.25);
|
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
||||||
#endif
|
delay (0.1);
|
||||||
|
|
||||||
fputs (t.compose ().c_str (), out);
|
fputs (t.compose ().c_str (), out);
|
||||||
|
|
||||||
@@ -394,17 +341,16 @@ bool TDB::writePending (const T& t) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool TDB::writeCompleted (const T& t) const
|
bool TDB::writeCompleted (const T& t)
|
||||||
{
|
{
|
||||||
// Write a single task to the pending file
|
// Write a single task to the pending file
|
||||||
FILE* out;
|
FILE* out;
|
||||||
if ((out = fopen (mCompletedFile.c_str (), "a")))
|
if ((out = fopen (mCompletedFile.c_str (), "a")))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_FLOCK
|
|
||||||
int retry = 0;
|
int retry = 0;
|
||||||
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
if (!mNoLock)
|
||||||
delay (0.25);
|
while (flock (fileno (out), LOCK_EX) && ++retry <= 3)
|
||||||
#endif
|
delay (0.1);
|
||||||
|
|
||||||
fputs (t.compose ().c_str (), out);
|
fputs (t.compose ().c_str (), out);
|
||||||
|
|
||||||
@@ -427,11 +373,10 @@ bool TDB::readLockedFile (
|
|||||||
FILE* in;
|
FILE* in;
|
||||||
if ((in = fopen (file.c_str (), "r")))
|
if ((in = fopen (file.c_str (), "r")))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_FLOCK
|
|
||||||
int retry = 0;
|
int retry = 0;
|
||||||
while (flock (fileno (in), LOCK_EX) && ++retry <= 3)
|
if (!mNoLock)
|
||||||
delay (0.25);
|
while (flock (fileno (in), LOCK_EX) && ++retry <= 3)
|
||||||
#endif
|
delay (0.1);
|
||||||
|
|
||||||
char line[T_LINE_MAX];
|
char line[T_LINE_MAX];
|
||||||
while (fgets (line, T_LINE_MAX, in))
|
while (fgets (line, T_LINE_MAX, in))
|
||||||
@@ -453,7 +398,9 @@ bool TDB::readLockedFile (
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int TDB::gc () const
|
// Scans the pending tasks for any that are completed or deleted, and if so,
|
||||||
|
// moves them to the completed.data file. Returns a count of tasks moved.
|
||||||
|
int TDB::gc ()
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
@@ -468,8 +415,11 @@ int TDB::gc () const
|
|||||||
for (it = all.begin (); it != all.end (); ++it)
|
for (it = all.begin (); it != all.end (); ++it)
|
||||||
{
|
{
|
||||||
// Some tasks stay in the pending file.
|
// Some tasks stay in the pending file.
|
||||||
if (it->getStatus () == T::pending)
|
if (it->getStatus () == T::pending ||
|
||||||
|
it->getStatus () == T::recurring)
|
||||||
|
{
|
||||||
pending.push_back (*it);
|
pending.push_back (*it);
|
||||||
|
}
|
||||||
|
|
||||||
// Others are transferred to the completed file.
|
// Others are transferred to the completed file.
|
||||||
else
|
else
|
||||||
@@ -479,10 +429,25 @@ int TDB::gc () const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dump all clean tasks into pending.
|
// Dump all clean tasks into pending. But don't bother unless at least one
|
||||||
overwritePending (pending);
|
// task was transferred.
|
||||||
|
if (count)
|
||||||
|
overwritePending (pending);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
int TDB::nextId ()
|
||||||
|
{
|
||||||
|
return mId++;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void TDB::noLock ()
|
||||||
|
{
|
||||||
|
mNoLock = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
31
src/TDB.h
31
src/TDB.h
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -38,30 +38,33 @@ public:
|
|||||||
~TDB ();
|
~TDB ();
|
||||||
|
|
||||||
void dataDirectory (const std::string&);
|
void dataDirectory (const std::string&);
|
||||||
bool allT (std::vector <T>&) const;
|
bool allT (std::vector <T>&);
|
||||||
bool pendingT (std::vector <T>&) const;
|
bool pendingT (std::vector <T>&);
|
||||||
bool allPendingT (std::vector <T>&) const;
|
bool allPendingT (std::vector <T>&);
|
||||||
bool completedT (std::vector <T>&) const;
|
bool completedT (std::vector <T>&) const;
|
||||||
bool allCompletedT (std::vector <T>&) const;
|
bool allCompletedT (std::vector <T>&) const;
|
||||||
bool deleteT (const T&) const;
|
bool deleteT (const T&);
|
||||||
bool completeT (const T&) const;
|
bool completeT (const T&);
|
||||||
bool addT (const T&) const;
|
bool addT (const T&);
|
||||||
bool modifyT (const T&) const;
|
bool modifyT (const T&);
|
||||||
bool logRead (std::vector <std::string>&) const;
|
bool logRead (std::vector <std::string>&) const;
|
||||||
bool logCommand (int, char**) const;
|
int gc ();
|
||||||
int gc () const;
|
int nextId ();
|
||||||
|
|
||||||
|
void noLock ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool lock (FILE*) const;
|
bool lock (FILE*) const;
|
||||||
bool overwritePending (std::vector <T>&) const;
|
bool overwritePending (std::vector <T>&);
|
||||||
bool writePending (const T&) const;
|
bool writePending (const T&);
|
||||||
bool writeCompleted (const T&) const;
|
bool writeCompleted (const T&);
|
||||||
bool readLockedFile (const std::string&, std::vector <std::string>&) const;
|
bool readLockedFile (const std::string&, std::vector <std::string>&) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string mPendingFile;
|
std::string mPendingFile;
|
||||||
std::string mCompletedFile;
|
std::string mCompletedFile;
|
||||||
std::string mLogFile;
|
int mId;
|
||||||
|
bool mNoLock;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
269
src/Table.cpp
269
src/Table.cpp
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -54,6 +54,7 @@
|
|||||||
Table::Table ()
|
Table::Table ()
|
||||||
: mRows (0)
|
: mRows (0)
|
||||||
, mIntraPadding (1)
|
, mIntraPadding (1)
|
||||||
|
, mDashedUnderline (false)
|
||||||
, mTablePadding (0)
|
, mTablePadding (0)
|
||||||
, mTableWidth (0)
|
, mTableWidth (0)
|
||||||
, mSuppressWS (false)
|
, mSuppressWS (false)
|
||||||
@@ -103,6 +104,12 @@ void Table::setTableWidth (int width)
|
|||||||
mTableWidth = width;
|
mTableWidth = width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void Table::setTableDashedUnderline ()
|
||||||
|
{
|
||||||
|
mDashedUnderline = true;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int Table::addColumn (const std::string& col)
|
int Table::addColumn (const std::string& col)
|
||||||
{
|
{
|
||||||
@@ -220,7 +227,7 @@ void Table::setRowBg (const int row, const Text::color c)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void Table::addCell (const int row, const int col, const std::string& data)
|
void Table::addCell (const int row, const int col, const std::string& data)
|
||||||
{
|
{
|
||||||
int length = 0;
|
unsigned int length = 0;
|
||||||
|
|
||||||
if (mSuppressWS)
|
if (mSuppressWS)
|
||||||
{
|
{
|
||||||
@@ -231,7 +238,19 @@ void Table::addCell (const int row, const int col, const std::string& data)
|
|||||||
data2 = data;
|
data2 = data;
|
||||||
|
|
||||||
clean (data2);
|
clean (data2);
|
||||||
length = data2.length ();
|
// For multi-line cells, find the longest line.
|
||||||
|
if (data2.find ("\n") != std::string::npos)
|
||||||
|
{
|
||||||
|
length = 0;
|
||||||
|
std::vector <std::string> lines;
|
||||||
|
split (lines, data2, "\n");
|
||||||
|
for (unsigned int i = 0; i < lines.size (); ++i)
|
||||||
|
if (lines[i].length () > length)
|
||||||
|
length = lines[i].length ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
length = data2.length ();
|
||||||
|
|
||||||
mData.add (row, col, data2);
|
mData.add (row, col, data2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -241,11 +260,22 @@ void Table::addCell (const int row, const int col, const std::string& data)
|
|||||||
else
|
else
|
||||||
mData.add (row, col, data);
|
mData.add (row, col, data);
|
||||||
|
|
||||||
length = data.length ();
|
// For multi-line cells, find the longest line.
|
||||||
|
if (data.find ("\n") != std::string::npos)
|
||||||
|
{
|
||||||
|
length = 0;
|
||||||
|
std::vector <std::string> lines;
|
||||||
|
split (lines, data, "\n");
|
||||||
|
for (unsigned int i = 0; i < lines.size (); ++i)
|
||||||
|
if (lines[i].length () > length)
|
||||||
|
length = lines[i].length ();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
length = data.length ();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Automatically maintain max width.
|
// Automatically maintain max width.
|
||||||
mMaxDataWidth[col] = max (mMaxDataWidth[col], length);
|
mMaxDataWidth[col] = max (mMaxDataWidth[col], (int)length);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -501,9 +531,7 @@ void Table::calculateColumnWidths ()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// std::cout << "# insufficient room, considering only flexible columns." << std::endl;
|
// The fallback position is to assume no width was specified, and just
|
||||||
|
|
||||||
// The fallback position is to assume no width was specificed, and just
|
|
||||||
// calculate widths accordingly.
|
// calculate widths accordingly.
|
||||||
mTableWidth = 0;
|
mTableWidth = 0;
|
||||||
calculateColumnWidths ();
|
calculateColumnWidths ();
|
||||||
@@ -582,7 +610,57 @@ const std::string Table::formatHeader (
|
|||||||
fg, bg,
|
fg, bg,
|
||||||
Text::colorize (
|
Text::colorize (
|
||||||
decoration, Text::nocolor,
|
decoration, Text::nocolor,
|
||||||
pad + preJust+ data + postJust + pad) + intraPad);
|
pad + preJust + data + postJust + pad) + intraPad);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// data One Data to be rendered
|
||||||
|
// width 8 Max data width for column/specified width
|
||||||
|
// padding 1 Extra padding around data
|
||||||
|
// intraPadding 0 Extra padding between columns only
|
||||||
|
// justification right Alignment withing padding
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// "------- "
|
||||||
|
// ------- data
|
||||||
|
// ^ ^ padding
|
||||||
|
// ^ intraPadding
|
||||||
|
// ^^^^^^^^ width
|
||||||
|
// ^ ^ fg/bg
|
||||||
|
//
|
||||||
|
const std::string Table::formatHeaderDashedUnderline (
|
||||||
|
int col,
|
||||||
|
int width,
|
||||||
|
int padding)
|
||||||
|
{
|
||||||
|
assert (width > 0);
|
||||||
|
|
||||||
|
Text::color fg = getHeaderFg (col);
|
||||||
|
Text::color bg = getHeaderBg (col);
|
||||||
|
Text::color decoration = getHeaderUnderline (col);
|
||||||
|
|
||||||
|
std::string data = "";
|
||||||
|
for (int i = 0; i < width; ++i)
|
||||||
|
data += '-';
|
||||||
|
|
||||||
|
std::string pad = "";
|
||||||
|
std::string intraPad = "";
|
||||||
|
std::string attrOn = "";
|
||||||
|
std::string attrOff = "";
|
||||||
|
|
||||||
|
for (int i = 0; i < padding; ++i)
|
||||||
|
pad += " ";
|
||||||
|
|
||||||
|
// Place the value within the available space - justify.
|
||||||
|
if (col < (signed) mColumns.size () - 1)
|
||||||
|
for (int i = 0; i < getIntraPadding (); ++i)
|
||||||
|
intraPad += " ";
|
||||||
|
|
||||||
|
return Text::colorize (
|
||||||
|
fg, bg,
|
||||||
|
Text::colorize (
|
||||||
|
decoration, Text::nocolor,
|
||||||
|
pad + data + pad) + intraPad);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -679,34 +757,84 @@ int Table::columnCount ()
|
|||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Removes extraneous output characters, such as:
|
// Removes extraneous output characters, such as:
|
||||||
// - spaces followed by a newline is collapsed to just a newline, if there is
|
|
||||||
// no Bg color.
|
|
||||||
// - removal of redundant color codes:
|
// - removal of redundant color codes:
|
||||||
// ^[[31mName^[[0m ^[[31mValue^[[0m -> ^[[31mName Value^[[0m
|
// ^[[31mName^[[0m ^[[31mValue^[[0m -> ^[[31mName Value^[[0m
|
||||||
//
|
//
|
||||||
// This method is a work in progress.
|
// This method is a work in progress.
|
||||||
void Table::optimize (std::string& output)
|
void Table::optimize (std::string& output) const
|
||||||
{
|
{
|
||||||
/*
|
// int start = output.length ();
|
||||||
int start = output.length ();
|
|
||||||
*/
|
|
||||||
|
|
||||||
// \s\n -> \n
|
|
||||||
size_t i = 0;
|
|
||||||
while ((i = output.find (" \n")) != std::string::npos)
|
|
||||||
{
|
|
||||||
output = output.substr (0, i) +
|
|
||||||
output.substr (i + 1, std::string::npos);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
std::cout << int ((100 * (start - output.length ()) / start))
|
Well, how about that!
|
||||||
<< "%" << std::endl;
|
|
||||||
|
The benchmark.t unit test adds a 1000 tasks, fiddles with some of them, then
|
||||||
|
runs a series of reports. The results are timed, and look like this:
|
||||||
|
|
||||||
|
1000 tasks added in 3 seconds
|
||||||
|
600 tasks altered in 32 seconds
|
||||||
|
'task ls' in 26 seconds
|
||||||
|
'task list' in 17 seconds
|
||||||
|
'task list pri:H' in 19 seconds
|
||||||
|
'task list +tag' in 0 seconds
|
||||||
|
'task list project_A' in 0 seconds
|
||||||
|
'task long' in 29 seconds
|
||||||
|
'task completed' in 2 seconds
|
||||||
|
'task history' in 0 seconds
|
||||||
|
'task ghistory' in 0 seconds
|
||||||
|
|
||||||
|
This performance is terrible. To identify the worst offender, Various Timer
|
||||||
|
objects were added in Table::render, assuming that table sorting is the major
|
||||||
|
bottleneck. But no, it is Table::optimize that is the problem. After
|
||||||
|
commenting out this method, the results are now:
|
||||||
|
|
||||||
|
1000 tasks added in 3 seconds
|
||||||
|
600 tasks altered in 29 seconds
|
||||||
|
'task ls' in 0 seconds
|
||||||
|
'task list' in 0 seconds
|
||||||
|
'task list pri:H' in 1 seconds
|
||||||
|
'task list +tag' in 0 seconds
|
||||||
|
'task list project_A' in 0 seconds
|
||||||
|
'task long' in 0 seconds
|
||||||
|
'task completed' in 0 seconds
|
||||||
|
'task history' in 0 seconds
|
||||||
|
'task ghistory' in 0 seconds
|
||||||
|
|
||||||
|
Much better.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// std::cout << int ((100 * (start - output.length ()) / start))
|
||||||
|
// << "%" << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Combsort11, with O(n log n) average, O(n log n) worst case performance.
|
// Combsort11, with O(n log n) average, O(n log n) worst case performance.
|
||||||
|
//
|
||||||
|
// function combsort11(array input)
|
||||||
|
// gap := input.size
|
||||||
|
//
|
||||||
|
// loop until gap <= 1 and swaps = 0
|
||||||
|
// if gap > 1
|
||||||
|
// gap := gap / 1.3
|
||||||
|
// if gap = 10 or gap = 9
|
||||||
|
// gap := 11
|
||||||
|
// end if
|
||||||
|
// end if
|
||||||
|
//
|
||||||
|
// i := 0
|
||||||
|
// swaps := 0
|
||||||
|
//
|
||||||
|
// loop until i + gap >= input.size
|
||||||
|
// if input[i] > input[i+gap]
|
||||||
|
// swap(input[i], input[i+gap])
|
||||||
|
// swaps := 1
|
||||||
|
// end if
|
||||||
|
// i := i + 1
|
||||||
|
// end loop
|
||||||
|
//
|
||||||
|
// end loop
|
||||||
|
// end function
|
||||||
|
|
||||||
#define SWAP \
|
#define SWAP \
|
||||||
{ \
|
{ \
|
||||||
int temp = order[r]; \
|
int temp = order[r]; \
|
||||||
@@ -719,7 +847,7 @@ void Table::sort (std::vector <int>& order)
|
|||||||
int gap = order.size ();
|
int gap = order.size ();
|
||||||
int swaps = 1;
|
int swaps = 1;
|
||||||
|
|
||||||
while (gap > 1 || swaps != 0)
|
while (gap > 1 || swaps > 0)
|
||||||
{
|
{
|
||||||
if (gap > 1)
|
if (gap > 1)
|
||||||
{
|
{
|
||||||
@@ -740,10 +868,28 @@ void Table::sort (std::vector <int>& order)
|
|||||||
|
|
||||||
Grid::Cell* left = mData.byRow (order[r], mSortColumns[c]);
|
Grid::Cell* left = mData.byRow (order[r], mSortColumns[c]);
|
||||||
Grid::Cell* right = mData.byRow (order[r + gap], mSortColumns[c]);
|
Grid::Cell* right = mData.byRow (order[r + gap], mSortColumns[c]);
|
||||||
if (left == NULL && right != NULL)
|
|
||||||
SWAP
|
|
||||||
|
|
||||||
if (left && right && *left != *right)
|
// Data takes precedence over missing data.
|
||||||
|
if (left == NULL && right != NULL)
|
||||||
|
{
|
||||||
|
SWAP
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// No data - try comparing the next column.
|
||||||
|
else if (left == NULL && right == NULL)
|
||||||
|
{
|
||||||
|
keepScanning = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Identical data - try comparing the next column.
|
||||||
|
else if (left && right && *left == *right)
|
||||||
|
{
|
||||||
|
keepScanning = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Differing data - do a proper comparison.
|
||||||
|
else if (left && right && *left != *right)
|
||||||
{
|
{
|
||||||
switch (mSortOrder[mSortColumns[c]])
|
switch (mSortOrder[mSortColumns[c]])
|
||||||
{
|
{
|
||||||
@@ -758,12 +904,12 @@ void Table::sort (std::vector <int>& order)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ascendingCharacter:
|
case ascendingCharacter:
|
||||||
if ((char)*left > (char)*right)
|
if ((std::string)*left > (std::string)*right)
|
||||||
SWAP
|
SWAP
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case descendingCharacter:
|
case descendingCharacter:
|
||||||
if ((char)*left < (char)*right)
|
if ((std::string)*left < (std::string)*right)
|
||||||
SWAP
|
SWAP
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -804,24 +950,38 @@ void Table::sort (std::vector <int>& order)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ascendingPriority:
|
case ascendingPriority:
|
||||||
if (((std::string)*left == "" && (std::string)*right != "") ||
|
if (((std::string)*left == "" && (std::string)*right != "") ||
|
||||||
((std::string)*left == "M" && (std::string)*right == "L") ||
|
((std::string)*left == "M" && (std::string)*right == "L") ||
|
||||||
((std::string)*left == "H" && ((std::string)*right == "L" || (std::string)*right == "M")))
|
((std::string)*left == "H" && ((std::string)*right == "L" || (std::string)*right == "M")))
|
||||||
SWAP
|
SWAP
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case descendingPriority:
|
case descendingPriority:
|
||||||
if (((std::string)*left == "" && (std::string)*right != "") ||
|
if (((std::string)*left == "" && (std::string)*right != "") ||
|
||||||
((std::string)*left == "L" && ((std::string)*right == "M" || (std::string)*right == "H")) ||
|
((std::string)*left == "L" && ((std::string)*right == "M" || (std::string)*right == "H")) ||
|
||||||
((std::string)*left == "M" && (std::string)*right == "H"))
|
((std::string)*left == "M" && (std::string)*right == "H"))
|
||||||
|
SWAP
|
||||||
|
break;
|
||||||
|
|
||||||
|
case ascendingPeriod:
|
||||||
|
if ((std::string)*left == "" && (std::string)*right != "")
|
||||||
|
break;
|
||||||
|
else if ((std::string)*left != "" && (std::string)*right == "")
|
||||||
|
SWAP
|
||||||
|
else if (convertDuration ((std::string)*left) > convertDuration ((std::string)*right))
|
||||||
|
SWAP
|
||||||
|
break;
|
||||||
|
|
||||||
|
case descendingPeriod:
|
||||||
|
if ((std::string)*left != "" && (std::string)*right == "")
|
||||||
|
break;
|
||||||
|
else if ((std::string)*left == "" && (std::string)*right != "")
|
||||||
|
SWAP
|
||||||
|
else if (convertDuration ((std::string)*left) < convertDuration ((std::string)*right))
|
||||||
SWAP
|
SWAP
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
keepScanning = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
++r;
|
++r;
|
||||||
@@ -855,19 +1015,30 @@ void Table::clean (std::string& value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
const std::string Table::render ()
|
const std::string Table::render (int maximum /* = 0 */)
|
||||||
{
|
{
|
||||||
calculateColumnWidths ();
|
calculateColumnWidths ();
|
||||||
|
|
||||||
// Print column headers in column order.
|
// Print column headers in column order.
|
||||||
std::string output;
|
std::string output;
|
||||||
|
std::string underline;
|
||||||
for (size_t col = 0; col < mColumns.size (); ++col)
|
for (size_t col = 0; col < mColumns.size (); ++col)
|
||||||
|
{
|
||||||
output += formatHeader (
|
output += formatHeader (
|
||||||
col,
|
col,
|
||||||
mCalculatedWidth[col],
|
mCalculatedWidth[col],
|
||||||
mColumnPadding[col]);
|
mColumnPadding[col]);
|
||||||
|
|
||||||
|
if (mDashedUnderline)
|
||||||
|
underline += formatHeaderDashedUnderline (
|
||||||
|
col,
|
||||||
|
mCalculatedWidth[col],
|
||||||
|
mColumnPadding[col]);
|
||||||
|
}
|
||||||
|
|
||||||
output += "\n";
|
output += "\n";
|
||||||
|
if (underline.length ())
|
||||||
|
output += underline + "\n";
|
||||||
|
|
||||||
// Determine row order, according to sort options.
|
// Determine row order, according to sort options.
|
||||||
std::vector <int> order;
|
std::vector <int> order;
|
||||||
@@ -878,8 +1049,14 @@ const std::string Table::render ()
|
|||||||
if (mSortColumns.size ())
|
if (mSortColumns.size ())
|
||||||
sort (order);
|
sort (order);
|
||||||
|
|
||||||
|
// If a non-zero maximum is specified, then it limits the number of rows of
|
||||||
|
// the table that are rendered.
|
||||||
|
int limit = mRows;
|
||||||
|
if (maximum != 0)
|
||||||
|
limit = min (maximum, mRows);
|
||||||
|
|
||||||
// Print all rows.
|
// Print all rows.
|
||||||
for (int row = 0; row < mRows; ++row)
|
for (int row = 0; row < limit; ++row)
|
||||||
{
|
{
|
||||||
std::vector <std::vector <std::string> > columns;
|
std::vector <std::vector <std::string> > columns;
|
||||||
std::vector <std::string> blanks;
|
std::vector <std::string> blanks;
|
||||||
@@ -913,15 +1090,19 @@ const std::string Table::render ()
|
|||||||
else
|
else
|
||||||
output += blanks[col];
|
output += blanks[col];
|
||||||
|
|
||||||
|
// Trim right.
|
||||||
|
output.erase (output.find_last_not_of (" ") + 1);
|
||||||
output += "\n";
|
output += "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
// Trim right.
|
||||||
|
output.erase (output.find_last_not_of (" ") + 1);
|
||||||
output += "\n";
|
output += "\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eliminate redundant color codes.
|
|
||||||
optimize (output);
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
22
src/Table.h
22
src/Table.h
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -37,9 +37,16 @@ class Table
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
enum just {left, center, right};
|
enum just {left, center, right};
|
||||||
enum order {ascendingNumeric, ascendingCharacter, ascendingPriority,
|
enum order {ascendingNumeric,
|
||||||
ascendingDate, descendingNumeric, descendingCharacter,
|
ascendingCharacter,
|
||||||
descendingPriority, descendingDate};
|
ascendingPriority,
|
||||||
|
ascendingDate,
|
||||||
|
ascendingPeriod,
|
||||||
|
descendingNumeric,
|
||||||
|
descendingCharacter,
|
||||||
|
descendingPriority,
|
||||||
|
descendingDate,
|
||||||
|
descendingPeriod};
|
||||||
enum sizing {minimum = -1, flexible = 0};
|
enum sizing {minimum = -1, flexible = 0};
|
||||||
|
|
||||||
Table ();
|
Table ();
|
||||||
@@ -51,6 +58,7 @@ public:
|
|||||||
void setTablePadding (int);
|
void setTablePadding (int);
|
||||||
void setTableIntraPadding (int);
|
void setTableIntraPadding (int);
|
||||||
void setTableWidth (int);
|
void setTableWidth (int);
|
||||||
|
void setTableDashedUnderline ();
|
||||||
|
|
||||||
int addColumn (const std::string&);
|
int addColumn (const std::string&);
|
||||||
void setColumnColor (int, Text::color, Text::color);
|
void setColumnColor (int, Text::color, Text::color);
|
||||||
@@ -83,7 +91,7 @@ public:
|
|||||||
|
|
||||||
int rowCount ();
|
int rowCount ();
|
||||||
int columnCount ();
|
int columnCount ();
|
||||||
const std::string render ();
|
const std::string render (int maximum = 0);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string getCell (const int, const int);
|
std::string getCell (const int, const int);
|
||||||
@@ -98,10 +106,11 @@ private:
|
|||||||
just getJustification (const int, const int);
|
just getJustification (const int, const int);
|
||||||
just getHeaderJustification (const int);
|
just getHeaderJustification (const int);
|
||||||
const std::string formatHeader (const int, const int, const int);
|
const std::string formatHeader (const int, const int, const int);
|
||||||
|
const std::string formatHeaderDashedUnderline (const int, const int, const int);
|
||||||
void formatCell (const int, const int, const int, const int, std::vector <std::string>&, std::string&);
|
void formatCell (const int, const int, const int, const int, std::vector <std::string>&, std::string&);
|
||||||
void optimize (std::string&);
|
|
||||||
void sort (std::vector <int>&);
|
void sort (std::vector <int>&);
|
||||||
void clean (std::string&);
|
void clean (std::string&);
|
||||||
|
void optimize (std::string&) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector <std::string> mColumns;
|
std::vector <std::string> mColumns;
|
||||||
@@ -110,6 +119,7 @@ private:
|
|||||||
std::map <std::string, std::string> mFg;
|
std::map <std::string, std::string> mFg;
|
||||||
std::map <std::string, std::string> mBg;
|
std::map <std::string, std::string> mBg;
|
||||||
std::map <std::string, std::string> mUnderline;
|
std::map <std::string, std::string> mUnderline;
|
||||||
|
bool mDashedUnderline;
|
||||||
|
|
||||||
// Padding...
|
// Padding...
|
||||||
int mTablePadding;
|
int mTablePadding;
|
||||||
|
|||||||
56
src/Timer.cpp
Normal file
56
src/Timer.cpp
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// task - a command line task list manager.
|
||||||
|
//
|
||||||
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
|
// the terms of the GNU General Public License as published by the Free Software
|
||||||
|
// Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
// version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
// details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with
|
||||||
|
// this program; if not, write to the
|
||||||
|
//
|
||||||
|
// Free Software Foundation, Inc.,
|
||||||
|
// 51 Franklin Street, Fifth Floor,
|
||||||
|
// Boston, MA
|
||||||
|
// 02110-1301
|
||||||
|
// USA
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
#include <iostream>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <Timer.h>
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Timer starts when the object is constructed.
|
||||||
|
Timer::Timer (const std::string& description)
|
||||||
|
: mDescription (description)
|
||||||
|
{
|
||||||
|
::gettimeofday (&mStart, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Timer stops when the object is desctructed.
|
||||||
|
Timer::~Timer ()
|
||||||
|
{
|
||||||
|
struct timeval end;
|
||||||
|
::gettimeofday (&end, NULL);
|
||||||
|
|
||||||
|
std::cout << "Timer "
|
||||||
|
<< mDescription
|
||||||
|
<< " "
|
||||||
|
<< std::setprecision (6)
|
||||||
|
<< ((end.tv_sec - mStart.tv_sec) +
|
||||||
|
((end.tv_usec - mStart.tv_usec ) / 1000000.0))
|
||||||
|
<< std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
46
src/Timer.h
Normal file
46
src/Timer.h
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// task - a command line task list manager.
|
||||||
|
//
|
||||||
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
|
// the terms of the GNU General Public License as published by the Free Software
|
||||||
|
// Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
// version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
// details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with
|
||||||
|
// this program; if not, write to the
|
||||||
|
//
|
||||||
|
// Free Software Foundation, Inc.,
|
||||||
|
// 51 Franklin Street, Fifth Floor,
|
||||||
|
// Boston, MA
|
||||||
|
// 02110-1301
|
||||||
|
// USA
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
#ifndef INCLUDED_TIMER
|
||||||
|
#define INCLUDED_TIMER
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
class Timer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Timer (const std::string&);
|
||||||
|
~Timer ();
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string mDescription;
|
||||||
|
struct timeval mStart;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -242,7 +242,11 @@ std::string decode (color c)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
std::string colorize (color fg, color bg, const std::string& input)
|
std::string colorize (color fg, color bg, const std::string& input)
|
||||||
{
|
{
|
||||||
return decode (fg) + decode (bg) + input + decode (off);
|
if (input.length ())
|
||||||
|
if (fg != nocolor || bg != nocolor)
|
||||||
|
return decode (fg) + decode (bg) + input + decode (off);
|
||||||
|
|
||||||
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
|
|||||||
1069
src/command.cpp
Normal file
1069
src/command.cpp
Normal file
File diff suppressed because it is too large
Load Diff
1203
src/import.cpp
Normal file
1203
src/import.cpp
Normal file
File diff suppressed because it is too large
Load Diff
309
src/parse.cpp
309
src/parse.cpp
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -35,6 +35,8 @@
|
|||||||
#include "T.h"
|
#include "T.h"
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// NOTE: These are static arrays only because there is no initializer list for
|
||||||
|
// std::vector.
|
||||||
static const char* colors[] =
|
static const char* colors[] =
|
||||||
{
|
{
|
||||||
"bold",
|
"bold",
|
||||||
@@ -107,6 +109,10 @@ static const char* attributes[] =
|
|||||||
"entry",
|
"entry",
|
||||||
"start",
|
"start",
|
||||||
"end",
|
"end",
|
||||||
|
"recur",
|
||||||
|
"until",
|
||||||
|
"mask",
|
||||||
|
"imask",
|
||||||
"",
|
"",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -114,29 +120,36 @@ static const char* commands[] =
|
|||||||
{
|
{
|
||||||
"active",
|
"active",
|
||||||
"add",
|
"add",
|
||||||
|
"append",
|
||||||
|
"annotate",
|
||||||
"calendar",
|
"calendar",
|
||||||
"colors",
|
"colors",
|
||||||
"completed",
|
"completed",
|
||||||
"delete",
|
"delete",
|
||||||
"done",
|
"done",
|
||||||
"export",
|
"export",
|
||||||
|
"help",
|
||||||
"history",
|
"history",
|
||||||
|
"ghistory",
|
||||||
|
"import",
|
||||||
"info",
|
"info",
|
||||||
"list",
|
|
||||||
"long",
|
|
||||||
"ls",
|
|
||||||
"next",
|
"next",
|
||||||
"overdue",
|
"overdue",
|
||||||
"projects",
|
"projects",
|
||||||
"start",
|
"start",
|
||||||
"stats",
|
"stats",
|
||||||
|
"stop",
|
||||||
"summary",
|
"summary",
|
||||||
"tags",
|
"tags",
|
||||||
"usage",
|
"undelete",
|
||||||
|
"undo",
|
||||||
"version",
|
"version",
|
||||||
"",
|
"",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static std::vector <std::string> customReports;
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void guess (const std::string& type, const char** list, std::string& candidate)
|
void guess (const std::string& type, const char** list, std::string& candidate)
|
||||||
{
|
{
|
||||||
std::vector <std::string> options;
|
std::vector <std::string> options;
|
||||||
@@ -149,7 +162,36 @@ void guess (const std::string& type, const char** list, std::string& candidate)
|
|||||||
candidate = matches[0];
|
candidate = matches[0];
|
||||||
|
|
||||||
else if (0 == matches.size ())
|
else if (0 == matches.size ())
|
||||||
throw std::string ("Unrecognized ") + type + " '" + candidate + "'";
|
candidate = "";
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
std::string error = "Ambiguous ";
|
||||||
|
error += type;
|
||||||
|
error += " '";
|
||||||
|
error += candidate;
|
||||||
|
error += "' - could be either of ";
|
||||||
|
for (size_t i = 0; i < matches.size (); ++i)
|
||||||
|
{
|
||||||
|
if (i)
|
||||||
|
error += ", ";
|
||||||
|
error += matches[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void guess (const std::string& type, std::vector<std::string>& options, std::string& candidate)
|
||||||
|
{
|
||||||
|
std::vector <std::string> matches;
|
||||||
|
autoComplete (candidate, options, matches);
|
||||||
|
if (1 == matches.size ())
|
||||||
|
candidate = matches[0];
|
||||||
|
|
||||||
|
else if (0 == matches.size ())
|
||||||
|
candidate = "";
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -179,7 +221,11 @@ static bool isCommand (const std::string& candidate)
|
|||||||
std::vector <std::string> matches;
|
std::vector <std::string> matches;
|
||||||
autoComplete (candidate, options, matches);
|
autoComplete (candidate, options, matches);
|
||||||
if (0 == matches.size ())
|
if (0 == matches.size ())
|
||||||
return false;
|
{
|
||||||
|
autoComplete (candidate, customReports, matches);
|
||||||
|
if (0 == matches.size ())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -189,7 +235,7 @@ bool validDate (std::string& date, Config& conf)
|
|||||||
{
|
{
|
||||||
Date test (date, conf.get ("dateformat", "m/d/Y"));
|
Date test (date, conf.get ("dateformat", "m/d/Y"));
|
||||||
|
|
||||||
char epoch[12];
|
char epoch[16];
|
||||||
sprintf (epoch, "%d", (int) test.toEpoch ());
|
sprintf (epoch, "%d", (int) test.toEpoch ());
|
||||||
date = epoch;
|
date = epoch;
|
||||||
|
|
||||||
@@ -197,7 +243,7 @@ bool validDate (std::string& date, Config& conf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static bool validPriority (std::string& input)
|
bool validPriority (const std::string& input)
|
||||||
{
|
{
|
||||||
if (input != "H" &&
|
if (input != "H" &&
|
||||||
input != "M" &&
|
input != "M" &&
|
||||||
@@ -211,32 +257,43 @@ static bool validPriority (std::string& input)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static bool validAttribute (std::string& name, std::string& value, Config& conf)
|
static bool validAttribute (
|
||||||
|
std::string& name,
|
||||||
|
std::string& value,
|
||||||
|
Config& conf)
|
||||||
{
|
{
|
||||||
guess ("attribute", attributes, name);
|
guess ("attribute", attributes, name);
|
||||||
|
if (name != "")
|
||||||
if ((name == "fg" || name == "bg") && value != "")
|
|
||||||
guess ("color", colors, value);
|
|
||||||
|
|
||||||
else if (name == "due" && value != "")
|
|
||||||
validDate (value, conf);
|
|
||||||
|
|
||||||
else if (name == "priority")
|
|
||||||
{
|
{
|
||||||
for (std::string::iterator i = value.begin (); i != value.end (); ++i)
|
if ((name == "fg" || name == "bg") && value != "")
|
||||||
*i = ::toupper (*i);
|
guess ("color", colors, value);
|
||||||
|
|
||||||
return validPriority (value);
|
else if (name == "due" && value != "")
|
||||||
|
validDate (value, conf);
|
||||||
|
|
||||||
|
else if (name == "until" && value != "")
|
||||||
|
validDate (value, conf);
|
||||||
|
|
||||||
|
else if (name == "priority")
|
||||||
|
{
|
||||||
|
value = upperCase (value);
|
||||||
|
return validPriority (value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some attributes are intended to be private.
|
||||||
|
else if (name == "entry" ||
|
||||||
|
name == "start" ||
|
||||||
|
name == "end" ||
|
||||||
|
name == "mask" ||
|
||||||
|
name == "imask")
|
||||||
|
throw std::string ("\"") +
|
||||||
|
name +
|
||||||
|
"\" is not an attribute you may modify directly.";
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (name == "entry" ||
|
return false;
|
||||||
name == "start" ||
|
|
||||||
name == "end")
|
|
||||||
throw std::string ("\"") +
|
|
||||||
name +
|
|
||||||
"\" is not an attribute you may modify directly.";
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -250,7 +307,7 @@ static bool validId (const std::string& input)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static bool validTag (std::string& input)
|
static bool validTag (const std::string& input)
|
||||||
{
|
{
|
||||||
if ((input[0] == '-' || input[0] == '+') &&
|
if ((input[0] == '-' || input[0] == '+') &&
|
||||||
input.length () > 1)
|
input.length () > 1)
|
||||||
@@ -262,16 +319,28 @@ static bool validTag (std::string& input)
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static bool validDescription (const std::string& input)
|
static bool validDescription (const std::string& input)
|
||||||
{
|
{
|
||||||
if (input.length () > 0)
|
if (input.length () == 0) return false;
|
||||||
return true;
|
if (input.find ("\r") != std::string::npos) return false;
|
||||||
|
if (input.find ("\f") != std::string::npos) return false;
|
||||||
|
if (input.find ("\n") != std::string::npos) return false;
|
||||||
|
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
static bool validCommand (std::string& input)
|
static bool validCommand (std::string& input)
|
||||||
{
|
{
|
||||||
guess ("command", commands, input);
|
std::string copy = input;
|
||||||
|
guess ("command", commands, copy);
|
||||||
|
if (copy == "")
|
||||||
|
{
|
||||||
|
copy = input;
|
||||||
|
guess ("command", customReports, copy);
|
||||||
|
if (copy == "")
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
input = copy;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,7 +348,8 @@ static bool validCommand (std::string& input)
|
|||||||
static bool validSubstitution (
|
static bool validSubstitution (
|
||||||
std::string& input,
|
std::string& input,
|
||||||
std::string& from,
|
std::string& from,
|
||||||
std::string& to)
|
std::string& to,
|
||||||
|
bool& global)
|
||||||
{
|
{
|
||||||
size_t first = input.find ('/');
|
size_t first = input.find ('/');
|
||||||
if (first != std::string::npos)
|
if (first != std::string::npos)
|
||||||
@@ -293,10 +363,17 @@ static bool validSubstitution (
|
|||||||
if (first == 0 &&
|
if (first == 0 &&
|
||||||
first < second &&
|
first < second &&
|
||||||
second < third &&
|
second < third &&
|
||||||
third == input.length () - 1)
|
(third == input.length () - 1 ||
|
||||||
|
third == input.length () - 2))
|
||||||
{
|
{
|
||||||
from = input.substr (first + 1, second - first - 1);
|
from = input.substr (first + 1, second - first - 1);
|
||||||
to = input.substr (second + 1, third - second - 1);
|
to = input.substr (second + 1, third - second - 1);
|
||||||
|
|
||||||
|
global = false;
|
||||||
|
if (third == input.length () - 2 &&
|
||||||
|
input.find ('g', third + 1) != std::string::npos)
|
||||||
|
global = true;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -306,6 +383,12 @@ static bool validSubstitution (
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool validDuration (std::string& input)
|
||||||
|
{
|
||||||
|
return (convertDuration (input) != 0) ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Token Distinguishing characteristic
|
// Token Distinguishing characteristic
|
||||||
// ------- -----------------------------
|
// ------- -----------------------------
|
||||||
@@ -328,54 +411,82 @@ void parse (
|
|||||||
for (size_t i = 0; i < args.size (); ++i)
|
for (size_t i = 0; i < args.size (); ++i)
|
||||||
{
|
{
|
||||||
std::string arg (args[i]);
|
std::string arg (args[i]);
|
||||||
size_t colon; // Pointer to colon in argument.
|
|
||||||
std::string from;
|
|
||||||
std::string to;
|
|
||||||
|
|
||||||
// An id is the first argument found that contains all digits.
|
// Ignore any argument that is "rc:...", because that is the command line
|
||||||
if (command != "add" && // "add" doesn't require an ID
|
// specified rc file.
|
||||||
task.getId () == 0 &&
|
if (arg.substr (0, 3) != "rc:")
|
||||||
validId (arg))
|
|
||||||
task.setId (::atoi (arg.c_str ()));
|
|
||||||
|
|
||||||
// Tags begin with + or - and contain arbitrary text.
|
|
||||||
else if (validTag (arg))
|
|
||||||
{
|
{
|
||||||
if (arg[0] == '+')
|
size_t colon; // Pointer to colon in argument.
|
||||||
task.addTag (arg.substr (1, std::string::npos));
|
std::string from;
|
||||||
else if (arg[0] == '-')
|
std::string to;
|
||||||
task.addRemoveTag (arg.substr (1, std::string::npos));
|
bool global;
|
||||||
|
|
||||||
|
// An id is the first argument found that contains all digits.
|
||||||
|
if (lowerCase (command) != "add" && // "add" doesn't require an ID
|
||||||
|
task.getId () == 0 &&
|
||||||
|
validId (arg))
|
||||||
|
task.setId (::atoi (arg.c_str ()));
|
||||||
|
|
||||||
|
// Tags begin with + or - and contain arbitrary text.
|
||||||
|
else if (validTag (arg))
|
||||||
|
{
|
||||||
|
if (arg[0] == '+')
|
||||||
|
task.addTag (arg.substr (1, std::string::npos));
|
||||||
|
else if (arg[0] == '-')
|
||||||
|
task.addRemoveTag (arg.substr (1, std::string::npos));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Attributes contain a constant string followed by a colon, followed by a
|
||||||
|
// value.
|
||||||
|
else if ((colon = arg.find (":")) != std::string::npos)
|
||||||
|
{
|
||||||
|
std::string name = lowerCase (arg.substr (0, colon));
|
||||||
|
std::string value = arg.substr (colon + 1, std::string::npos);
|
||||||
|
|
||||||
|
if (validAttribute (name, value, conf))
|
||||||
|
{
|
||||||
|
if (name != "recur" || validDuration (value))
|
||||||
|
task.setAttribute (name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If it is not a valid attribute, then allow the argument as part of
|
||||||
|
// the description.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (descCandidate.length ())
|
||||||
|
descCandidate += " ";
|
||||||
|
descCandidate += arg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Substitution of description text.
|
||||||
|
else if (validSubstitution (arg, from, to, global))
|
||||||
|
{
|
||||||
|
task.setSubstitution (from, to, global);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Command.
|
||||||
|
else if (command == "")
|
||||||
|
{
|
||||||
|
std::string l = lowerCase (arg);
|
||||||
|
if (isCommand (l) && validCommand (l))
|
||||||
|
command = l;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (descCandidate.length ())
|
||||||
|
descCandidate += " ";
|
||||||
|
descCandidate += arg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Anything else is just considered description.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (descCandidate.length ())
|
||||||
|
descCandidate += " ";
|
||||||
|
descCandidate += arg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attributes contain a constant string followed by a colon, followed by a
|
|
||||||
// value.
|
|
||||||
else if ((colon = arg.find (":")) != std::string::npos)
|
|
||||||
{
|
|
||||||
std::string name = arg.substr (0, colon);
|
|
||||||
std::string value = arg.substr (colon + 1, std::string::npos);
|
|
||||||
|
|
||||||
if (validAttribute (name, value, conf))
|
|
||||||
task.setAttribute (name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Substitution of description text.
|
|
||||||
else if (validSubstitution (arg, from, to))
|
|
||||||
{
|
|
||||||
task.setSubstitution (from, to);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Command.
|
|
||||||
else if (command == "")
|
|
||||||
{
|
|
||||||
if (!isCommand (arg))
|
|
||||||
descCandidate += std::string (arg) + " ";
|
|
||||||
else if (validCommand (arg))
|
|
||||||
command = arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Anything else is just considered description.
|
|
||||||
else
|
|
||||||
descCandidate += std::string (arg) + " ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (validDescription (descCandidate))
|
if (validDescription (descCandidate))
|
||||||
@@ -383,4 +494,40 @@ void parse (
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void loadCustomReports (Config& conf)
|
||||||
|
{
|
||||||
|
std::vector <std::string> all;
|
||||||
|
conf.all (all);
|
||||||
|
|
||||||
|
foreach (i, all)
|
||||||
|
{
|
||||||
|
if (i->substr (0, 7) == "report.")
|
||||||
|
{
|
||||||
|
std::string report = i->substr (7, std::string::npos);
|
||||||
|
std::string::size_type columns = report.find (".columns");
|
||||||
|
if (columns != std::string::npos)
|
||||||
|
{
|
||||||
|
report = report.substr (0, columns);
|
||||||
|
customReports.push_back (report);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool isCustomReport (const std::string& report)
|
||||||
|
{
|
||||||
|
foreach (i, customReports)
|
||||||
|
if (*i == report)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
void allCustomReports (std::vector <std::string>& all)
|
||||||
|
{
|
||||||
|
all = customReports;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
2477
src/report.cpp
Normal file
2477
src/report.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -80,10 +80,14 @@ void initializeColorRules (Config& conf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
void autoColorize (T& task, Text::color& fg, Text::color& bg)
|
void autoColorize (
|
||||||
|
T& task,
|
||||||
|
Text::color& fg,
|
||||||
|
Text::color& bg,
|
||||||
|
Config& conf)
|
||||||
{
|
{
|
||||||
// Note: fg, bg already contain colors specifically assigned via command.
|
// Note: fg, bg already contain colors specifically assigned via command.
|
||||||
// TODO These rules form a hierarchy - the last rule is king.
|
// Note: These rules form a hierarchy - the last rule is King.
|
||||||
|
|
||||||
// Colorization of the tagged.
|
// Colorization of the tagged.
|
||||||
if (gsFg["color.tagged"] != Text::nocolor ||
|
if (gsFg["color.tagged"] != Text::nocolor ||
|
||||||
@@ -153,29 +157,6 @@ void autoColorize (T& task, Text::color& fg, Text::color& bg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Colorization of the due and overdue.
|
|
||||||
std::string due = task.getAttribute ("due");
|
|
||||||
if (due != "")
|
|
||||||
{
|
|
||||||
Date dueDate (::atoi (due.c_str ()));
|
|
||||||
Date now;
|
|
||||||
Date then (now + 7 * 86400);
|
|
||||||
|
|
||||||
// Overdue
|
|
||||||
if (dueDate < now)
|
|
||||||
{
|
|
||||||
fg = gsFg["color.overdue"];
|
|
||||||
bg = gsBg["color.overdue"];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Imminent
|
|
||||||
else if (dueDate < then)
|
|
||||||
{
|
|
||||||
fg = gsFg["color.due"];
|
|
||||||
bg = gsBg["color.due"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Colorization by tag value.
|
// Colorization by tag value.
|
||||||
std::map <std::string, Text::color>::iterator it;
|
std::map <std::string, Text::color>::iterator it;
|
||||||
for (it = gsFg.begin (); it != gsFg.end (); ++it)
|
for (it = gsFg.begin (); it != gsFg.end (); ++it)
|
||||||
@@ -219,6 +200,40 @@ void autoColorize (T& task, Text::color& fg, Text::color& bg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Colorization of the due and overdue.
|
||||||
|
std::string due = task.getAttribute ("due");
|
||||||
|
if (due != "")
|
||||||
|
{
|
||||||
|
Date dueDate (::atoi (due.c_str ()));
|
||||||
|
Date now;
|
||||||
|
Date then (now + conf.get ("due", 7) * 86400);
|
||||||
|
|
||||||
|
// Overdue
|
||||||
|
if (dueDate < now)
|
||||||
|
{
|
||||||
|
fg = gsFg["color.overdue"];
|
||||||
|
bg = gsBg["color.overdue"];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Imminent
|
||||||
|
else if (dueDate < then)
|
||||||
|
{
|
||||||
|
fg = gsFg["color.due"];
|
||||||
|
bg = gsBg["color.due"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Colorization of the recurring.
|
||||||
|
if (gsFg["color.recurring"] != Text::nocolor ||
|
||||||
|
gsBg["color.recurring"] != Text::nocolor)
|
||||||
|
{
|
||||||
|
if (task.getAttribute ("recur") != "")
|
||||||
|
{
|
||||||
|
fg = gsFg["color.recurring"];
|
||||||
|
bg = gsBg["color.recurring"];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
3276
src/task.cpp
3276
src/task.cpp
File diff suppressed because it is too large
Load Diff
110
src/task.h
110
src/task.h
@@ -1,7 +1,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// task - a command line task list manager.
|
// task - a command line task list manager.
|
||||||
//
|
//
|
||||||
// Copyright 2006 - 2008, Paul Beckingham.
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
// All rights reserved.
|
// All rights reserved.
|
||||||
//
|
//
|
||||||
// This program is free software; you can redistribute it and/or modify it under
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
@@ -31,11 +31,16 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
#include "Table.h"
|
#include "Table.h"
|
||||||
|
#include "Date.h"
|
||||||
#include "color.h"
|
#include "color.h"
|
||||||
#include "TDB.h"
|
#include "TDB.h"
|
||||||
#include "T.h"
|
#include "T.h"
|
||||||
#include "../auto.h"
|
#include "../auto.h"
|
||||||
|
|
||||||
|
#ifndef min
|
||||||
|
#define min(a,b) ((a) < (b) ? (a) : (b))
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef max
|
#ifndef max
|
||||||
#define max(a,b) ((a) > (b) ? (a) : (b))
|
#define max(a,b) ((a) > (b) ? (a) : (b))
|
||||||
#endif
|
#endif
|
||||||
@@ -50,57 +55,100 @@ for (typeof (c) *foreach_p = & (c); \
|
|||||||
|
|
||||||
// parse.cpp
|
// parse.cpp
|
||||||
void parse (std::vector <std::string>&, std::string&, T&, Config&);
|
void parse (std::vector <std::string>&, std::string&, T&, Config&);
|
||||||
|
bool validPriority (const std::string&);
|
||||||
bool validDate (std::string&, Config&);
|
bool validDate (std::string&, Config&);
|
||||||
|
void loadCustomReports (Config&);
|
||||||
|
bool isCustomReport (const std::string&);
|
||||||
|
void allCustomReports (std::vector <std::string>&);
|
||||||
|
|
||||||
// task.cpp
|
// task.cpp
|
||||||
void handleAdd (const TDB&, T&, Config&);
|
|
||||||
void handleProjects (const TDB&, T&, Config&);
|
|
||||||
void handleTags (const TDB&, T&, Config&);
|
|
||||||
void handleList (const TDB&, T&, Config&);
|
|
||||||
void handleInfo (const TDB&, T&, Config&);
|
|
||||||
void handleLongList (const TDB&, T&, Config&);
|
|
||||||
void handleSmallList (const TDB&, T&, Config&);
|
|
||||||
void handleCompleted (const TDB&, T&, Config&);
|
|
||||||
void handleReportSummary (const TDB&, T&, Config&);
|
|
||||||
void handleReportNext (const TDB&, T&, Config&);
|
|
||||||
void handleReportHistory (const TDB&, T&, Config&);
|
|
||||||
void handleReportUsage (const TDB&, T&, Config&);
|
|
||||||
void handleReportCalendar (const TDB&, T&, Config&);
|
|
||||||
void handleReportActive (const TDB&, T&, Config&);
|
|
||||||
void handleReportOverdue (const TDB&, T&, Config&);
|
|
||||||
void handleReportStats (const TDB&, T&, Config&);
|
|
||||||
void handleVersion (Config&);
|
|
||||||
void handleExport (const TDB&, T&, Config&);
|
|
||||||
void handleDelete (const TDB&, T&, Config&);
|
|
||||||
void handleStart (const TDB&, T&, Config&);
|
|
||||||
void handleDone (const TDB&, T&, Config&);
|
|
||||||
void handleModify (const TDB&, T&, Config&);
|
|
||||||
void handleColor (Config&);
|
|
||||||
void gatherNextTasks (const TDB&, T&, Config&, std::vector <T>&, std::vector <int>&);
|
void gatherNextTasks (const TDB&, T&, Config&, std::vector <T>&, std::vector <int>&);
|
||||||
void nag (const TDB&, T&, Config&);
|
void nag (TDB&, T&, Config&);
|
||||||
|
int getDueState (const std::string&);
|
||||||
|
void handleRecurrence (TDB&, std::vector <T>&);
|
||||||
|
bool generateDueDates (T&, std::vector <Date>&);
|
||||||
|
Date getNextRecurrence (Date&, std::string&);
|
||||||
|
void updateRecurrenceMask (TDB&, std::vector <T>&, T&);
|
||||||
|
void onChangeCallback ();
|
||||||
|
std::string runTaskCommand (int, char**, TDB&, Config&, bool gc = true, bool shadow = true);
|
||||||
|
std::string runTaskCommand (std::vector <std::string>&, TDB&, Config&, bool gc = false, bool shadow = false);
|
||||||
|
|
||||||
// util.cpp
|
// command.cpp
|
||||||
bool confirm (const std::string&);
|
std::string handleAdd (TDB&, T&, Config&);
|
||||||
|
std::string handleAppend (TDB&, T&, Config&);
|
||||||
|
std::string handleExport (TDB&, T&, Config&);
|
||||||
|
std::string handleDone (TDB&, T&, Config&);
|
||||||
|
std::string handleModify (TDB&, T&, Config&);
|
||||||
|
std::string handleProjects (TDB&, T&, Config&);
|
||||||
|
std::string handleTags (TDB&, T&, Config&);
|
||||||
|
std::string handleUndelete (TDB&, T&, Config&);
|
||||||
|
std::string handleVersion (Config&);
|
||||||
|
std::string handleDelete (TDB&, T&, Config&);
|
||||||
|
std::string handleStart (TDB&, T&, Config&);
|
||||||
|
std::string handleStop (TDB&, T&, Config&);
|
||||||
|
std::string handleUndo (TDB&, T&, Config&);
|
||||||
|
std::string handleColor (Config&);
|
||||||
|
std::string handleAnnotate (TDB&, T&, Config&);
|
||||||
|
T findT (int, const std::vector <T>&);
|
||||||
|
|
||||||
|
// report.cpp
|
||||||
|
void filter (std::vector<T>&, T&);
|
||||||
|
std::string handleInfo (TDB&, T&, Config&);
|
||||||
|
std::string handleCompleted (TDB&, T&, Config&);
|
||||||
|
std::string handleReportSummary (TDB&, T&, Config&);
|
||||||
|
std::string handleReportNext (TDB&, T&, Config&);
|
||||||
|
std::string handleReportHistory (TDB&, T&, Config&);
|
||||||
|
std::string handleReportGHistory (TDB&, T&, Config&);
|
||||||
|
std::string handleReportCalendar (TDB&, T&, Config&);
|
||||||
|
std::string handleReportActive (TDB&, T&, Config&);
|
||||||
|
std::string handleReportOverdue (TDB&, T&, Config&);
|
||||||
|
std::string handleReportStats (TDB&, T&, Config&);
|
||||||
|
|
||||||
|
std::string handleCustomReport (TDB&, T&, Config&, const std::string&);
|
||||||
|
void validReportColumns (const std::vector <std::string>&);
|
||||||
|
void validSortColumns (const std::vector <std::string>&, const std::vector <std::string>&);
|
||||||
|
|
||||||
|
// text.cpp
|
||||||
void wrapText (std::vector <std::string>&, const std::string&, const int);
|
void wrapText (std::vector <std::string>&, const std::string&, const int);
|
||||||
std::string trimLeft (const std::string& in, const std::string& t = " ");
|
std::string trimLeft (const std::string& in, const std::string& t = " ");
|
||||||
std::string trimRight (const std::string& in, const std::string& t = " ");
|
std::string trimRight (const std::string& in, const std::string& t = " ");
|
||||||
std::string trim (const std::string& in, const std::string& t = " ");
|
std::string trim (const std::string& in, const std::string& t = " ");
|
||||||
void extractParagraphs (const std::string&, std::vector<std::string>&);
|
std::string unquoteText (const std::string&);
|
||||||
void extractLine (std::string&, std::string&, int);
|
void extractLine (std::string&, std::string&, int);
|
||||||
void split (std::vector<std::string>&, const std::string&, const char);
|
void split (std::vector<std::string>&, const std::string&, const char);
|
||||||
void split (std::vector<std::string>&, const std::string&, const std::string&);
|
void split (std::vector<std::string>&, const std::string&, const std::string&);
|
||||||
void join (std::string&, const std::string&, const std::vector<std::string>&);
|
void join (std::string&, const std::string&, const std::vector<std::string>&);
|
||||||
std::string commify (const std::string&);
|
std::string commify (const std::string&);
|
||||||
std::string lowerCase (const std::string&);
|
std::string lowerCase (const std::string&);
|
||||||
|
std::string upperCase (const std::string&);
|
||||||
|
const char* optionalBlankLine (Config&);
|
||||||
|
|
||||||
|
// util.cpp
|
||||||
|
bool confirm (const std::string&);
|
||||||
void delay (float);
|
void delay (float);
|
||||||
int autoComplete (const std::string&, const std::vector<std::string>&, std::vector<std::string>&);
|
|
||||||
void formatTimeDeltaDays (std::string&, time_t);
|
void formatTimeDeltaDays (std::string&, time_t);
|
||||||
std::string formatSeconds (time_t);
|
std::string formatSeconds (time_t);
|
||||||
|
int autoComplete (const std::string&, const std::vector<std::string>&, std::vector<std::string>&);
|
||||||
const std::string uuid ();
|
const std::string uuid ();
|
||||||
const char* optionalBlankLine (Config&);
|
int convertDuration (const std::string&);
|
||||||
|
std::string expandPath (const std::string&);
|
||||||
|
|
||||||
|
#ifdef SOLARIS
|
||||||
|
#define LOCK_SH 1
|
||||||
|
#define LOCK_EX 2
|
||||||
|
#define LOCK_NB 4
|
||||||
|
#define LOCK_UN 8
|
||||||
|
|
||||||
|
int flock (int, int);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool slurp (const std::string&, std::vector <std::string>&, bool trimLines = false);
|
||||||
|
|
||||||
// rules.cpp
|
// rules.cpp
|
||||||
void initializeColorRules (Config&);
|
void initializeColorRules (Config&);
|
||||||
void autoColorize (T&, Text::color&, Text::color&);
|
void autoColorize (T&, Text::color&, Text::color&, Config&);
|
||||||
|
|
||||||
|
// import.cpp
|
||||||
|
std::string handleImport (TDB&, T&, Config&);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
7
src/tests/.gitignore
vendored
7
src/tests/.gitignore
vendored
@@ -1,6 +1,7 @@
|
|||||||
t.t
|
t.t
|
||||||
|
t.benchmark.t
|
||||||
tdb.t
|
tdb.t
|
||||||
date.t
|
date.t
|
||||||
pending.data
|
duration.t
|
||||||
completed.data
|
text.t
|
||||||
|
autocomplete.t
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
PROJECT = t.t tdb.t date.t
|
PROJECT = t.t tdb.t date.t duration.t t.benchmark.t text.t autocomplete.t
|
||||||
CFLAGS = -I. -I.. -Wall -pedantic -ggdb3 -fno-rtti
|
CFLAGS = -I. -I.. -Wall -pedantic -ggdb3 -fno-rtti
|
||||||
LFLAGS = -L/usr/local/lib
|
LFLAGS = -L/usr/local/lib
|
||||||
OBJECTS = ../TDB.o ../T.o ../parse.o ../text.o ../Date.o ../util.o ../Config.o
|
OBJECTS = ../TDB.o ../T.o ../parse.o ../text.o ../Date.o ../util.o ../Config.o
|
||||||
@@ -26,3 +26,15 @@ tdb.t: tdb.t.o $(OBJECTS) test.o
|
|||||||
date.t: date.t.o $(OBJECTS) test.o
|
date.t: date.t.o $(OBJECTS) test.o
|
||||||
g++ date.t.o $(OBJECTS) test.o $(LFLAGS) -o date.t
|
g++ date.t.o $(OBJECTS) test.o $(LFLAGS) -o date.t
|
||||||
|
|
||||||
|
duration.t: duration.t.o $(OBJECTS) test.o
|
||||||
|
g++ duration.t.o $(OBJECTS) test.o $(LFLAGS) -o duration.t
|
||||||
|
|
||||||
|
t.benchmark.t: t.benchmark.t.o $(OBJECTS) test.o
|
||||||
|
g++ t.benchmark.t.o $(OBJECTS) test.o $(LFLAGS) -o t.benchmark.t
|
||||||
|
|
||||||
|
text.t: text.t.o $(OBJECTS) test.o
|
||||||
|
g++ text.t.o $(OBJECTS) test.o $(LFLAGS) -o text.t
|
||||||
|
|
||||||
|
autocomplete.t: autocomplete.t.o $(OBJECTS) test.o
|
||||||
|
g++ autocomplete.t.o $(OBJECTS) test.o $(LFLAGS) -o autocomplete.t
|
||||||
|
|
||||||
|
|||||||
99
src/tests/abbreviation.t
Executable file
99
src/tests/abbreviation.t
Executable file
@@ -0,0 +1,99 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 22;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'abbrev.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'abbrev.rc', 'Created abbrev.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the priority attribute abbrevations.
|
||||||
|
qx{../task rc:abbrev.rc add priority:H with};
|
||||||
|
qx{../task rc:abbrev.rc add without};
|
||||||
|
|
||||||
|
my $output = qx{../task rc:abbrev.rc list priority:H};
|
||||||
|
like ($output, qr/\bwith\b/, 'priority:H with');
|
||||||
|
unlike ($output, qr/\bwithout\b/, 'priority:H without');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc list priorit:H};
|
||||||
|
like ($output, qr/\bwith\b/, 'priorit:H with');
|
||||||
|
unlike ($output, qr/\bwithout\b/, 'priorit:H without');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc list priori:H};
|
||||||
|
like ($output, qr/\bwith\b/, 'priori:H with');
|
||||||
|
unlike ($output, qr/\bwithout\b/, 'priori:H without');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc list prior:H};
|
||||||
|
like ($output, qr/\bwith\b/, 'prior:H with');
|
||||||
|
unlike ($output, qr/\bwithout\b/, 'prior:H without');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc list prio:H};
|
||||||
|
like ($output, qr/\bwith\b/, 'prio:H with');
|
||||||
|
unlike ($output, qr/\bwithout\b/, 'prio:H without');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc list pri:H};
|
||||||
|
like ($output, qr/\bwith\b/, 'pri:H with');
|
||||||
|
unlike ($output, qr/\bwithout\b/, 'pri:H without');
|
||||||
|
|
||||||
|
# Test the version command abbreviations.
|
||||||
|
$output = qx{../task rc:abbrev.rc version};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'version');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc versio};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'versio');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc versi};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'versi');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc vers};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'vers');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc ver};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'ver');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc ve};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 've');
|
||||||
|
|
||||||
|
$output = qx{../task rc:abbrev.rc v};
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'v');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'abbrev.rc';
|
||||||
|
ok (!-r 'abbrev.rc', 'Removed abbrev.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
72
src/tests/add.t
Executable file
72
src/tests/add.t
Executable file
@@ -0,0 +1,72 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 14;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'add.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'add.rc', 'Created add.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
my $output = qx{../task rc:add.rc add This is a test; ../task rc:add.rc info 1};
|
||||||
|
like ($output, qr/ID\s+1\n/, 'add ID');
|
||||||
|
like ($output, qr/Description\s+This is a test\n/, 'add ID');
|
||||||
|
like ($output, qr/Status\s+Pending\n/, 'add Pending');
|
||||||
|
like ($output, qr/UUID\s+[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\n/, 'add UUID');
|
||||||
|
|
||||||
|
# Test the /// modifier.
|
||||||
|
$output = qx{../task rc:add.rc 1 /test/TEST/; ../task rc:add.rc 1 "/is //"; ../task rc:add.rc info 1};
|
||||||
|
like ($output, qr/ID\s+1\n/, 'add ID');
|
||||||
|
like ($output, qr/Status\s+Pending\n/, 'add Pending');
|
||||||
|
like ($output, qr/Description\s+This a TEST\n/, 'add ID');
|
||||||
|
|
||||||
|
# Test delete.
|
||||||
|
$output = qx{../task rc:add.rc delete 1; ../task rc:add.rc info 1};
|
||||||
|
like ($output, qr/ID\s+1\n/, 'add ID');
|
||||||
|
like ($output, qr/Status\s+Deleted\n/, 'add Deleted');
|
||||||
|
|
||||||
|
# Test undelete.
|
||||||
|
$output = qx{../task rc:add.rc undelete 1; ../task rc:add.rc info 1};
|
||||||
|
like ($output, qr/ID\s+1\n/, 'add ID');
|
||||||
|
like ($output, qr/Status\s+Pending\n/, 'add Pending');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'add.rc';
|
||||||
|
ok (!-r 'add.rc', 'Removed add.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
74
src/tests/annotate.t
Executable file
74
src/tests/annotate.t
Executable file
@@ -0,0 +1,74 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 8;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'annotate.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"report.r.description=r\n",
|
||||||
|
"report.r.columns=id,description\n",
|
||||||
|
"report.r.sort=id+\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'annotate.rc', 'Created annotate.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add two tasks, annotate one twice.
|
||||||
|
qx{../task rc:annotate.rc add one};
|
||||||
|
qx{../task rc:annotate.rc add two};
|
||||||
|
qx{../task rc:annotate.rc annotate 1 foo};
|
||||||
|
sleep 2;
|
||||||
|
qx{../task rc:annotate.rc annotate 1 bar};
|
||||||
|
my $output = qx{../task rc:annotate.rc r};
|
||||||
|
|
||||||
|
# ID Description
|
||||||
|
# -- -------------------------------
|
||||||
|
# 1 one
|
||||||
|
# 3/24/2009 foo
|
||||||
|
# 3/24/2009 bar
|
||||||
|
# 2 two
|
||||||
|
#
|
||||||
|
# 2 tasks
|
||||||
|
like ($output, qr/1 one/, 'task 1');
|
||||||
|
like ($output, qr/2 two/, 'task 2');
|
||||||
|
like ($output, qr/one.+\d{1,2}\/\d{1,2}\/\d{4} foo/ms, 'first annotation');
|
||||||
|
like ($output, qr/foo.+\d{1,2}\/\d{1,2}\/\d{4} bar/ms, 'second annotation');
|
||||||
|
like ($output, qr/2 tasks/, 'count');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'annotate.rc';
|
||||||
|
ok (!-r 'annotate.rc', 'Removed annotate.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
55
src/tests/append.t
Executable file
55
src/tests/append.t
Executable file
@@ -0,0 +1,55 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 4;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'append.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'append.rc', 'Created append.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add a task, then append more decsription.
|
||||||
|
qx{../task rc:append.rc add foo};
|
||||||
|
qx{../task rc:append.rc 1 append bar};
|
||||||
|
my $output = qx{../task rc:append.rc info 1};
|
||||||
|
like ($output, qr/Description\s+foo\sbar\n/, 'append worked');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'append.rc';
|
||||||
|
ok (!-r 'append.rc', 'Removed append.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
63
src/tests/autocomplete.t.cpp
Normal file
63
src/tests/autocomplete.t.cpp
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// task - a command line task list manager.
|
||||||
|
//
|
||||||
|
// Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or modify it under
|
||||||
|
// the terms of the GNU General Public License as published by the Free Software
|
||||||
|
// Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
// version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
// details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License along with
|
||||||
|
// this program; if not, write to the
|
||||||
|
//
|
||||||
|
// Free Software Foundation, Inc.,
|
||||||
|
// 51 Franklin Street, Fifth Floor,
|
||||||
|
// Boston, MA
|
||||||
|
// 02110-1301
|
||||||
|
// USA
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
#include <iostream>
|
||||||
|
#include <test.h>
|
||||||
|
#include <../task.h>
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
int main (int argc, char** argv)
|
||||||
|
{
|
||||||
|
UnitTest t (8);
|
||||||
|
|
||||||
|
std::vector <std::string> options;
|
||||||
|
options.push_back ("abc");
|
||||||
|
options.push_back ("abcd");
|
||||||
|
options.push_back ("abcde");
|
||||||
|
options.push_back ("bcdef");
|
||||||
|
options.push_back ("cdefg");
|
||||||
|
|
||||||
|
std::vector <std::string> matches;
|
||||||
|
int result = autoComplete ("", options, matches);
|
||||||
|
t.is (result, 0, "no match on empty string");
|
||||||
|
|
||||||
|
result = autoComplete ("x", options, matches);
|
||||||
|
t.is (result, 0, "no match on wrong string");
|
||||||
|
|
||||||
|
result = autoComplete ("abcd", options, matches);
|
||||||
|
t.is (result, 1, "exact match on 'abcd'");
|
||||||
|
t.is (matches[0], "abcd", "exact match on 'abcd'");
|
||||||
|
|
||||||
|
result = autoComplete ("ab", options, matches);
|
||||||
|
t.is (result, 3, "partial match on 'ab'");
|
||||||
|
t.is (matches[0], "abc", "partial match on 'abc'");
|
||||||
|
t.is (matches[1], "abcd", "partial match on 'abcd'");
|
||||||
|
t.is (matches[2], "abcde", "partial match on 'abcde'");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
57
src/tests/basic.t
Executable file
57
src/tests/basic.t
Executable file
@@ -0,0 +1,57 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 7;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'basic.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'basic.rc', 'Created basic.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the usage command.
|
||||||
|
my $output = qx{../task rc:basic.rc};
|
||||||
|
like ($output, qr/Usage: task/, 'usage');
|
||||||
|
like ($output, qr/http:\/\/www\.beckingham\.net\/task\.html/, 'usage - url');
|
||||||
|
|
||||||
|
# Test the version command.
|
||||||
|
$output = qx{../task rc:basic.rc version};
|
||||||
|
like ($output, qr/task \d+\.\d+\.\d+/, 'version - task version number');
|
||||||
|
like ($output, qr/ABSOLUTELY NO WARRANTY/, 'version - warranty');
|
||||||
|
like ($output, qr/http:\/\/www\.beckingham\.net\/task\.html/, 'version - url');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'basic.rc';
|
||||||
|
ok (!-r 'basic.rc', 'Removed basic.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
103
src/tests/benchmark.t
Executable file
103
src/tests/benchmark.t
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 4;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'bench.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'bench.rc', 'Created bench.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Do lots of things. Time it all.
|
||||||
|
|
||||||
|
my @tags = qw(t_one t_two t_three t_four t_five t_six t_seven t_eight);
|
||||||
|
my @projects = qw(p_one p_two p_three p_foud p_five p_six p_seven p_eight);
|
||||||
|
my @priorities = qw(H M L);
|
||||||
|
my $description = 'This is a medium-sized description with no special characters';
|
||||||
|
|
||||||
|
# Start the clock.
|
||||||
|
my $start = time ();
|
||||||
|
my $cursor = $start;
|
||||||
|
diag ("start=$start");
|
||||||
|
|
||||||
|
# Make a mess.
|
||||||
|
for my $i (1 .. 1000)
|
||||||
|
{
|
||||||
|
my $project = $projects[rand % 8];
|
||||||
|
my $priority = $priorities[rand % 3];
|
||||||
|
my $tag = $tags[rand % 8];
|
||||||
|
|
||||||
|
qx{../task rc:bench.rc add project:$project priority:$priority +$tag $i $description};
|
||||||
|
}
|
||||||
|
diag ("1000 tasks added in " . (time () - $cursor) . " seconds");
|
||||||
|
$cursor = time ();
|
||||||
|
|
||||||
|
qx{../task rc:bench.rc /with/WITH/} for 1 .. 200;
|
||||||
|
qx{../task rc:bench.rc done $_} for 201 .. 400;
|
||||||
|
qx{../task rc:bench.rc start $_} for 401 .. 600;
|
||||||
|
diag ("600 tasks altered in " . (time () - $cursor) . " seconds");
|
||||||
|
$cursor = time ();
|
||||||
|
|
||||||
|
# Report it all. Note that all Timer information is displayed.
|
||||||
|
|
||||||
|
for (1 .. 100)
|
||||||
|
{
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc ls});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc list});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc list priority:H});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc list +tag});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc list project_A});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc long});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc completed});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc history});
|
||||||
|
diag (grep {/^Timer /} qx{../task rc:bench.rc ghistory});
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop the clock.
|
||||||
|
my $stop = time ();
|
||||||
|
diag ("stop=$stop");
|
||||||
|
diag ("total=" . ($stop - $start));
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'completed.data';
|
||||||
|
ok (!-r 'completed.data', 'Removed completed.data');
|
||||||
|
|
||||||
|
unlink 'bench.rc';
|
||||||
|
ok (!-r 'bench.rc', 'Removed bench.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
40
src/tests/benchmark.txt
Normal file
40
src/tests/benchmark.txt
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
3/8/2009
|
||||||
|
Before:
|
||||||
|
Table::render
|
||||||
|
26.1792
|
||||||
|
16.67
|
||||||
|
18.9697
|
||||||
|
28.6328
|
||||||
|
1.86553
|
||||||
|
0.00044
|
||||||
|
0.000319
|
||||||
|
---------
|
||||||
|
92.317989
|
||||||
|
|
||||||
|
After Table::optimize removed:
|
||||||
|
Table::render
|
||||||
|
0.146177
|
||||||
|
0.145928
|
||||||
|
0.184444
|
||||||
|
0.014784
|
||||||
|
0.000512
|
||||||
|
0.000267
|
||||||
|
---------
|
||||||
|
0.492112
|
||||||
|
|
||||||
|
Speedup:
|
||||||
|
92.317989 / 0.492112 = 187.6
|
||||||
|
|
||||||
|
3/8/2009
|
||||||
|
New benchmark:
|
||||||
|
1..4
|
||||||
|
ok 1 - Created bench.rc
|
||||||
|
# start=1236565862
|
||||||
|
# 1000 tasks added in 3 seconds
|
||||||
|
# 600 tasks altered in 28 seconds
|
||||||
|
# stop=1236566048
|
||||||
|
# total=186
|
||||||
|
ok 2 - Removed pending.data
|
||||||
|
ok 3 - Removed completed.data
|
||||||
|
ok 4 - Removed bench.rc
|
||||||
|
|
||||||
79
src/tests/bug.annual.t
Executable file
79
src/tests/bug.annual.t
Executable file
@@ -0,0 +1,79 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 14;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'annual.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'annual.rc', 'Created annual.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# If a task is added with a due date ten years ago, with an annual recurrence,
|
||||||
|
# then the synthetic tasks in between then and now have a due date that creeps.
|
||||||
|
#
|
||||||
|
# ID Project Pri Due Active Age Description
|
||||||
|
# -- ------- --- ---------- ------ --- -----------
|
||||||
|
# 2 1/1/2000 - foo
|
||||||
|
# 3 12/31/2000 - foo
|
||||||
|
# 4 12/31/2001 - foo
|
||||||
|
# 5 12/31/2002 - foo
|
||||||
|
# 6 12/31/2003 - foo
|
||||||
|
# 7 12/30/2004 - foo
|
||||||
|
# 8 12/30/2005 - foo
|
||||||
|
# 9 12/30/2006 - foo
|
||||||
|
# 10 12/30/2007 - foo
|
||||||
|
# 11 12/29/2008 - foo
|
||||||
|
# 12 12/29/2009 - foo
|
||||||
|
|
||||||
|
qx{../task rc:annual.rc add foo due:1/1/2000 recur:annual until:1/1/2009};
|
||||||
|
my $output = qx{../task rc:annual.rc list};
|
||||||
|
like ($output, qr/2\s+1\/1\/2000\s+- foo/, 'synthetic 1 no creep');
|
||||||
|
like ($output, qr/3\s+1\/1\/2001\s+- foo/, 'synthetic 2 no creep');
|
||||||
|
like ($output, qr/4\s+1\/1\/2002\s+- foo/, 'synthetic 3 no creep');
|
||||||
|
like ($output, qr/5\s+1\/1\/2003\s+- foo/, 'synthetic 4 no creep');
|
||||||
|
like ($output, qr/6\s+1\/1\/2004\s+- foo/, 'synthetic 5 no creep');
|
||||||
|
like ($output, qr/7\s+1\/1\/2005\s+- foo/, 'synthetic 6 no creep');
|
||||||
|
like ($output, qr/8\s+1\/1\/2006\s+- foo/, 'synthetic 7 no creep');
|
||||||
|
like ($output, qr/9\s+1\/1\/2007\s+- foo/, 'synthetic 8 no creep');
|
||||||
|
like ($output, qr/10\s+1\/1\/2008\s+- foo/, 'synthetic 9 no creep');
|
||||||
|
like ($output, qr/11\s+1\/1\/2009\s+- foo/, 'synthetic 10 no creep');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'annual.rc';
|
||||||
|
ok (!-r 'annual.rc', 'Removed annual.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
77
src/tests/bug.concat.t
Executable file
77
src/tests/bug.concat.t
Executable file
@@ -0,0 +1,77 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 6;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'bug_concat.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'bug_concat.rc', 'Created bug_concat.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# When a task is modified like this:
|
||||||
|
#
|
||||||
|
# % task 1 This is a new description
|
||||||
|
#
|
||||||
|
# The arguments are concatenated thus:
|
||||||
|
#
|
||||||
|
# Thisisanewdescription
|
||||||
|
|
||||||
|
qx{../task rc:bug_concat.rc add This is the original text};
|
||||||
|
my $output = qx{../task rc:bug_concat.rc info 1};
|
||||||
|
like ($output, qr/Description\s+This is the original text\n/, 'original correct');
|
||||||
|
|
||||||
|
qx{../task rc:bug_concat.rc 1 This is the modified text};
|
||||||
|
$output = qx{../task rc:bug_concat.rc info 1};
|
||||||
|
like ($output, qr/Description\s+This is the modified text\n/, 'modified correct');
|
||||||
|
|
||||||
|
# When a task is added like this:
|
||||||
|
#
|
||||||
|
# % task add aaa bbb:ccc ddd
|
||||||
|
#
|
||||||
|
# The description is concatenated thus:
|
||||||
|
#
|
||||||
|
# aaabbb:ccc ddd
|
||||||
|
|
||||||
|
qx{../task rc:bug_concat.rc add aaa bbb:ccc ddd};
|
||||||
|
$output = qx{../task rc:bug_concat.rc info 2};
|
||||||
|
like ($output, qr/Description\s+aaa bbb:ccc ddd\n/, 'properly concatenated');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'bug_concat.rc';
|
||||||
|
ok (!-r 'bug_concat.rc', 'Removed bug_concat.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
83
src/tests/bug.hang.t
Executable file
83
src/tests/bug.hang.t
Executable file
@@ -0,0 +1,83 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'hang.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"shadow.file=shadow.txt\n",
|
||||||
|
"shadow.command=list\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'hang.rc', 'Created hang.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
=pod
|
||||||
|
I found a bug in the current version of task. Using recur and a shadow file will
|
||||||
|
lead to an infinite loop. To reproduce it, define a shadow file in the .taskrc,
|
||||||
|
set a command for it that rebuilds the database, e.g. "list", and then add a
|
||||||
|
task with a recurrence set, e.g. "task add due:today recur:1d infinite loop".
|
||||||
|
Task will then loop forever and add the same recurring task until it runs out of
|
||||||
|
memory. So I checked the source and I believe I found the cause.
|
||||||
|
handleRecurrence() in task.cpp will modify the mask, but writes it only after it
|
||||||
|
has added all new tasks. Adding the task will, however, invoke onChangeCallback,
|
||||||
|
which starts the same process all over again.
|
||||||
|
=cut
|
||||||
|
|
||||||
|
eval
|
||||||
|
{
|
||||||
|
$SIG{'ALRM'} = sub {die "alarm\n"};
|
||||||
|
alarm 10;
|
||||||
|
my $output = qx{../task rc:hang.rc list;
|
||||||
|
../task rc:hang.rc add due:today recur:1d infinite loop;
|
||||||
|
../task rc:hang.rc info 1};
|
||||||
|
alarm 0;
|
||||||
|
|
||||||
|
like ($output, qr/^Description\s+infinite loop\n/m, 'no hang');
|
||||||
|
};
|
||||||
|
|
||||||
|
if ($@ eq "alarm\n")
|
||||||
|
{
|
||||||
|
fail ('task hang on add or recurring task, with shadow file, for 10s');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'shadow.txt';
|
||||||
|
ok (!-r 'shadow.txt', 'Removed shadow.txt');
|
||||||
|
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'hang.rc';
|
||||||
|
ok (!-r 'hang.rc', 'Removed hang.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
164
src/tests/bug.period.t
Executable file
164
src/tests/bug.period.t
Executable file
@@ -0,0 +1,164 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 41;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'period.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'period.rc', 'Created period.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
=pod
|
||||||
|
http://github.com/pbeckingham/task/blob/857f813a24f7ce15fea9f2c28aadad84cb5c8847/src/task.cpp
|
||||||
|
619 // If the period is an 'easy' one, add it to current, and we're done.
|
||||||
|
620 int days = convertDuration (period);
|
||||||
|
|
||||||
|
Date getNextRecurrence (Date& current, std::string& period)
|
||||||
|
|
||||||
|
starting at line 509 special cases several possibilities for period, '\d\s?m'
|
||||||
|
'monthly', 'quarterly', 'semiannual', 'bimonthly', 'biannual', 'biyearly'.
|
||||||
|
Everything else falls through with period being passed to convertDuration.
|
||||||
|
convertDuration doesn't know about 'daily' though so it seems to be returning 0.
|
||||||
|
|
||||||
|
Confirmed:
|
||||||
|
getNextRecurrence convertDuration
|
||||||
|
----------------- ---------------
|
||||||
|
daily
|
||||||
|
day
|
||||||
|
weekly
|
||||||
|
sennight
|
||||||
|
biweekly
|
||||||
|
fortnight
|
||||||
|
monthly monthly
|
||||||
|
quarterly quarterly
|
||||||
|
semiannual semiannual
|
||||||
|
bimonthly bimonthly
|
||||||
|
biannual biannual
|
||||||
|
biyearly biyearly
|
||||||
|
annual
|
||||||
|
yearly
|
||||||
|
*m *m
|
||||||
|
*q *q
|
||||||
|
*d
|
||||||
|
*w
|
||||||
|
*y
|
||||||
|
=cut
|
||||||
|
|
||||||
|
my $output = qx{../task rc:period.rc add daily due:tomorrow recur:daily};
|
||||||
|
like ($output, qr/^$/, 'recur:daily');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add day due:tomorrow recur:day};
|
||||||
|
like ($output, qr/^$/, 'recur:day');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add weekly due:tomorrow recur:weekly};
|
||||||
|
like ($output, qr/^$/, 'recur:weekly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add sennight due:tomorrow recur:sennight};
|
||||||
|
like ($output, qr/^$/, 'recur:sennight');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add biweekly due:tomorrow recur:biweekly};
|
||||||
|
like ($output, qr/^$/, 'recur:biweekly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add fortnight due:tomorrow recur:fortnight};
|
||||||
|
like ($output, qr/^$/, 'recur:fortnight');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add monthly due:tomorrow recur:monthly};
|
||||||
|
like ($output, qr/^$/, 'recur:monthly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add quarterly due:tomorrow recur:quarterly};
|
||||||
|
like ($output, qr/^$/, 'recur:quarterly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add semiannual due:tomorrow recur:semiannual};
|
||||||
|
like ($output, qr/^$/, 'recur:semiannual');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add bimonthly due:tomorrow recur:bimonthly};
|
||||||
|
like ($output, qr/^$/, 'recur:bimonthly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add biannual due:tomorrow recur:biannual};
|
||||||
|
like ($output, qr/^$/, 'recur:biannual');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add biyearly due:tomorrow recur:biyearly};
|
||||||
|
like ($output, qr/^$/, 'recur:biyearly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add annual due:tomorrow recur:annual};
|
||||||
|
like ($output, qr/^$/, 'recur:annual');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add yearly due:tomorrow recur:yearly};
|
||||||
|
like ($output, qr/^$/, 'recur:yearly');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add 2d due:tomorrow recur:2d};
|
||||||
|
like ($output, qr/^$/, 'recur:2m');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add 2w due:tomorrow recur:2w};
|
||||||
|
like ($output, qr/^$/, 'recur:2q');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add 2m due:tomorrow recur:2m};
|
||||||
|
like ($output, qr/^$/, 'recur:2d');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add 2q due:tomorrow recur:2q};
|
||||||
|
like ($output, qr/^$/, 'recur:2w');
|
||||||
|
|
||||||
|
$output = qx{../task rc:period.rc add 2y due:tomorrow recur:2y};
|
||||||
|
like ($output, qr/^$/, 'recur:2y');
|
||||||
|
|
||||||
|
# Verify that the recurring task instances get created. One of each.
|
||||||
|
$output = qx{../task rc:period.rc list};
|
||||||
|
like ($output, qr/\bdaily\b/, 'verify daily');
|
||||||
|
like ($output, qr/\bday\b/, 'verify day');
|
||||||
|
like ($output, qr/\bweekly\b/, 'verify weekly');
|
||||||
|
like ($output, qr/\bsennight\b/, 'verify sennight');
|
||||||
|
like ($output, qr/\bbiweekly\b/, 'verify biweekly');
|
||||||
|
like ($output, qr/\bfortnight\b/, 'verify fortnight');
|
||||||
|
like ($output, qr/\bmonthly\b/, 'verify monthly');
|
||||||
|
like ($output, qr/\bquarterly\b/, 'verify quarterly');
|
||||||
|
like ($output, qr/\bsemiannual\b/, 'verify semiannual');
|
||||||
|
like ($output, qr/\bbimonthly\b/, 'verify bimonthly');
|
||||||
|
like ($output, qr/\bbiannual\b/, 'verify biannual');
|
||||||
|
like ($output, qr/\bbiyearly\b/, 'verify biyearly');
|
||||||
|
like ($output, qr/\bannual\b/, 'verify annual');
|
||||||
|
like ($output, qr/\byearly\b/, 'verify yearly');
|
||||||
|
like ($output, qr/\b2d\b/, 'verify 2d');
|
||||||
|
like ($output, qr/\b2w\b/, 'verify 2w');
|
||||||
|
like ($output, qr/\b2m\b/, 'verify 2m');
|
||||||
|
like ($output, qr/\b2q\b/, 'verify 2q');
|
||||||
|
like ($output, qr/\b2y\b/, 'verify 2y');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'period.rc';
|
||||||
|
ok (!-r 'period.rc', 'Removed period.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
61
src/tests/bug.sort.t
Executable file
61
src/tests/bug.sort.t
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'bug_sort.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'bug_sort.rc', 'Created bug_sort.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
my $setup = "../task rc:bug_sort.rc add one;"
|
||||||
|
. "../task rc:bug_sort.rc add two;"
|
||||||
|
. "../task rc:bug_sort.rc add three recur:daily due:eom;";
|
||||||
|
qx{$setup};
|
||||||
|
|
||||||
|
my $output = qx{../task rc:bug_sort.rc list};
|
||||||
|
like ($output, qr/three.*(?:one.*two|two.*one)/msi, 'list did not hang');
|
||||||
|
|
||||||
|
qx{../task rc:bug_sort.rc 1 priority:H};
|
||||||
|
$output = qx{../task rc:bug_sort.rc list};
|
||||||
|
like ($output, qr/three.*one.*two/msi, 'list did not hang after pri:H on 1');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'bug_sort.rc';
|
||||||
|
ok (!-r 'bug_sort.rc', 'Removed bug_sort.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
67
src/tests/bug.summary.t
Executable file
67
src/tests/bug.summary.t
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 6;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'summary.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"confirmation=no\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'summary.rc', 'Created summary.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add three tasks. Do 1, delete 1, leave 1 pending. Summary should depict a
|
||||||
|
# 50% completion.
|
||||||
|
qx{../task rc:summary.rc add project:A one};
|
||||||
|
qx{../task rc:summary.rc add project:A two};
|
||||||
|
qx{../task rc:summary.rc add project:A three};
|
||||||
|
qx{../task rc:summary.rc do 1};
|
||||||
|
qx{../task rc:summary.rc delete 2};
|
||||||
|
my $output = qx{../task rc:summary.rc summary};
|
||||||
|
like ($output, qr/A\s+1\s+-\s+50%/, 'summary correctly shows 50% before report');
|
||||||
|
|
||||||
|
qx{../task rc:summary.rc list};
|
||||||
|
$output = qx{../task rc:summary.rc summary};
|
||||||
|
like ($output, qr/A\s+1\s+-\s+50%/, 'summary correctly shows 50% after report');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'completed.data';
|
||||||
|
ok (!-r 'completed.data', 'Removed completed.data');
|
||||||
|
|
||||||
|
unlink 'summary.rc';
|
||||||
|
ok (!-r 'summary.rc', 'Removed summary.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
60
src/tests/color.active.t
Executable file
60
src/tests/color.active.t
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.active=red\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add nothing};
|
||||||
|
qx{../task rc:color.rc add red};
|
||||||
|
qx{../task rc:color.rc start 2};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) .* nothing .* (?!>\033\[0m) /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.active');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
58
src/tests/color.disable.t
Executable file
58
src/tests/color.disable.t
Executable file
@@ -0,0 +1,58 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 6;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.pri.H=red\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add priority:H red};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/red/, 'color.disable - found red');
|
||||||
|
unlike ($output, qr/\033\[31m/, 'color.disable - no color red');
|
||||||
|
unlike ($output, qr/\033\[0m/, 'color.disable - no color reset');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
59
src/tests/color.due.t
Executable file
59
src/tests/color.due.t
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.due=red\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add due:eoy nothing};
|
||||||
|
qx{../task rc:color.rc add due:tomorrow red};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) \d{1,2}\/\d{1,2}\/\d{4} (?!>\033\[0m) .* nothing /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m/x, 'color.due');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
62
src/tests/color.keyword.t
Executable file
62
src/tests/color.keyword.t
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 6;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.keyword.red=red\n",
|
||||||
|
"color.keyword.green=green\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add nothing};
|
||||||
|
qx{../task rc:color.rc add red};
|
||||||
|
qx{../task rc:color.rc add green};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) .* nothing .* (?!>\033\[0m) /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.keyword.red');
|
||||||
|
like ($output, qr/ \033\[32m .* green .* \033\[0m /x, 'color.keyword.green');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
59
src/tests/color.overdue.t
Executable file
59
src/tests/color.overdue.t
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.overdue=red\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add due:tomorrow nothing};
|
||||||
|
qx{../task rc:color.rc add due:yesterday red};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) \d{1,2}\/\d{1,2}\/\d{4} (?!>\033\[0m) .* nothing /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m/x, 'color.overdue');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
66
src/tests/color.pri.t
Executable file
66
src/tests/color.pri.t
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 7;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.pri.H=red\n",
|
||||||
|
"color.pri.M=green\n",
|
||||||
|
"color.pri.L=blue\n",
|
||||||
|
"color.pri.none=yellow\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add priority:H red};
|
||||||
|
qx{../task rc:color.rc add priority:M green};
|
||||||
|
qx{../task rc:color.rc add priority:L blue};
|
||||||
|
qx{../task rc:color.rc add yellow};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.pri.H');
|
||||||
|
like ($output, qr/ \033\[32m .* green .* \033\[0m /x, 'color.pri.M');
|
||||||
|
like ($output, qr/ \033\[34m .* blue .* \033\[0m /x, 'color.pri.L');
|
||||||
|
like ($output, qr/ \033\[33m .* yellow .* \033\[0m /x, 'color.pri.none');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
59
src/tests/color.project.t
Executable file
59
src/tests/color.project.t
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.project.x=red\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add nothing};
|
||||||
|
qx{../task rc:color.rc add project:x red};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) .* nothing .* (?!>\033\[0m) /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.project.red');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
59
src/tests/color.recurring.t
Executable file
59
src/tests/color.recurring.t
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.recurring=red\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add nothing};
|
||||||
|
qx{../task rc:color.rc add due:tomorrow recur:1w red};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) .* nothing .* (?!>\033\[0m) /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.recurring');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
62
src/tests/color.tag.t
Executable file
62
src/tests/color.tag.t
Executable file
@@ -0,0 +1,62 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 6;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.tag.red=red\n",
|
||||||
|
"color.tag.green=green\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add nothing};
|
||||||
|
qx{../task rc:color.rc add +red red};
|
||||||
|
qx{../task rc:color.rc add +green green};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) .* nothing .* (?!>\033\[0m) /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.tag.red');
|
||||||
|
like ($output, qr/ \033\[32m .* green .* \033\[0m /x, 'color.tag.green');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
59
src/tests/color.tagged.t
Executable file
59
src/tests/color.tagged.t
Executable file
@@ -0,0 +1,59 @@
|
|||||||
|
#! /usr/bin/perl
|
||||||
|
################################################################################
|
||||||
|
## task - a command line task list manager.
|
||||||
|
##
|
||||||
|
## Copyright 2006 - 2009, Paul Beckingham.
|
||||||
|
## All rights reserved.
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify it under
|
||||||
|
## the terms of the GNU General Public License as published by the Free Software
|
||||||
|
## Foundation; either version 2 of the License, or (at your option) any later
|
||||||
|
## version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||||
|
## FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||||
|
## details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License along with
|
||||||
|
## this program; if not, write to the
|
||||||
|
##
|
||||||
|
## Free Software Foundation, Inc.,
|
||||||
|
## 51 Franklin Street, Fifth Floor,
|
||||||
|
## Boston, MA
|
||||||
|
## 02110-1301
|
||||||
|
## USA
|
||||||
|
##
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Test::More tests => 5;
|
||||||
|
|
||||||
|
# Create the rc file.
|
||||||
|
if (open my $fh, '>', 'color.rc')
|
||||||
|
{
|
||||||
|
print $fh "data.location=.\n",
|
||||||
|
"color.tagged=red\n",
|
||||||
|
"_forcecolor=1\n";
|
||||||
|
close $fh;
|
||||||
|
ok (-r 'color.rc', 'Created color.rc');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Test the add command.
|
||||||
|
qx{../task rc:color.rc add nothing};
|
||||||
|
qx{../task rc:color.rc add +tag red};
|
||||||
|
my $output = qx{../task rc:color.rc list};
|
||||||
|
|
||||||
|
like ($output, qr/ (?!<\033\[\d\dm) .* nothing .* (?!>\033\[0m) /x, 'none');
|
||||||
|
like ($output, qr/ \033\[31m .* red .* \033\[0m /x, 'color.tagged');
|
||||||
|
|
||||||
|
# Cleanup.
|
||||||
|
unlink 'pending.data';
|
||||||
|
ok (!-r 'pending.data', 'Removed pending.data');
|
||||||
|
|
||||||
|
unlink 'color.rc';
|
||||||
|
ok (!-r 'color.rc', 'Removed color.rc');
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user