developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
* Added --purge [<days-old>] option which lets you purge old completed items.
* 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.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
The side effect of this update is that the package compiles with gcc3 now :-)
Changes from version 0.1.7:
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 <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 <CTRL-N> 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 :\.
* Finally tracked down the VERY nasty slowdown (at times up to a minute or
more) 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 and saved.
* Fixed a few minor man page bugs.
(the contrib/ files discussed here go in ${PREFIX}/share/examples/devtodo under pkgsrc)
CXXFLAGS, and LDFLAGS by the buildlink.mk files so remove the extra
definitions to add them from the package Makefiles. As advised by the
bsd.buildlink.mk file, also ensure that the buildlink.mk files are
included prior to defining any package-specific CFLAGS/LDFLAGS to ensure
that the buildlink directories are at the head of the compiler search
paths.
and ${BUILDLINK_LIBDIR} to find headers and libraries. Note that this
package uses libtool with USE_LIBTOOL and LTCONFIG_OVERRIDE. Look for
tputs() in libtermcap. Add patch to ensure that the proper LDFLAGS are
passed when linking the executable.
Changelog:
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 [<seconds>] 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 <tag>=<format-string> to modify them as well as the option
--use-format <tag>=<tag> 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.
o add quoting to MAKE_ENV
o add patch-aa to install scripts to PREFIX/share/examples/devtodo
instead of hardcoded SYSCONFDIR/profile.d
o install todorc into PREFIX/share/examples/devtodo instead of
PREFIX/etc/todorc
o update to version 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 <filename> 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 [<n>] to do this, where <n> 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).
* 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 <file> which is used to change the default filename used. eg.
--database .todo is the default behaviour. The other is
--fallback-database <file> 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.