0.1.20 - A few bugfixes. - Added XML declaration parsing/saving. This is a stop-gap at best, but will hopefully be useful to some. - Removed reliance on builtin regex library. Hopefully the completely broken version of glibc that instigated the inclusion of it is now out of circulation. - Fixed a whole bunch of compiler warnings on more recent GCC versions. - --not-done now marks sub-tasks as not done. Thanks to an anonymous user for picking this up. 0.1.19 - Updated my E-Mail address after about a year of having the wrong one :) - Removed informational message at top of .todo files as it was rather useless and actually annoying to some people placing their .todo files under version control systems. - Added a XSLT -> XHTML+CSS transform from Francesco Poli. - Added a bash completion script from the Gentoo projects maintainer Aaron Walker. - Fixed seg fault visible on 64-bit systems but present on all. Thanks to the Debian project for notifying me and providing a fix. 0.1.18 - Added --purge [] option which lets you purge old completed items. Thanks to Jakub Turski for wanting this feature. - Can now use force-colour in the todorc. - Various patches from Debian and Gentoo maintainers applied. These fix compiler errors on recent GCC versions, uncaught exception when TERM is not set, a few man page issues, issues with the BASH scripts and miscellaneous other things. 0.1.17 - Fixed seg-fault when specifying bold colours with the --colour option. Thanks to Tim Peoples for pointing pointing this out. - Renamed regex.{c,h} to c_regex.{c,h} so they don't conflict with Regex.{cc,h} under operating systems which do not honour case (OS/X and/or Cygwin). Also removed -s (strip) from LDFLAGS, as this is not supported on some O/S' (eg. OS/X). David Bacher wrote in with these issues. - Modified tod2html.xslt so the todo title is displayed in the page, as well as in the page title. - Fixed an issue with not displaying links when timeout was in effect. - Added a new 'default' priority which has the following semantics: when adding a new item it will be priority 'medium', when grafting to an existing item the new item will be given the parents priority, and when editing an existing item its priority will be preserved. An items priority can be overridden on the command line with --priority when any of these actions are performed. Devtodo will never prompt for priority with this enabled. Handy for putting in your ~/.todorc. - Fixed display issues when summarising multi-line items. - Fixed a bug where colours were reset when displaying linked databases. 0.1.16 - Made broken links silently fail rather than failing loudly and horribly. - Modified the semantics for expanding indices. Now when you use an index with no modifier (eg. todo 10, as opposed to todo -10 or todo +10), only one level of children is expanded. - Big change is the addition of multi-line items and title texts! This is a much requested feature. To use this, you can either pipe text into devtodo: cat <<- EOF | tda -p medium This is some multi-line text. EOF Or press to insert a new line when at the devtodo input prompt. 0.1.15 - Added --force-colour option to force use of colour even when not outputting to a terminal. Requested by James Troup. - Added a patch sent in by Philipp Buehler which adds support for title strings to the todo2html.xslt XSLT script. - Fixed bug when displaying priorities in TODO list ("mediumriority"). - Added a MASSIVE patch sent in by Christian Hammond which adds support for linking other todo databases into one single view. This is extremely useful for situations where you have a core project directory with sub-directories containing unique individual databases. You can link them so they are all viewed from the core database. Great work! - tda will now merge all non-quoted arguments into one string to be used for the body text of the item to add. This lets this work: tda -p high Need to go to the shop and get some milk without needing to do: tda -p high "Need to go to the shop and get some milk" - Another bug report by James Troup via the Debian Project. Thanks James and Arthur for being long time supporters of the project! - Made doc/scripts.sh more coherent and less convoluted. - A variation on the XSLT transform was sent in by Christian Hammond. An example of its use is available at http://www.chipx86.com/todo.ml. 0.1.14 - Fixed a bug where devtodo doesn't work without the TERM variable being set. Caused havoc in Bill Carlson's cron job. Thanks for tracking it down Bill. - Fixed some more GCC 3.x compilation problems. I'm still using [io]strstream, as opposed to the more correct [io]stringstream, so that it should still compile with older versions of GCC. Fingers crossed. 0.1.13 - Patch from David Furodet to fix compilation problems on Solaris. - Added 'finishing comments'. This allows you to optionally add a comment to an item when you are marking it as done, giving reasons/comments for why you are marking it complete. This is really useful. This also breaks backward compatibility with previous BINARY formats only. The XML format is not affected. 0.1.12 - Applied a patch by Michael Tilstra that fixes segfaults when overriding colours. - Added a script (contrib/tdrec) to display databases from all sub-directories. Thanks to Brian Herlihy for the contribution. Modified it slightly so it passes arguments to devtodo (such as --summary). - Modified cd, pushd and popd replacement scripts (doc/scripts.sh) so that their exit status is preserved. Required so things like this work correctly: cd doc && echo foo Thanks to Erin Quinlan for the fix. - Now displays the index of newly added items when --verbose is on. Thanks to James Troup for suggesting this. - Fixed man page inconsistency with '-S' and '-s' for summary mode. Thanks to James Troup again for picking this up. - Another problem found by James Troup - when grafting, the validity of the grafting index was only checked after the new item text was typed. This has been recitifed. - Work around for some weirdness when generating RPM's. 0.1.11 - Modified .spec file so it doesn't do an aclocal/autoheader/automake/autoconf before compiling. Fixes incompatibilities between versions of automake. - Applied a patch sent in by Anreas Amann to fix more incompatibilities with GCC 3.0. 0.1.10 - Now 'using namespace std;'. It's the standard and it seems as if GCC 3.0 finally requires it, so in it goes. - Fixed an incompatibility with versions of GCC prior to 3.0 using different arguments to std::string::compare. Quite annoying. I replaced it with strncmp. - Readline is driving me insane. The example from the readline info page says to use "completion_matches" so I basically copied the code verbatim. But some versions don't seem to include the function in the readline header file? Agggggghh. So once again, it's back to using a manually created header file. It seems to work the best. 0.1.9 - I had a bad feeling that including the readline headers would cause problems and I was right :(. I'm now not including any readline headers of any form, so if compilation breaks due to your system readline headers having K&R style function declarations, upgrade to the latest version. - Renamed the XSLT examples to reflect their purpose (eg. xslt-example.1 => todo2pdf.xslt) 0.1.8 - Fixed for the spelling of "heirarchical" :) - Repatched --mono fix that gets rid of spurious escape sequences (picked up by Mark Eichin). - Fixed envar expansion broken by event handling modifications. Whoops. - Numeric priorities can now be specified on the command line. Christian Kurz picked this one up. - Added a new filter for searching through the database. This is done with the filter '/'. eg. "todo --filter /CVS" will show all items with the word CVS in them. This can also be expressed as a shorthand version: "todo /CVS". The text is interpreted as a regular expression. - Changed filter behaviour to be more logical. Numeric filters with no sign prefix will now only show the item itself, not children. Prefixing the filter with a + will display the children as well and prefixing with a - will filter out that item. - Subsequently almost totally rewrote filtering code so it's more logical and doesn't break (hopefully). - Short arguments can now be fully merged into one argument. eg. todo -v -v -f 2-10 can be represented as: todo -vvf2-10 - Added an "echo" command for use in ~/.todorc. This can be used for status messages or whatever. eg. on save echo Saved $TODODB - Added another PERL script (contrib/changelog2html) to convert directly from the ChangeLog to HTML. - Fixed default formatting string for --TODO. - James Troup had the suggestion (which is now implemented) of clearing the priority as soon as the user hits a key other than enter when editing an existing item. - Copied the readline.h and history.h from my system's readline into devtodo's source. Hopefully this won't break compiles on any systems :\. 0.1.7 - Finally tracked down the VERY nasty (at times up to a minute or more) slowdown some users have been experiencing. It turns out that one of the recent versions of glibc has a bug in its regex code when dealing with non-multibyte characters (ie. most of the time). This came to a head because I upgraded to slackware-current, which has this version of glibc. Great. Thanks to Mark Eichen for pointing me towards several Debian bug tracker items about other programs having this same problem. - Added a new directory "contrib" which will be used for anything that users contribute that is not patched into the main distribution. - XSLT transform courtesy of Mark Eichin, to convert devtodo XML databases into colour PDF's. This is contrib/xslt-example.1. - XSLT contribution for converting devtodo XML databases into HTML, courtesy of Daniel Peterson. This is contrib/xslt-example.2. - I have created an amalgam of the above two XSLT contributions that will output a HTML page with colourised items. Completed items are struck out. This is a dodgy hack, so if anybody has any enhancements it would be much appreciated. - Changed filename of src/todo.cc to src/main.cc so that devtodo will compile under environments where case is not relevant in filenames (ie. Cygwin under M$ Windows). - Added a small PERL script to generate a todo database from a ChangeLog file that's in the same format as that used by devtodo. In the contrib directory. eg. changelog2todo > changelog.todo && devtodo --database changelog.todo - Added two new events: "load" and "save". This can be used in conjunction with one of the above XSLT files by putting something like the following in your ~/.todorc (assuming you have libxlst installed - www.xmlsoft.org): on save exec xsltproc $HOME/etc/todo-html.xslt $TODODB > `dirname $TODODB`/.todo.html Which will basically generate a .todo.html file every time a devtodo database is modified. - Fixed a few minor man page bugs. 0.1.6-1 - Changed --summary to a toggle so you can use "todo -s" to switch it on or off. This minimises the use of the shift key ;). - Uncommented two lines so that --priority works once more when editing items. - Added RPMage. 0.1.6 - When creating backups, I now make the backed up databases read-only if --paranoid is specified. - A slight modification to the BASH shell script to make it more compatible (courtesy of Arthur). - Added -S/--summary (and -s/--no-summary to override it if 'summary' is the default in ~/.todorc) which only displays the first line of todo items. This is handy if, like me, you have numerous multi-line items. The shell scripts use this by default now, meaning when you cd into a directory only the first line of each item will be shown (handy for a quick...summary). - Added --timeout [] option. When no second are specified, todo will only display the database if it hasn't been displayed within a number of seconds (also specified by using --timeout, but *with* a number of seconds). For example, by putting this in your ~/.todorc: "timeout 10", then adding "--timeout" when you run devtodo, the database will only be displayed if it hasn't been displayed within 10 seconds. The shell scripts have been updated to use this facility. The access time is used to determine when the database was last used (stat.st_atime). - Unified formatting strings into one location and added the generic option --format = to modify them as well as the option --use-format = to use them. eg. todo --use-format verbose-display=generated - Now attempts to obtain the width of the current terminal from the termcap database (if compile fails (please send me a bug report, and...) re-run ./configure with the --without-termcap option). - Added a '%s' output formatting flag which formats item text the same as is done with --summary. - You can use the (undocumented) --dump-config option to dump the current config to stdout. This should be usable as a ~/.todorc file pretty much as is. Handy to use as a base for your own modifications. - Fixed a minor bug where invalid numeric priority exceptions weren't being caught. - Added "title" as a defineable colour, seperate from the "info" colour. - Integrated some Debian Makefile mojo (thanks go to Arthur Korn). - Fixed --paranoid behaviour. The logic to check permissions had become commented out in the move to multiple loaders. - Added an "exec" command to the ~/.todorc. This can be used to execute shell commands from within devtodo, although it's really only useful in conjunction with triggers (see below). In addition, the environment variable TODODB will contain the name of the current database. - Added event "triggers". These are useful for modifying the behaviour of devtodo. A perfect example of a use for this is to trap the "create" trigger so that when a new database is created todo will remove world and group permissions from it. eg. on create { verbose exec chmod 600 $TODODB } - Modified Makefile.am in src and doc to support relocatable installs (via automakes DESTDIR variable). 0.1.5-1 - Fixed a nasty Makefile bug that can, under certain circumstances, cause the build/install to fail. 0.1.5 - Added a binary database format. The default is still XML, but you can change this using the new --database-loaders option. You can transparently convert your existing XML databases to binary format (or vice-versa) by simply changing the load order. For example, to change from XML to binary, put this in your ~/.todorc: database-loaders binary,xml The next time you modify an XML format database, it will be saved in binary format. The man page has more information. I recommend only using the binary format if you are actually having performance problems, as if something goes awry, manually fixing the XML database is *much* easier. But if you do use it, it might be an idea to use it in conjunction with --backup. - Added user-defineable formatting for both display output and TODO generated output. This is cool. Look for the section FORMATTING in the man page. - Added a new filter, which I've wanted for ages. It constists of a single '-', '+' or '='. A '-' stops display of all items except those explicitly specified in the rest of the filter whereas a '+' overrides all other filters to display all items. A '=' is the default behaviour. This is brilliant if you want to narrow the view down to just one item: todo --filter -,29 (*Note*: Slightly superceded by the modification to the semantics of numeric filters, which now display *only* the numbers specified if the = (or no) prefix is used - see two points down for more information). - Modified the numeric filters. Ranges can now be specified by doing this: todo --filter 1-20. If a '-' sign precedes the range it explicitly excludes all these items. This can also be used in most other places indices are used. ie. todo --done 10.1-20 would mark items 10.1 through 10.20 as done. - Modified behaviour of numeric filters slightly. If prefix is '=' or none, *only* those items are displayed. Before, this was a nop. - Patch to todorl.h courtesy of Philippe M. Chiasson that fixes compilation problems on RH 7.0. - Priority defaults to medium if a blank line is entered at the "priority>" prompt (thanks to Alexei Gilchrist for this idea, along with quite a few others :)) - Removed --fallback-database - the semantics were too clunky and generally confusing. - Added --global-database and -G,--global to replace --fallback-database. Basically, you specify a file with --global-database (defaults to ~/.todo_global) then whenever you pass -G or --global to todo it will use the global database. Much simpler than the way --fallback-database behaved. This idea was courtesy, once again, of Alexei Gilchrist. Good stuff! - todo can now automatically backup the database to a user specified number of levels. Use the option --database [] to do this, where is the optional number of revisions to keep (defaults to 1). This option is best specified in your ~/.todorc. - Numbers can once again be used to specify priorities when entering them from the 'priority>' prompt (requested by Alexei Gilchrist). 0.1.4 - Added version checking so that the binary won't accept databases from future versions. The actual behaviour is that minor revision differences produce a warning while major revision differences cause an error. - Added a patch from Arthur Korn that allows the bash scripts to cd into directories with spaces. - Fixed a few man page problems, again courtesy of Arthur (I swear this guy doesn't sleep!) - Changed primary binary to 'devtodo', with a convenience symlink, 'todo'. Also changed the man page filename to reflect this. The user should see no actual difference though, as symlinks with the old names exist. - Fixed a bug where todo would segfault if ^D was pressed while editing a line. Thanks to Matt Kraai for picking this up. The problem was due to not handling a NULL return value from readline. - More man page fixes (this time, thanks again go to Matt). - You can now specify more than one item index on the command line as seperate arguments. Previously, a comma was required and if multiple arguments were used the last one was used. Arthur picked this one up. - Added parsing of /etc/todorc (actually, the location is specified by the --sysconfdir argument to configure, so it will probably be /usr/local/etc/todorc on most peoples systems). - Added awareness of the TODORC environment variable. This specifies the RC file to parse on startup. TODORC=$HOME/.todorc is the default behaviour. This idea was thanks to Claude. Claude also suggests, quite rightly, that it would be useful for specifying a system-wide todorc file by putting TODORC=/etc/todorc in /etc/profile or somewhere similar. - Added two new arguments for modifying the database used. The first is --database which is used to change the default filename used. eg. --database .todo is the default behaviour. The other is --fallback-database which specifies the database to use if no other can be found. By default there is no fallback database. Both of these options can be specified in the .todorc. - Environment variables can now be used in the ~/.todorc. This is especially useful for something like 'fallback-database $HOME/.todo'. - Finally fixed the bug where > and & were not being correctly interpreted. - Fixed a long-time bug where wraptext() was wrapping the first line prematurely. - Fixed a bug where if the sort order changed, visible indices would not match parameter indices. - --verbose now displays time between when an item was created and when it was completed. - Added --date-format for formatting the display of dates (currently only used with --verbose). The format is that used by strftime(3) but if strftime is not available on a system, ctime(3) is used. - Added fully-featured sorting via the --sort parameter. It is now possible to sort on pretty much anything you can think of; creation time, completed time, duration of item, text body, priority and whether an item is done or not. - Added --paranoid option that enables some warnings about permissions. This is in response to a user request to not make the .todo file group/world accessible. This option will make devtodo warn the user if such a database is created. - Removed --sync and --no-sync. You can generate the TODO file with --TODO. 0.1.3 - Fixed a MAJOR bug introduced while fixing the non-correlating indices where all editing of sub-items caused a seg-fault! This was a bad one. Thanks to Ron Bailey for picking this one up. - Added auto-cd scripts for tcsh, courtesy of Matthew Russell. 0.1.2 - Regex needs sys/types.h to be included before regex.h on BSD - solution thanks to Ashley Penney - Fixed curses failing to link on Solaris due to the link phase not bringing in the termcap library. Thanks to Josh Wilmes for picking this up (subsequent autoconf script snippet shamelessly stolen from librep). - Fixed bug introduced by new colour code where colours were not being reset to the default terminal colour as they should have been. Once again, Stephan Hegel picked this one up...thanks again. - Related to the above bug, added a new 'colour' called 'default' which is the terminals default colour and removed the defineable colour item 'normal'. - Fixed a fairly major bug that was triggered when changing the priority of an existing item - it caused visible indices not to correlate with their actual index. - When grafting a child, the priority of the parent is used by default. - Added check for empty rx - FreeBSD doesn't support this. - Changed string parameter for Regex = to char const *. This fixes compile errors using gcc 2.9.2 udner FreeBSD. - Changed default 'low' colour to un-bolded cyan. - Removed '-r' as a short option - this functionality only exists as --remove now. 0.1.1 - Bug picked up by Christoph Jaeger relating to the use of a temporary string in TodoDB::find() has been fixed - there may be more, need to investigate further. - Added call to rl_initialize so that ~/.inputrc gets read correctly - patch from Ulrich Pfeifer (with slight modifications by me). - Validated options in ~/.todorc so that options like 'add' and 'reparent' can't be used. - Added section on colours to the man page. - Made configure.in determine whether to use curses or ncurses (a problem picked up by Stephan Hegel) and abort if readline won't link properly. - A few minor man page fixes (again, thanks to Stephan Hegel) - also moved the man into configure.in so the version will be automatically updated. - Extracted all readline exports into todorl.h - these are required because some versions of readline do NOT have C++ compatible headers, that is, the most of the functions use implicit parameters which C++ barfs on. - Added --enable-debug to configure phase which removes -s from LDFLAGS and sets CXXFLAGS to '-Wall -g'. - Added --mono to remove all ANSI escape sequences - useful for the colour impaired terminals (can also be put in ~/.todorc) - Cleaned up the TodoDB class a bit by moving the StreamColour stuff into the class body itself. 0.1.0 - Added a ~/.todorc that basically lets you prepend command line arguments to todo before it parses command line arguments. This is perfect for specifying default filters. My personal favourite is 'filter -children' to not display child nodes by default. An example is in the doc sub-directory. - Changed the behaviour of filters slightly in that numeric values in filters now represent item indices. Prefixed by a '-', this causes the specified item to not be displayed. Prefixed by a '+', the specified item will be displayed even if other filters inhibit it. - Added --colour facility so that users can override the default colours. - Added --reparent so that items can be moved around the tree. - If -v is specified, more information is printed out when editing, or adding items as well as when adding a title. 0.0.9 - Initial release.