| 1 |
<?xml version="1.0"?> |
|---|
| 2 |
<todo version="0.1.19"> |
|---|
| 3 |
<title> |
|---|
| 4 |
devtodo - hierarchical task list |
|---|
| 5 |
</title> |
|---|
| 6 |
<note priority="medium" time="0" done="987027026"> |
|---|
| 7 |
Allow user to specify defaults in ~/.todorc. Format could be something like: <option> <value> - identical to command line args but without the prefixed '--'. |
|---|
| 8 |
</note> |
|---|
| 9 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 10 |
Add facility to 'graft' an added note onto an existing one. |
|---|
| 11 |
</note> |
|---|
| 12 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 13 |
Add facility to change the file used as the input database. Perhaps --database <file>. This could be put in the ~/.todorc to make it permanent. |
|---|
| 14 |
<note priority="medium" time="980645036" done="987887664"> |
|---|
| 15 |
Ended up with two new options: --database <relative file> and --fallback-database <absolute file>. The first is used to change the default database from .todo to whatever while the second one is used to specify a fallback database file to use if no other can be found. |
|---|
| 16 |
</note> |
|---|
| 17 |
</note> |
|---|
| 18 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 19 |
Add sub-tasks (1.1, 1.2, 1.2.1, etc.). Might have to add an index attribute to each item, which would be a floating point number. |
|---|
| 20 |
<note priority="medium" time="980645036" done="987887671"> |
|---|
| 21 |
In the end, it didn't require adding an index attribute. |
|---|
| 22 |
</note> |
|---|
| 23 |
</note> |
|---|
| 24 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 25 |
Add support for TODORC environment variable (courtesy, Claude) |
|---|
| 26 |
</note> |
|---|
| 27 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 28 |
Add version checking so that if an older version uses a newer version database, it warns the user. Probably only major/medium version number checking needs to be done? |
|---|
| 29 |
</note> |
|---|
| 30 |
<note priority="medium" time="980645036" done="987027043"> |
|---|
| 31 |
Allow branches to be reparented: --reparent <index> <newparent> |
|---|
| 32 |
</note> |
|---|
| 33 |
<note priority="medium" time="980645036" done="987027043"> |
|---|
| 34 |
Automatically derive child item priority from parent item. |
|---|
| 35 |
</note> |
|---|
| 36 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 37 |
Change SYNTAX section in man page to SYNPOSIS (courtesy, Arthur Korn) |
|---|
| 38 |
</note> |
|---|
| 39 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 40 |
Chase down other temporary string bugs - I'm fairly sure there will be a few in there :( Found another one and squashed it. |
|---|
| 41 |
</note> |
|---|
| 42 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 43 |
Compile for different platforms on cf.sourceforge.net |
|---|
| 44 |
<note priority="medium" time="980645036" done="994178467"> |
|---|
| 45 |
FreeBSD compile has problems with regex - getting empty strings? |
|---|
| 46 |
</note> |
|---|
| 47 |
</note> |
|---|
| 48 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 49 |
Do something other than fail on compile, if readline is not linkable. |
|---|
| 50 |
</note> |
|---|
| 51 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 52 |
Expand environment variables in ~/.todorc parsed strings. Useful for 'fallback-database $HOME/.todo' |
|---|
| 53 |
</note> |
|---|
| 54 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 55 |
Fix bug where pressing ^D to end input of a priority or text causes a seg-fault (courtesy, Matt Kraai) |
|---|
| 56 |
</note> |
|---|
| 57 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 58 |
Fix indenting weirdness. |
|---|
| 59 |
</note> |
|---|
| 60 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 61 |
Fix man page so that -r is no longer present, to reflect removal of this option (courtesy, Arthur Korn) |
|---|
| 62 |
</note> |
|---|
| 63 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 64 |
Fix multiple items being specified as seperate arguments always defaulting to last argument (courtesy, Arthur Korn) |
|---|
| 65 |
</note> |
|---|
| 66 |
<note priority="medium" time="980645036" done="987027026"> |
|---|
| 67 |
Fix problem where todo won't access third teir items: 1.1.x |
|---|
| 68 |
</note> |
|---|
| 69 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 70 |
Fix up some minor man page problems |
|---|
| 71 |
</note> |
|---|
| 72 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 73 |
Instead of deleting items on tdr, mark them as done? Or have a new option "-d|--done" (tdd) for this? |
|---|
| 74 |
</note> |
|---|
| 75 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 76 |
Make -s (strip symbols) optional through --configure. |
|---|
| 77 |
<note priority="medium" time="980645036" done="994178472"> |
|---|
| 78 |
Also, use -g -Wall when debugging and use -DNDEBUG when not debugging. |
|---|
| 79 |
</note> |
|---|
| 80 |
</note> |
|---|
| 81 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 82 |
Make some man pages. |
|---|
| 83 |
<note priority="medium" time="980645036" done="987887707"> |
|---|
| 84 |
Figure out how to generate man pages. Probably have to download some source code as an example. |
|---|
| 85 |
</note> |
|---|
| 86 |
<note priority="medium" time="980645036" done="987887707"> |
|---|
| 87 |
Possibly learn how to use SGML? Or get some front-end that uses it. That would make it easier to generate other backends simultaneously, like .html and .man, from the one source. |
|---|
| 88 |
</note> |
|---|
| 89 |
</note> |
|---|
| 90 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 91 |
Remove explicitly set CXXFLAGS in configure.in before releasing. |
|---|
| 92 |
</note> |
|---|
| 93 |
<note priority="medium" time="980645036" done="987027043"> |
|---|
| 94 |
Sort items after editing so that the correct order is maintained. |
|---|
| 95 |
</note> |
|---|
| 96 |
<note priority="medium" time="980645036" done="1002595646"> |
|---|
| 97 |
Use some sort of template string for formatting output. For example, '%i%f%2n.%T' would generate the default display. |
|---|
| 98 |
<note priority="medium" time="987033135" done="987887698"> |
|---|
| 99 |
%<n?i: indent to current depth; <n> is the number of spaces per indent level and defaults to 4 |
|---|
| 100 |
</note> |
|---|
| 101 |
<note priority="medium" time="987033255" done="987887698"> |
|---|
| 102 |
%T is the item text, which wraps and indents to the depth the item started at |
|---|
| 103 |
</note> |
|---|
| 104 |
<note priority="medium" time="987033268" done="987887698"> |
|---|
| 105 |
%t is unwrapped text |
|---|
| 106 |
</note> |
|---|
| 107 |
<note priority="medium" time="987033283" done="987887698"> |
|---|
| 108 |
%p is the priority |
|---|
| 109 |
</note> |
|---|
| 110 |
<note priority="medium" time="987033395" done="987887698"> |
|---|
| 111 |
%d is the date (formatted according to --format-date) |
|---|
| 112 |
</note> |
|---|
| 113 |
<note priority="medium" time="987180915" done="987887698"> |
|---|
| 114 |
%n is the index number of the item |
|---|
| 115 |
</note> |
|---|
| 116 |
<note priority="medium" time="987180954" done="987887698"> |
|---|
| 117 |
%f is the state flag (+ means children, - means done, * means children and done) |
|---|
| 118 |
</note> |
|---|
| 119 |
</note> |
|---|
| 120 |
<note priority="medium" time="980645036" done="987027202"> |
|---|
| 121 |
Validate arguments from ~/.todorc. It's not good to be able to put --add or --reparent in there. There should really only be a couple available: verbose, colour, etc. |
|---|
| 122 |
</note> |
|---|
| 123 |
<note priority="verylow" time="980645036"> |
|---|
| 124 |
Add facility to extract TODO entries in source code into .todo database. Perhaps an external script or something would be better? |
|---|
| 125 |
<note priority="verylow" time="980645036"> |
|---|
| 126 |
Could be done with an option to the root node, such as: <todo mirror="true"> |
|---|
| 127 |
</note> |
|---|
| 128 |
</note> |
|---|
| 129 |
<note priority="verylow" time="980645036"> |
|---|
| 130 |
Minor bug where items with sub-items that are all marked done still get a + when children are filtered out. |
|---|
| 131 |
</note> |
|---|
| 132 |
<note priority="high" time="987027358" done="987210991"> |
|---|
| 133 |
Allow sorting in a variety of ways. One example of the usefulness of this is to sort done items after not done items - makes it easier to seperate them visually. Another example is sorting by finished date, created date, lifespan of item, etc. |
|---|
| 134 |
<note priority="high" time="987181145" done="987887619"> |
|---|
| 135 |
a prefix of '-' will mean sort descending, '+' means sort ascending |
|---|
| 136 |
</note> |
|---|
| 137 |
<note priority="high" time="987181280" done="987887619"> |
|---|
| 138 |
Valid sort keys are |
|---|
| 139 |
<note priority="high" time="987181204" done="987887648"> |
|---|
| 140 |
created - sort on created time |
|---|
| 141 |
</note> |
|---|
| 142 |
<note priority="high" time="987181213" done="987887648"> |
|---|
| 143 |
completed - sort on completed time |
|---|
| 144 |
</note> |
|---|
| 145 |
<note priority="high" time="987181261" done="987887648"> |
|---|
| 146 |
text - sort on text |
|---|
| 147 |
</note> |
|---|
| 148 |
<note priority="high" time="987181269" done="987887648"> |
|---|
| 149 |
priority - sort on priority |
|---|
| 150 |
</note> |
|---|
| 151 |
<note priority="high" time="987181480" done="987887648"> |
|---|
| 152 |
duration - sort on time item was open |
|---|
| 153 |
</note> |
|---|
| 154 |
<note priority="high" time="987181597" done="987887648"> |
|---|
| 155 |
done - sort on whether an item is done or not |
|---|
| 156 |
</note> |
|---|
| 157 |
</note> |
|---|
| 158 |
<note priority="high" time="987181770" done="987887619"> |
|---|
| 159 |
eg. This is the default behaviour: todo --sort done,priority,-created |
|---|
| 160 |
</note> |
|---|
| 161 |
</note> |
|---|
| 162 |
<note priority="low" time="987034479" done="987180061"> |
|---|
| 163 |
Warn if database is created with world or group read/write permissions. |
|---|
| 164 |
</note> |
|---|
| 165 |
<note priority="verylow" time="987181399" done="994178421"> |
|---|
| 166 |
If a sub-sub-item needs to be expanded and you are filtering with '-children' you have to first expand the parent then the child. This is probably not expected behaviour. |
|---|
| 167 |
</note> |
|---|
| 168 |
<note priority="low" time="987182780" done="987293958"> |
|---|
| 169 |
Allow formatting of time in --verbose display. |
|---|
| 170 |
</note> |
|---|
| 171 |
<note priority="medium" time="987187139"> |
|---|
| 172 |
Add new filter options 'created=<date>[-<date>|,<date>]', 'completed=<date>[-<date>|,<date>]' and 'duration=<time>' to filtering code. |
|---|
| 173 |
</note> |
|---|
| 174 |
<note priority="medium" time="987188566"> |
|---|
| 175 |
Add a 'current' marker to items? ie. mark the item you are currently working on so that it is easier to determine. |
|---|
| 176 |
</note> |
|---|
| 177 |
<note priority="high" time="987554480" done="987554583"> |
|---|
| 178 |
Default to medium priority if a blank line is entered in the priority input (thanks to Alexei Gilchrist). |
|---|
| 179 |
</note> |
|---|
| 180 |
<note priority="veryhigh" time="987554520" done="987861021"> |
|---|
| 181 |
Fix performance problems! (Alexei Gilchrist has reported >= 16 seconds on a file less than 20K. Not good.) |
|---|
| 182 |
<note priority="veryhigh" time="987628779" done="987640630"> |
|---|
| 183 |
One problem was getline(string) - this is very slow. Changed it to use in.getline(char*, int) and it profiled a LOT faster. |
|---|
| 184 |
</note> |
|---|
| 185 |
<note priority="veryhigh" time="987628813" done="987640630"> |
|---|
| 186 |
Use of Lexer::iterator::operator ++ (int) - this causes a copy of the entire iterator - bad. |
|---|
| 187 |
</note> |
|---|
| 188 |
<note priority="veryhigh" time="987629226" done="987640630"> |
|---|
| 189 |
Added buffering code in XML::getBody - it *was* basically appending every single character individually - slow. |
|---|
| 190 |
</note> |
|---|
| 191 |
<note priority="veryhigh" time="987630068" done="987640630"> |
|---|
| 192 |
Instead of reading entire database with getline(in, str) I now use the size returned by stat to pre-allocate a buffer and load it into that. |
|---|
| 193 |
</note> |
|---|
| 194 |
</note> |
|---|
| 195 |
<note priority="high" time="987554577" done="988586079"> |
|---|
| 196 |
Add --global-database <file> and -G/--global option to use it. Replaces clunky --fallback-database semantics. Thanks again to Alexei Gilchrist. |
|---|
| 197 |
</note> |
|---|
| 198 |
<note priority="low" time="987554607" done="988071870"> |
|---|
| 199 |
Re-add numbered priorities for speedy entry. Alexei Gilchrist bought this up as an idea. |
|---|
| 200 |
</note> |
|---|
| 201 |
<note priority="medium" time="987554720"> |
|---|
| 202 |
Adding optional "hidden" notes to notes. Kind of like annotations. Invoke an external editor for this facility? (idea courtesy of Alexei Gilchrist). |
|---|
| 203 |
<comment> |
|---|
| 204 |
I have added a comment field for each item, as evidenced by this. |
|---|
| 205 |
</comment> |
|---|
| 206 |
</note> |
|---|
| 207 |
<note priority="low" time="987556665"> |
|---|
| 208 |
Some sort of integration with CVS would be cool. Maybe you could do: "todo --cvs-commit" and it would commit to CVS using all the completed TODO items since the last commit as the change notes. That would be exceptionally cool. |
|---|
| 209 |
</note> |
|---|
| 210 |
<note priority="high" time="987639265" done="987821157"> |
|---|
| 211 |
Go binary? This would definitely make it run a lot faster...but is that actually where the bottleneck is? (Well, this was definitely the bottleneck) |
|---|
| 212 |
</note> |
|---|
| 213 |
<note priority="veryhigh" time="987673942" done="988628559"> |
|---|
| 214 |
Add --timeout <n> to only show database if shown more than <n> seconds ago. |
|---|
| 215 |
</note> |
|---|
| 216 |
<note priority="medium" time="987715214"> |
|---|
| 217 |
Add encryption using crash::Encrypt classes. This will probably require MIME support, or something similar, in order to actually store the resultant binary information. |
|---|
| 218 |
<comment> |
|---|
| 219 |
I have Base64 stream support, so this would be trivial now. |
|---|
| 220 |
</comment> |
|---|
| 221 |
<note priority="medium" time="987882179"> |
|---|
| 222 |
Alternatively, just pass the encryption stream to the database saving routine. This would require rewriting the Loaders interface (again). |
|---|
| 223 |
</note> |
|---|
| 224 |
</note> |
|---|
| 225 |
<note priority="medium" time="987723307"> |
|---|
| 226 |
Add per-database options - brilliant for changing views on different databases. |
|---|
| 227 |
<note priority="medium" time="988071964"> |
|---|
| 228 |
Problem with this is that the options are parsed *before* the database is loaded, which would probably mean reloading the database to have the new options take effect. |
|---|
| 229 |
</note> |
|---|
| 230 |
</note> |
|---|
| 231 |
<note priority="veryhigh" time="987864991" done="987866368"> |
|---|
| 232 |
Add backing up of database (--backup [<n>], where <n> is the number of backups to keep). |
|---|
| 233 |
</note> |
|---|
| 234 |
<note priority="medium" time="988583933"> |
|---|
| 235 |
Add percentage completions? |
|---|
| 236 |
</note> |
|---|
| 237 |
<note priority="medium" time="988585139"> |
|---|
| 238 |
i18n support? |
|---|
| 239 |
</note> |
|---|
| 240 |
<note priority="medium" time="988628849" done="988671949"> |
|---|
| 241 |
Detect terminal width and use that instead of hardwired 80 characters. |
|---|
| 242 |
</note> |
|---|
| 243 |
<note priority="medium" time="988727782"> |
|---|
| 244 |
Rewrite filtering code so it's generic (as the sorting code is). |
|---|
| 245 |
</note> |
|---|
| 246 |
<note priority="medium" time="989159408"> |
|---|
| 247 |
Write functions to do envar expansion, C string escaping, etc. |
|---|
| 248 |
</note> |
|---|
| 249 |
<note priority="high" time="989597943" done="993654280"> |
|---|
| 250 |
Add search facility. This could be done as a filter: todo --filter /string, which would make it simple when ommitting the '--filter': todo /string. |
|---|
| 251 |
</note> |
|---|
| 252 |
<note priority="high" time="990555168"> |
|---|
| 253 |
Change everything to be an attribute (except, perhaps, the item body). This will allow things like timers and so forth (eg. todo --add-attrib 'start=%D'). |
|---|
| 254 |
<note priority="veryhigh" time="989408664"> |
|---|
| 255 |
Timed events. eg. todo --set text="This is funny"@07/03/2001-10:53 12 ... this would change the text of item 12 to "This is funny" on the 07/03/2001 at 10:53 in the morning. |
|---|
| 256 |
</note> |
|---|
| 257 |
<note priority="high" time="1040227861" done="1040227866"> |
|---|
| 258 |
This is a test |
|---|
| 259 |
</note> |
|---|
| 260 |
</note> |
|---|
| 261 |
<note priority="low" time="994279770"> |
|---|
| 262 |
Evaluate filters on first use rather than on read. This will allow wildcard filters to actually work. |
|---|
| 263 |
</note> |
|---|
| 264 |
<note priority="medium" time="1002204052"> |
|---|
| 265 |
Categories - optionally assign a note a category, then you can filter on that category. |
|---|
| 266 |
</note> |
|---|
| 267 |
<note priority="medium" time="1002594023"> |
|---|
| 268 |
Make priority names and number of them user-defineable. |
|---|
| 269 |
</note> |
|---|
| 270 |
<note priority="veryhigh" time="1003071835"> |
|---|
| 271 |
Fix situation where doing "todo -r -5" goes into an endless loop. |
|---|
| 272 |
</note> |
|---|
| 273 |
<note priority="veryhigh" time="1036076001"> |
|---|
| 274 |
Fix problems with * expansion. It doesn't appear to work at all... |
|---|
| 275 |
</note> |
|---|
| 276 |
</todo> |
|---|