Mark Stosberg edited this page Feb 3, 2014 · 25 revisions CHANGELOG

12/6/2013 v 2.10

  • Enhancements:
    • Enable term filtering for listcon.
    • Add make install command.
    • Enable use of global config file in /etc/todo/config. make install installs a global config file.
    • Allow use of post_filter_command for listall and listpri.
    • Print usage help for custom action and all passed actions.
    • Allow configuring null data files (done.txt and report.txt) and don’t create them.
    • Color contexts and projects without an add-on, just by setting vars in the config file.
    • Place add-ons in subfolders (for easier git clone).
  • Fixes:
    • Handle -h, shorthelp and help when a Fatal Error happens.
    • Properly replace date when replacing task with priority and date.
    • Fix todo_completion problem with Bash 3.1.
    • Improve code commenting/documentation.
    • Refactor code for speed/better organization.
    • Improve test coverage and test library.
  • todo_completion
    • Remove add date from line completion, ie, ls 10[tab].

4/8/2012 v 2.9

  • Added tab auto-completion of projects and contexts from todo.txt and done.txt. Type @ or + while entering a task.
  • Added new listaddons command displays installed addons.
  • List priorities within a range using listpri. For example, to see tasks prioritized A-B, use listpri A-B
  • Fixed various cosmetic issues, bugs, and added developer test library enhancements.

9/13/2011 v 2.8

  • User Enhancements
    • listpri/lsp now filters by term. For example, $ lsp A book will only return tasks prioritized A with the word book in them.
    • Improved portability for Dropbox or USB key users: If not specified, checks for a config file in its own directory; default todo.txt location is’s directory
    • Tasks with priority included and auto prepend date on (-t) get the date where expected.
    • Smarter action completion messaging: do, pri, and depri all let you know if a task is already done, prioritized, or deprioritized.
    • Improved script performance thanks to optimized code
  • Developer Enhancements
    • Made more parameters available to offer more control to c?ustom actions (-c, -A, -N, -T)
    • Exposed cleaninput() for use in addons
    • Custom action output no longer prefaced by TODO: so it’s easier to see when the core script vs. addon is performing an action
    • Improved testing framework:
      • Better escaped input handling
      • Abstracted make_action function to test custom action behavior
      • Added tests for source code compliance
      • Cleaner, simpler, modernized, optimized code
  • Bugfixes
    • listpri complains if specified priority is invalid
    • Don’t abort task listing when items contain certain escape sequences (\c \033)
    • Condense whitespace ONLY whe task is quoted; automatically convert CRLF to space
    • Added support for todo directory paths with spaces in them
    • Don’t delete | (pipe) from task input
    • -+ and -@ no longer break task coloring if context or project appears at the end of the line

8/3/2010 v 2.7

  • Cleanup: help messages, consistent output messages
  • Added generalization of the PRI_X color support to all priorities
  • Added highlighting of done, but not yet archived tasks via COLOR_DONE
  • Exporting die() function for use in custom commands
  • ‘prepend’ and ‘replace’ actions keep prepended date, ‘append’ considers sentence delimiters
  • Color map (BLACK, …) now supports spaces in the color definitions, making it possible to override the default ANSI escape codes with e.g. Conky tags (${color black})
  • Tests: several regression tests added

5/11/2010 v 2.6

5/5/2010 v 2.5

5/11/2009 v 2.4

  • Cleanup: removing annoying trailing space on pri tasks
  • Cleanup: Don’t set colors in default todo.cfg.
  • Cleanup: Don’t set sort command in default todo.cfg.
  • Added support for TODOTXT_FINAL_FILTER to provide a final custom list filter (a67d0de6254bed5f066e21f1cdcef5bbd8c34ec4)
  • Added support for custom sorting (can set in todo.cfg)
  • Added parameterize for .todo.actions.d directory
  • Bugfix: listcon and listproj now work correctly on Mac OS X 10.5
  • Bugfix: pri accepted priorities of more than a single letter
  • Bugfix: support commands combination for TODOTXT_SORT_COMMAND; e.g. piped commands can be used: export TODOTXT_SORT_COMMAND=" env LC_COLLATE=C sort -f -k2 – | grep -m 10 .")
  • Bugfix: Replace now echoes old item AND new item, like it used to
  • Bugfix: Depri no longer wipes out tasks with more than just the priority in parentheses
  • Bugfix: Now throws an error if you try to prioritize with more than one letter, ie, pri AA doesn’t work any more.
  • Tests: Several regression tests added.

4/2/2009 v 2.3

  • Separated _list function for reuse by various versions of list command to reduce duplicate code
  • Added Hide priority, context, and projects options now enabled -P, -@ and -+
  • Exported variables for use in add-ons
  • Enabled recursive call of from add-ons
  • Set ls as the default action
  • Added -vv option for debugging output
  • Various cleanup
  • Added short usage statement (that fits on one screen) with -h
  • Added Makefile dist infrastructure for versioned releases in Downloads area on GitHub


  • For awhile here during the GitHub transition, we stripped the version # from and updated it kind of willy-nilly, so we’re back-versioning all unversioned copies v 2.2.

2/23/2009 v 2.1

  • NEW FEATURE: Added “pluggability” with ~/.todo.actions.d/ support (tx Tammy and Ed for pointing it out)
  • NEW FEATURE: Added -t param, off by default. When specified, it automatically prepends the current date to new todo’s on add
  • NEW FEATURE: Searches for more Unix-y ~/.todo.cfg if ~/todo.cfg doesn’t exist (tx Ed
  • BUG FIX: Corrected “ambiguous redirect” bug with done file (tx Jeff
  • BUG FIX: Corrected usage and help message with new params
  • BUG FIX: Corrected config file miscomment about colors

2/17/2009, v 2.0.1

  • BUG FIX: Restored -d parameter functionality broken in 2.0 (d’oh, thanks Jason, you made the changelog! )

2/17/2009, v 2.0

  • NEW COMMAND addto [DEST] “Text to add” will append text to any file in the todo directory, like ideas.txt or maybelater.txt.
  • NEW COMMAND mv # [DEST] will move a task from todo.txt to another file [DEST] in the todo directory, like if you decide your “Learn French” task should go into your maybelater.txt file.
  • NEW COMMAND depri # removes priority from a task.
  • NEW COMMAND rm/del # [TERM] will delete just the [TERM] from the task on line # in todo.txt.
  • NEW COMMAND: listfile | lf [SRC] [TERM] will list the contents of any text file in the todo directory, and filter by keyword [TERM].
  • NEW COMMAND: listcon | lsc and listproj | lsprj lists contexts and projects, respectively, that appear in todo.txt. (Requires gawk.)
  • NEW OPTION: On task deletion, line number preservation is on by default (known issue, leaves blank lines). Optional, can be turned off with -n option.
  • NEW OPTION: Autoarchive on task completion is now on by default; can be turned off with -a parameter.
  • FIX: Better error handling throughout for all commands.
  • FIX: Archive now defrags the file (removes blank lines; see line preservation option.)
  • FIX: using /bin/bash instead of /bin/sh
  • EASE OF USE CHANGE: Separated config file into a non hidden dot file.

7/29/2006, v 1.7.3

  • Update: Added short action aliases – add/a, list/ls, listpri/lsp, listall/lsa, prepend/prep, append/app, del/rm

7/28/2006, v 1.7.2

  • Update: do action removes priority from task automatically
  • Update: actions are now case-insensitive (ie, Add will work)
  • Update: listpri automatically capitalizes lowercase priorities
  • Update: listpri now displays friendly error message, and the # of tasks returned in verbose mode

7/21/2006, v 1.7.1

  • I’m a big dummy and didn’t keep track of what I fixed here. Sorry!

7/19/2006, v 1.7

  • New Feature: Interactive add, append, prepend and replace (tx, Ben!)
  • New Feature: Option -f forces delete action and disables interactive input (for
  • New Feature: Action listall displays tasks from both todo.txt and done.txt
  • New Feature: Option -h displays full help message.
  • Update: A very short version of usage message displays by default instead of the long version.
  • Update: -q option deprecated; Use -v to turn on verbose mode
  • Bug fix: No colors display for done tasks (tx, Tanja!)
  • Bug fix: Sort is now case-insensitive (tx, Lonnie!)
  • Style: Comment in info about .todo file being required

7/6/2006, v 1.6.3

  • New feature: Line numbers now padded (up to 100) (thanks, Tanja!)

7/5/2006, v 1.6.2

  • Bug fix: Windows config files with spaces now work (tx Ron)

7/5/2006, v 1.6.1

  • Bug fix: No colors mode (-p) now works as expected
  • Change: The default location of your .todo file is now $HOME/.todo

7/4/2006, v 1.6

  • New feature: New action prepend adds text to an item at the beginning of the line
  • New feature: Configuration file is now separated from script into .todo file
  • New feature: Specify a config file other than .todo using the -d option
  • New feature: New option -q quiets’s chattiness.
  • New feature: New option -V shows version and license information.
  • Change: The option to turn off colors is now -p (no longer -nc as in 1.5.2)

6/26/2006, v 1.5.2

  • Bug fix: Items that start with "x " (no quotes, notice space after x) are archived now to avoid lines that start with a word like ‘xander’ from being archived. (tx, Tannie!)
  • Bug fix: report now only archives items that start with "x " as well.

6/26/2006, v 1.5.1

  • Bug fix: Items with an x in them at all were being deleted on archive with 1.5; all fixed now.

6/24/2006, v 1.5

  • Bug fix: Colors show in OS/X 10.4 (tx SETH & misha)
  • New feature: Option to turn off colors (to avoid characters in piped text files or IM bot), ie todo -nc listpri
  • New feature: A date is added to a completed todo, ie x 2006-06-24 (tx SETH)
  • New feature: remdup action added which removes exact duplicate lines from todo.txt (tx Tannie)
  • New feature: del action now removes any blank lines from todo.txt (tx Tannie)
  • Style: Using sed -i instead of copying tmp file (tx Tannie)

6/17/2006, v 1.4

  • New feature: Tasks are color-coded by priority in Cygwin (Thanks, Abraham, Manuel and Luis!)
  • Bug fix: If you replace/do/append to a non-existent task, your todo.txt is no longer overwritten and the error is handled gracefully. (Thanks, Scott!)
  • Style: Switched endless if-then’s to a case statement, and tightened up wc -l regex. (Thanks, Sash!)

5/29/2006, v 1.3

  • Bug fix: Todo’s are now sorted alphabetically when listed by a term, ie, todo list flowers
  • New feature: Displays the number of newly added todo (Thanks, Amy!)
  • New feature: Confirms whether or not you really want to delete a todo
  • New feature: Displays success messages and confirmations on append, replace, do, etc.
  • Style: Alphabetized command workflow in if/then construction
  • Style: Tightened up sed commands, removed unnecessary grep’s and cat’s (Thanks, Sash!)
  • Style: Added licensing information in comments – (GPL, baby!)
  • Style: Stripped whitespace around number lines from wc results
  • Change: Removed filenames from report.txt format (for easier graphing or Excel imports)

5/15/2006, v 1.2

  • todo list matches multiple TERMs, ie, todo list mac offline will match all lines that contain the words “mac” and “offline”
  • list is case insenstive, ie, todo list Mac will match lines with “mac” and “Mac” in them
  • repri and pri actions combined into pri action (Thanks Mike!)
  • quotes no longer required with add and replace (Thanks Karl!)
  • any priority added to a todo must be uppercase to preserve sort order, enforced now, ie todo pri 1 a will return a usage error.
  • file “sanity checks” and cleanup function, test script and various fantastic stylistic improvements added. Extra big thanks to Karl!

5/12/2006, v 1.1.

  • Supports file paths with spaces (ie “C:\Documents and Settings\gina\todo.txt”

5/11/2006, v 1.0.

  • Consolidated into one master script with usage notes and released.