Changeset 462
- Timestamp:
- 09/06/07 21:42:55 (1 year ago)
- Files:
-
- todo/trunk/ChangeLog (modified) (13 diffs)
- todo/trunk/src/support.cc (modified) (1 diff)
- todo/trunk/src/TodoDB.cc (modified) (2 diffs)
- todo/trunk/src/TodoDB.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
todo/trunk/ChangeLog
r443 r462 1 1 0.1.20 2 *A few bugfixes.3 *Added XML declaration parsing/saving. This is a stop-gap at best, but will2 - A few bugfixes. 3 - Added XML declaration parsing/saving. This is a stop-gap at best, but will 4 4 hopefully be useful to some. 5 *Removed reliance on builtin regex library. Hopefully the completely broken5 - Removed reliance on builtin regex library. Hopefully the completely broken 6 6 version of glibc that instigated the inclusion of it is now out of 7 7 circulation. 8 * Fixed a whole bunch of compiler warnings on more recent GCC versions. 8 - Fixed a whole bunch of compiler warnings on more recent GCC versions. 9 - --not-done now marks sub-tasks as not done. Thanks to an anonymous 10 user for picking this up. 9 11 10 12 0.1.19 11 *Updated my E-Mail address after about a year of having the wrong one :)12 *Removed informational message at top of .todo files as it was rather useless13 - Updated my E-Mail address after about a year of having the wrong one :) 14 - Removed informational message at top of .todo files as it was rather useless 13 15 and actually annoying to some people placing their .todo files under version 14 16 control systems. 15 *Added a XSLT -> XHTML+CSS transform from Francesco Poli.16 *Added a bash completion script from the Gentoo projects maintainer Aaron17 - Added a XSLT -> XHTML+CSS transform from Francesco Poli. 18 - Added a bash completion script from the Gentoo projects maintainer Aaron 17 19 Walker. 18 *Fixed seg fault visible on 64-bit systems but present on all. Thanks to the20 - Fixed seg fault visible on 64-bit systems but present on all. Thanks to the 19 21 Debian project for notifying me and providing a fix. 20 22 21 23 0.1.18 22 *Added --purge [<days-old>] option which lets you purge old completed items.24 - Added --purge [<days-old>] option which lets you purge old completed items. 23 25 Thanks to Jakub Turski for wanting this feature. 24 *Can now use force-colour in the todorc.25 *Various patches from Debian and Gentoo maintainers applied. These fix26 - Can now use force-colour in the todorc. 27 - Various patches from Debian and Gentoo maintainers applied. These fix 26 28 compiler errors on recent GCC versions, uncaught exception when TERM is not 27 29 set, a few man page issues, issues with the BASH scripts and miscellaneous … … 29 31 30 32 0.1.17 31 *Fixed seg-fault when specifying bold colours with the --colour option. Thanks33 - Fixed seg-fault when specifying bold colours with the --colour option. Thanks 32 34 to Tim Peoples for pointing pointing this out. 33 *Renamed regex.{c,h} to c_regex.{c,h} so they don't conflict with Regex.{cc,h}35 - Renamed regex.{c,h} to c_regex.{c,h} so they don't conflict with Regex.{cc,h} 34 36 under operating systems which do not honour case (OS/X and/or Cygwin). Also 35 37 removed -s (strip) from LDFLAGS, as this is not supported on some O/S' (eg. 36 38 OS/X). David Bacher wrote in with these issues. 37 *Modified tod2html.xslt so the todo title is displayed in the page, as well as39 - Modified tod2html.xslt so the todo title is displayed in the page, as well as 38 40 in the page title. 39 *Fixed an issue with not displaying links when timeout was in effect.40 *Added a new 'default' priority which has the following semantics: when adding41 - Fixed an issue with not displaying links when timeout was in effect. 42 - Added a new 'default' priority which has the following semantics: when adding 41 43 a new item it will be priority 'medium', when grafting to an existing item 42 44 the new item will be given the parents priority, and when editing an existing … … 45 47 performed. Devtodo will never prompt for priority with this enabled. Handy for 46 48 putting in your ~/.todorc. 47 *Fixed display issues when summarising multi-line items.48 *Fixed a bug where colours were reset when displaying linked databases.49 - Fixed display issues when summarising multi-line items. 50 - Fixed a bug where colours were reset when displaying linked databases. 49 51 50 52 0.1.16 51 *Made broken links silently fail rather than failing loudly and horribly.52 *Modified the semantics for expanding indices. Now when you use an index with53 - Made broken links silently fail rather than failing loudly and horribly. 54 - Modified the semantics for expanding indices. Now when you use an index with 53 55 no modifier (eg. todo 10, as opposed to todo -10 or todo +10), only one 54 56 level of children is expanded. 55 *Big change is the addition of multi-line items and title texts! This is a57 - Big change is the addition of multi-line items and title texts! This is a 56 58 much requested feature. To use this, you can either pipe text into devtodo: 57 59 cat <<- EOF | tda -p medium … … 63 65 64 66 0.1.15 65 *Added --force-colour option to force use of colour even when not outputting to67 - Added --force-colour option to force use of colour even when not outputting to 66 68 a terminal. Requested by James Troup. 67 *Added a patch sent in by Philipp Buehler which adds support for title strings69 - Added a patch sent in by Philipp Buehler which adds support for title strings 68 70 to the todo2html.xslt XSLT script. 69 *Fixed bug when displaying priorities in TODO list ("mediumriority").70 *Added a MASSIVE patch sent in by Christian Hammond which adds support for71 - Fixed bug when displaying priorities in TODO list ("mediumriority"). 72 - Added a MASSIVE patch sent in by Christian Hammond which adds support for 71 73 linking other todo databases into one single view. This is extremely useful 72 74 for situations where you have a core project directory with sub-directories 73 75 containing unique individual databases. You can link them so they are all 74 76 viewed from the core database. Great work! 75 *tda will now merge all non-quoted arguments into one string to be used for77 - tda will now merge all non-quoted arguments into one string to be used for 76 78 the body text of the item to add. This lets this work: 77 79 tda -p high Need to go to the shop and get some milk 78 80 without needing to do: 79 81 tda -p high "Need to go to the shop and get some milk" 80 *Another bug report by James Troup via the Debian Project. Thanks James and82 - Another bug report by James Troup via the Debian Project. Thanks James and 81 83 Arthur for being long time supporters of the project! 82 *Made doc/scripts.sh more coherent and less convoluted.83 *A variation on the XSLT transform was sent in by Christian Hammond. An84 - Made doc/scripts.sh more coherent and less convoluted. 85 - A variation on the XSLT transform was sent in by Christian Hammond. An 84 86 example of its use is available at http://www.chipx86.com/todo.ml. 85 87 86 88 0.1.14 87 *Fixed a bug where devtodo doesn't work without the TERM variable being set.89 - Fixed a bug where devtodo doesn't work without the TERM variable being set. 88 90 Caused havoc in Bill Carlson's cron job. Thanks for tracking it down Bill. 89 *Fixed some more GCC 3.x compilation problems. I'm still using [io]strstream,91 - Fixed some more GCC 3.x compilation problems. I'm still using [io]strstream, 90 92 as opposed to the more correct [io]stringstream, so that it should still 91 93 compile with older versions of GCC. Fingers crossed. 92 94 93 95 0.1.13 94 *Patch from David Furodet to fix compilation problems on Solaris.95 *Added 'finishing comments'. This allows you to optionally add a comment to an96 - Patch from David Furodet to fix compilation problems on Solaris. 97 - Added 'finishing comments'. This allows you to optionally add a comment to an 96 98 item when you are marking it as done, giving reasons/comments for why you are 97 99 marking it complete. This is really useful. This also breaks backward … … 100 102 101 103 0.1.12 102 *Applied a patch by Michael Tilstra that fixes segfaults when overriding104 - Applied a patch by Michael Tilstra that fixes segfaults when overriding 103 105 colours. 104 *Added a script (contrib/tdrec) to display databases from all sub-directories.106 - Added a script (contrib/tdrec) to display databases from all sub-directories. 105 107 Thanks to Brian Herlihy for the contribution. Modified it slightly so it 106 108 passes arguments to devtodo (such as --summary). 107 *Modified cd, pushd and popd replacement scripts (doc/scripts.sh) so that their109 - Modified cd, pushd and popd replacement scripts (doc/scripts.sh) so that their 108 110 exit status is preserved. Required so things like this work correctly: 109 111 cd doc && echo foo 110 112 Thanks to Erin Quinlan for the fix. 111 *Now displays the index of newly added items when --verbose is on. Thanks to113 - Now displays the index of newly added items when --verbose is on. Thanks to 112 114 James Troup for suggesting this. 113 *Fixed man page inconsistency with '-S' and '-s' for summary mode. Thanks to115 - Fixed man page inconsistency with '-S' and '-s' for summary mode. Thanks to 114 116 James Troup again for picking this up. 115 *Another problem found by James Troup - when grafting, the validity of the117 - Another problem found by James Troup - when grafting, the validity of the 116 118 grafting index was only checked after the new item text was typed. This has 117 119 been recitifed. 118 *Work around for some weirdness when generating RPM's.120 - Work around for some weirdness when generating RPM's. 119 121 120 122 0.1.11 121 *Modified .spec file so it doesn't do an aclocal/autoheader/automake/autoconf123 - Modified .spec file so it doesn't do an aclocal/autoheader/automake/autoconf 122 124 before compiling. Fixes incompatibilities between versions of automake. 123 *Applied a patch sent in by Anreas Amann to fix more incompatibilities with125 - Applied a patch sent in by Anreas Amann to fix more incompatibilities with 124 126 GCC 3.0. 125 127 126 128 0.1.10 127 *Now 'using namespace std;'. It's the standard and it seems as if GCC 3.0129 - Now 'using namespace std;'. It's the standard and it seems as if GCC 3.0 128 130 finally requires it, so in it goes. 129 *Fixed an incompatibility with versions of GCC prior to 3.0 using different131 - Fixed an incompatibility with versions of GCC prior to 3.0 using different 130 132 arguments to std::string::compare. Quite annoying. I replaced it with 131 133 strncmp. 132 *Readline is driving me insane. The example from the readline info page says134 - Readline is driving me insane. The example from the readline info page says 133 135 to use "completion_matches" so I basically copied the code verbatim. But 134 136 some versions don't seem to include the function in the readline header … … 137 139 138 140 0.1.9 139 *I had a bad feeling that including the readline headers would cause problems141 - I had a bad feeling that including the readline headers would cause problems 140 142 and I was right :(. I'm now not including any readline headers of any form, 141 143 so if compilation breaks due to your system readline headers having K&R style 142 144 function declarations, upgrade to the latest version. 143 *Renamed the XSLT examples to reflect their purpose (eg. xslt-example.1 =>145 - Renamed the XSLT examples to reflect their purpose (eg. xslt-example.1 => 144 146 todo2pdf.xslt) 145 147 146 148 0.1.8 147 *Fixed for the spelling of "heirarchical" :)148 *Repatched --mono fix that gets rid of spurious escape sequences (picked up149 - Fixed for the spelling of "heirarchical" :) 150 - Repatched --mono fix that gets rid of spurious escape sequences (picked up 149 151 by Mark Eichin). 150 *Fixed envar expansion broken by event handling modifications. Whoops.151 *Numeric priorities can now be specified on the command line. Christian152 - Fixed envar expansion broken by event handling modifications. Whoops. 153 - Numeric priorities can now be specified on the command line. Christian 152 154 Kurz picked this one up. 153 *Added a new filter for searching through the database. This is done with155 - Added a new filter for searching through the database. This is done with 154 156 the filter '/'. eg. "todo --filter /CVS" will show all items with the word 155 157 CVS in them. This can also be expressed as a shorthand version: "todo /CVS". 156 158 The text is interpreted as a regular expression. 157 *Changed filter behaviour to be more logical. Numeric filters with no sign159 - Changed filter behaviour to be more logical. Numeric filters with no sign 158 160 prefix will now only show the item itself, not children. Prefixing the 159 161 filter with a + will display the children as well and prefixing with a - 160 162 will filter out that item. 161 *Subsequently almost totally rewrote filtering code so it's more logical and163 - Subsequently almost totally rewrote filtering code so it's more logical and 162 164 doesn't break (hopefully). 163 *Short arguments can now be fully merged into one argument. eg.165 - Short arguments can now be fully merged into one argument. eg. 164 166 todo -v -v -f 2-10 165 167 can be represented as: 166 168 todo -vvf2-10 167 *Added an "echo" command for use in ~/.todorc. This can be used for status169 - Added an "echo" command for use in ~/.todorc. This can be used for status 168 170 messages or whatever. eg. 169 171 on save echo Saved $TODODB 170 *Added another PERL script (contrib/changelog2html) to convert directly from172 - Added another PERL script (contrib/changelog2html) to convert directly from 171 173 the ChangeLog to HTML. 172 *Fixed default formatting string for --TODO.173 *James Troup had the suggestion (which is now implemented) of clearing the174 - Fixed default formatting string for --TODO. 175 - James Troup had the suggestion (which is now implemented) of clearing the 174 176 priority as soon as the user hits a key other than enter when editing an 175 177 existing item. 176 *Copied the readline.h and history.h from my system's readline into devtodo's178 - Copied the readline.h and history.h from my system's readline into devtodo's 177 179 source. Hopefully this won't break compiles on any systems :\. 178 180 179 181 0.1.7 180 *Finally tracked down the VERY nasty (at times up to a minute or more)182 - Finally tracked down the VERY nasty (at times up to a minute or more) 181 183 slowdown some users have been experiencing. It turns out that one of the 182 184 recent versions of glibc has a bug in its regex code when dealing with … … 185 187 Thanks to Mark Eichen for pointing me towards several Debian bug tracker 186 188 items about other programs having this same problem. 187 *Added a new directory "contrib" which will be used for anything that users189 - Added a new directory "contrib" which will be used for anything that users 188 190 contribute that is not patched into the main distribution. 189 *XSLT transform courtesy of Mark Eichin, to convert devtodo XML databases into191 - XSLT transform courtesy of Mark Eichin, to convert devtodo XML databases into 190 192 colour PDF's. This is contrib/xslt-example.1. 191 *XSLT contribution for converting devtodo XML databases into HTML, courtesy of193 - XSLT contribution for converting devtodo XML databases into HTML, courtesy of 192 194 Daniel Peterson. This is contrib/xslt-example.2. 193 *I have created an amalgam of the above two XSLT contributions that will195 - I have created an amalgam of the above two XSLT contributions that will 194 196 output a HTML page with colourised items. Completed items are struck out. 195 197 This is a dodgy hack, so if anybody has any enhancements it would be much 196 198 appreciated. 197 *Changed filename of src/todo.cc to src/main.cc so that devtodo will compile199 - Changed filename of src/todo.cc to src/main.cc so that devtodo will compile 198 200 under environments where case is not relevant in filenames (ie. Cygwin under 199 201 M$ Windows). 200 *Added a small PERL script to generate a todo database from a ChangeLog file202 - Added a small PERL script to generate a todo database from a ChangeLog file 201 203 that's in the same format as that used by devtodo. In the contrib directory. 202 204 eg. changelog2todo > changelog.todo && devtodo --database changelog.todo 203 *Added two new events: "load" and "save". This can be used in conjunction205 - Added two new events: "load" and "save". This can be used in conjunction 204 206 with one of the above XSLT files by putting something like the following in 205 207 your ~/.todorc (assuming you have libxlst installed - www.xmlsoft.org): … … 209 211 Which will basically generate a .todo.html file every time a devtodo database 210 212 is modified. 211 *Fixed a few minor man page bugs.213 - Fixed a few minor man page bugs. 212 214 213 215 0.1.6-1 214 *Changed --summary to a toggle so you can use "todo -s" to switch it on or off.216 - Changed --summary to a toggle so you can use "todo -s" to switch it on or off. 215 217 This minimises the use of the shift key ;). 216 *Uncommented two lines so that --priority works once more when editing items.217 *Added RPMage.218 - Uncommented two lines so that --priority works once more when editing items. 219 - Added RPMage. 218 220 219 221 0.1.6 220 *When creating backups, I now make the backed up databases read-only if222 - When creating backups, I now make the backed up databases read-only if 221 223 --paranoid is specified. 222 *A slight modification to the BASH shell script to make it more compatible224 - A slight modification to the BASH shell script to make it more compatible 223 225 (courtesy of Arthur). 224 *Added -S/--summary (and -s/--no-summary to override it if 'summary' is the226 - Added -S/--summary (and -s/--no-summary to override it if 'summary' is the 225 227 default in ~/.todorc) which only displays the first line of todo items. This 226 228 is handy if, like me, you have numerous multi-line items. The shell scripts 227 229 use this by default now, meaning when you cd into a directory only the first 228 230 line of each item will be shown (handy for a quick...summary). 229 *Added --timeout [<seconds>] option. When no second are specified, todo will231 - Added --timeout [<seconds>] option. When no second are specified, todo will 230 232 only display the database if it hasn't been displayed within a number of 231 233 seconds (also specified by using --timeout, but *with* a number of seconds). … … 235 237 updated to use this facility. The access time is used to determine when the 236 238 database was last used (stat.st_atime). 237 *Unified formatting strings into one location and added the generic option239 - Unified formatting strings into one location and added the generic option 238 240 --format <tag>=<format-string> to modify them as well as the option 239 241 --use-format <tag>=<tag> to use them. eg. 240 242 todo --use-format verbose-display=generated 241 *Now attempts to obtain the width of the current terminal from the termcap243 - Now attempts to obtain the width of the current terminal from the termcap 242 244 database (if compile fails (please send me a bug report, and...) re-run 243 245 ./configure with the --without-termcap option). 244 *Added a '%s' output formatting flag which formats item text the same as is246 - Added a '%s' output formatting flag which formats item text the same as is 245 247 done with --summary. 246 *You can use the (undocumented) --dump-config option to dump the current248 - You can use the (undocumented) --dump-config option to dump the current 247 249 config to stdout. This should be usable as a ~/.todorc file pretty much 248 250 as is. Handy to use as a base for your own modifications. 249 *Fixed a minor bug where invalid numeric priority exceptions weren't being251 - Fixed a minor bug where invalid numeric priority exceptions weren't being 250 252 caught. 251 *Added "title" as a defineable colour, seperate from the "info" colour.252 *Integrated some Debian Makefile mojo (thanks go to Arthur Korn).253 *Fixed --paranoid behaviour. The logic to check permissions had become253 - Added "title" as a defineable colour, seperate from the "info" colour. 254 - Integrated some Debian Makefile mojo (thanks go to Arthur Korn). 255 - Fixed --paranoid behaviour. The logic to check permissions had become 254 256 commented out in the move to multiple loaders. 255 *Added an "exec" command to the ~/.todorc. This can be used to execute257 - Added an "exec" command to the ~/.todorc. This can be used to execute 256 258 shell commands from within devtodo, although it's really only useful in 257 259 conjunction with triggers (see below). In addition, the environment variable 258 260 TODODB will contain the name of the current database. 259 *Added event "triggers". These are useful for modifying the behaviour of261 - Added event "triggers". These are useful for modifying the behaviour of 260 262 devtodo. A perfect example of a use for this is to trap the "create" trigger 261 263 so that when a new database is created todo will remove world and group … … 265 267 exec chmod 600 $TODODB 266 268 } 267 *Modified Makefile.am in src and doc to support relocatable installs (via269 - Modified Makefile.am in src and doc to support relocatable installs (via 268 270 automakes DESTDIR variable). 269 271 270 272 0.1.5-1 271 *Fixed a nasty Makefile bug that can, under certain circumstances, cause273 - Fixed a nasty Makefile bug that can, under certain circumstances, cause 272 274 the build/install to fail. 273 275 274 276 0.1.5 275 *Added a binary database format. The default is still XML, but you can277 - Added a binary database format. The default is still XML, but you can 276 278 change this using the new --database-loaders option. You can transparently 277 279 convert your existing XML databases to binary format (or vice-versa) by … … 283 285 goes awry, manually fixing the XML database is *much* easier. But if you do 284 286 use it, it might be an idea to use it in conjunction with --backup. 285 *Added user-defineable formatting for both display output and TODO generated287 - Added user-defineable formatting for both display output and TODO generated 286 288 output. This is cool. Look for the section FORMATTING in the man page. 287 *Added a new filter, which I've wanted for ages. It constists of a single '-',289 - Added a new filter, which I've wanted for ages. It constists of a single '-', 288 290 '+' or '='. A '-' stops display of all items except those explicitly specified 289 291 in the rest of the filter whereas a '+' overrides all other filters to display … … 293 295 display *only* the numbers specified if the = (or no) prefix is used - see 294 296 two points down for more information). 295 *Modified the numeric filters. Ranges can now be specified by doing this:297 - Modified the numeric filters. Ranges can now be specified by doing this: 296 298 todo --filter 1-20. If a '-' sign precedes the range it explicitly excludes 297 299 all these items. This can also be used in most other places indices are used. 298 300 ie. todo --done 10.1-20 would mark items 10.1 through 10.20 as done. 299 *Modified behaviour of numeric filters slightly. If prefix is '=' or none,301 - Modified behaviour of numeric filters slightly. If prefix is '=' or none, 300 302 *only* those items are displayed. Before, this was a nop. 301 *Patch to todorl.h courtesy of Philippe M. Chiasson that fixes compilation303 - Patch to todorl.h courtesy of Philippe M. Chiasson that fixes compilation 302 304 problems on RH 7.0. 303 *Priority defaults to medium if a blank line is entered at the "priority>"305 - Priority defaults to medium if a blank line is entered at the "priority>" 304 306 prompt (thanks to Alexei Gilchrist for this idea, along with quite a few 305 307 others :)) 306 *Removed --fallback-database - the semantics were too clunky and generally308 - Removed --fallback-database - the semantics were too clunky and generally 307 309 confusing. 308 *Added --global-database <filename> and -G,--global to replace310 - Added --global-database <filename> and -G,--global to replace 309 311 --fallback-database. Basically, you specify a file with --global-database 310 312 (defaults to ~/.todo_global) then whenever you pass -G or --global to todo it 311 313 will use the global database. Much simpler than the way --fallback-database 312 314 behaved. This idea was courtesy, once again, of Alexei Gilchrist. Good stuff! 313 *todo can now automatically backup the database to a user specified number315 - todo can now automatically backup the database to a user specified number 314 316 of levels. Use the option --database [<n>] to do this, where <n> is the 315 317 optional number of revisions to keep (defaults to 1). This option is best 316 318 specified in your ~/.todorc. 317 *Numbers can once again be used to specify priorities when entering them from319 - Numbers can once again be used to specify priorities when entering them from 318 320 the 'priority>' prompt (requested by Alexei Gilchrist). 319 321 320 322 0.1.4 321 *Added version checking so that the binary won't accept databases from323 - Added version checking so that the binary won't accept databases from 322 324 future versions. The actual behaviour is that minor revision differences 323 325 produce a warning while major revision differences cause an error. 324 *Added a patch from Arthur Korn that allows the bash scripts to cd into326 - Added a patch from Arthur Korn that allows the bash scripts to cd into 325 327 directories with spaces. 326 *Fixed a few man page problems, again courtesy of Arthur (I swear this328 - Fixed a few man page problems, again courtesy of Arthur (I swear this 327 329 guy doesn't sleep!) 328 *Changed primary binary to 'devtodo', with a convenience symlink, 'todo'.330 - Changed primary binary to 'devtodo', with a convenience symlink, 'todo'. 329 331 Also changed the man page filename to reflect this. The user should see 330 332 no actual difference though, as symlinks with the old names exist. 331 *Fixed a bug where todo would segfault if ^D was pressed while editing a333 - Fixed a bug where todo would segfault if ^D was pressed while editing a 332 334 line. Thanks to Matt Kraai for picking this up. The problem was due to 333 335 not handling a NULL return value from readline. 334 *More man page fixes (this time, thanks again go to Matt).335 *You can now specify more than one item index on the command line as336 - More man page fixes (this time, thanks again go to Matt). 337 - You can now specify more than one item index on the command line as 336 338 seperate arguments. Previously, a comma was required and if multiple 337 339 arguments were used the last one was used. Arthur picked this one up. 338 *Added parsing of /etc/todorc (actually, the location is specified by the340 - Added parsing of /etc/todorc (actually, the location is specified by the 339 341 --sysconfdir argument to configure, so it will probably be 340 342 /usr/local/etc/todorc on most peoples systems). 341 *Added awareness of the TODORC environment variable. This specifies the343 - Added awareness of the TODORC environment variable. This specifies the 342 344 RC file to parse on startup. TODORC=$HOME/.todorc is the default 343 345 behaviour. This idea was thanks to Claude. Claude also suggests, quite 344 346 rightly, that it would be useful for specifying a system-wide todorc 345 347 file by putting TODORC=/etc/todorc in /etc/profile or somewhere similar. 346 *Added two new arguments for modifying the database used. The first is348 - Added two new arguments for modifying the database used. The first is 347 349 --database <file> which is used to change the default filename used. eg. 348 350 --database .todo is the default behaviour. The other is … … 350 352 can be found. By default there is no fallback database. Both of these 351 353 options can be specified in the .todorc. 352 *Environment variables can now be used in the ~/.todorc. This is especially354 - Environment variables can now be used in the ~/.todorc. This is especially 353 355 useful for something like 'fallback-database $HOME/.todo'. 354 *Finally fixed the bug where > and & were not being correctly356 - Finally fixed the bug where > and & were not being correctly 355 357 interpreted. 356 *Fixed a long-time bug where wraptext() was wrapping the first358 - Fixed a long-time bug where wraptext() was wrapping the first 357 359 line prematurely. 358 *Fixed a bug where if the sort order changed, visible indices would not match360 - Fixed a bug where if the sort order changed, visible indices would not match 359 361 parameter indices. 360 *--verbose now displays time between when an item was created and when it was362 - --verbose now displays time between when an item was created and when it was 361 363 completed. 362 *Added --date-format for formatting the display of dates (currently only used364 - Added --date-format for formatting the display of dates (currently only used 363 365 with --verbose). The format is that used by strftime(3) but if strftime is not 364 366 available on a system, ctime(3) is used. 365 *Added fully-featured sorting via the --sort parameter. It is now possible to367 - Added fully-featured sorting via the --sort parameter. It is now possible to 366 368 sort on pretty much anything you can think of; creation time, completed time, 367 369 duration of item, text body, priority and whether an item is done or not. 368 *Added --paranoid option that enables some warnings about permissions. This370 - Added --paranoid option that enables some warnings about permissions. This 369 371 is in response to a user request to not make the .todo file group/world 370 372 accessible. This option will make devtodo warn the user if such a database 371 373 is created. 372 *Removed --sync and --no-sync. You can generate the TODO file with --TODO.374 - Removed --sync and --no-sync. You can generate the TODO file with --TODO. 373 375 374 376 0.1.3 375 *Fixed a MAJOR bug introduced while fixing the non-correlating indices377 - Fixed a MAJOR bug introduced while fixing the non-correlating indices 376 378 where all editing of sub-items caused a seg-fault! This was a bad one. 377 379 Thanks to Ron Bailey for picking this one up. 378 *Added auto-cd scripts for tcsh, courtesy of Matthew Russell.380 - Added auto-cd scripts for tcsh, courtesy of Matthew Russell. 379 381 380 382 381 383 0.1.2 382 *Regex needs sys/types.h to be included before regex.h on BSD - solution384 - Regex needs sys/types.h to be included before regex.h on BSD - solution 383 385 thanks to Ashley Penney 384 *Fixed curses failing to link on Solaris due to the link phase not386 - Fixed curses failing to link on Solaris due to the link phase not 385 387 bringing in the termcap library. Thanks to Josh Wilmes for picking this 386 388 up (subsequent autoconf script snippet shamelessly stolen from librep). 387 *Fixed bug introduced by new colour code where colours were not being reset389 - Fixed bug introduced by new colour code where colours were not being reset 388 390 to the default terminal colour as they should have been. Once again, 389 391 Stephan Hegel picked this one up...thanks again. 390 *Related to the above bug, added a new 'colour' called 'default' which is392 - Related to the above bug, added a new 'colour' called 'default' which is 391 393 the terminals default colour and removed the defineable colour item 392 394 'normal'. 393 *Fixed a fairly major bug that was triggered when changing the priority395 - Fixed a fairly major bug that was triggered when changing the priority 394 396 of an existing item - it caused visible indices not to correlate with 395 397 their actual index. 396 *When grafting a child, the priority of the parent is used by default.397 *Added check for empty rx - FreeBSD doesn't support this.398 *Changed string parameter for Regex = to char const *. This fixes compile398 - When grafting a child, the priority of the parent is used by default. 399 - Added check for empty rx - FreeBSD doesn't support this. 400 - Changed string parameter for Regex = to char const *. This fixes compile 399 401 errors using gcc 2.9.2 udner FreeBSD. 400 *Changed default 'low' colour to un-bolded cyan.401 *Removed '-r' as a short option - this functionality only exists as402 - Changed default 'low' colour to un-bolded cyan. 403 - Removed '-r' as a short option - this functionality only exists as 402 404 --remove now. 403 405 404 406 0.1.1 405 *Bug picked up by Christoph Jaeger relating to the use of a temporary407 - Bug picked up by Christoph Jaeger relating to the use of a temporary 406 408 string in TodoDB::find() has been fixed - there may be more, need to 407 409 investigate further. 408 *Added call to rl_initialize so that ~/.inputrc gets read correctly -410 - Added call to rl_initialize so that ~/.inputrc gets read correctly - 409 411 patch from Ulrich Pfeifer (with slight modifications by me). 410 *Validated options in ~/.todorc so that options like 'add' and 'reparent'412 - Validated options in ~/.todorc so that options like 'add' and 'reparent' 411 413 can't be used. 412 *Added section on colours to the man page.413 *Made configure.in determine whether to use curses or ncurses (a problem414 - Added section on colours to the man page. 415 - Made configure.in determine whether to use curses or ncurses (a problem 414 416 picked up by Stephan Hegel) and abort if readline won't link properly. 415 *A few minor man page fixes (again, thanks to Stephan Hegel) - also moved417 - A few minor man page fixes (again, thanks to Stephan Hegel) - also moved 416 418 the man into configure.in so the version will be automatically updated. 417 *Extracted all readline exports into todorl.h - these are required because419 - Extracted all readline exports into todorl.h - these are required because 418 420 some versions of readline do NOT have C++ compatible headers, that is, the 419 421 most of the functions use implicit parameters which C++ barfs on. 420 *Added --enable-debug to configure phase which removes -s from LDFLAGS422 - Added --enable-debug to configure phase which removes -s from LDFLAGS 421 423 and sets CXXFLAGS to '-Wall -g'. 422 *Added --mono to remove all ANSI escape sequences - useful for the colour424 - Added --mono to remove all ANSI escape sequences - useful for the colour 423 425 impaired terminals (can also be put in ~/.todorc) 424 *Cleaned up the TodoDB class a bit by moving the StreamColour stuff into426 - Cleaned up the TodoDB class a bit by moving the StreamColour stuff into 425 427 the class body itself. 426 428 427 429 0.1.0 428 *Added a ~/.todorc that basically lets you prepend command line arguments430 - Added a ~/.todorc that basically lets you prepend command line arguments 429 431 to todo before it parses command line arguments. This is perfect for 430 432 specifying default filters. My personal favourite is 'filter -children' to 431 433 not display child nodes by default. An example is in the doc sub-directory. 432 *Changed the behaviour of filters slightly in that numeric values in filters434 - Changed the behaviour of filters slightly in that numeric values in filters 433 435 now represent item indices. Prefixed by a '-', this causes the specified 434 436 item to not be displayed. Prefixed by a '+', the specified item will be 435 437 displayed even if other filters inhibit it. 436 *Added --colour facility so that users can override the default colours.437 *Added --reparent so that items can be moved around the tree.438 *If -v is specified, more information is printed out when editing, or adding438 - Added --colour facility so that users can override the default colours. 439 - Added --reparent so that items can be moved around the tree. 440 - If -v is specified, more information is printed out when editing, or adding 439 441 items as well as when adding a title. 440 442 441 443 0.0.9 442 *Initial release.444 - Initial release. todo/trunk/src/support.cc
r443 r462 897 897 string var = str.substr(mark, i - mark); 898 898 899 if (!getenv(var.c_str()) && options.verbose) 900 cout << "notice: no such environment variable '" + var + "'." << endl; 901 out += getenv(var.c_str()); 899 if (!getenv(var.c_str())) { 900 if (options.verbose) 901 cout << "notice: no such environment variable '" + var + "'." << endl; 902 } else 903 out += getenv(var.c_str()); 902 904 } else 903 905 out += '$'; todo/trunk/src/TodoDB.cc
r443 r462 1031 1031 } 1032 1032 1033 int TodoDB::markNotDone(Todo &todo) { 1034 int count = 1; 1035 1036 todo.done = false; 1037 for (multiset<Todo>::iterator i = todo.child->begin(); i != todo.child->end(); i++) 1038 count += markNotDone(const_cast<Todo&>(*i)); 1039 return count; 1040 } 1041 1033 1042 void TodoDB::notdone() { 1034 1043 vector<string> done = options.index, notfound; … … 1039 1048 1040 1049 if (t) { 1041 t->done = false; 1042 marked++; 1050 marked += markNotDone(*t); 1043 1051 if (options.verbose > 1) 1044 1052 cout << "todo: marked '" << *j << "' as not done" << endl; 1045 1046 1053 t->db->setDirty(true); 1047 1054 } else todo/trunk/src/TodoDB.h
r340 r462 110 110 Todo::Priority getPriority(string current = ""); 111 111 int markDone(Todo &todo); 112 int markNotDone(Todo &todo); 112 113 113 114 void formatItem(ostream &out, int depth, Todo const &item, string const &format);
