From f9bb1350683b78f7546f97fc8189faa5a7f08c7e Mon Sep 17 00:00:00 2001 From: Paul Mansfield Date: Mon, 22 Jun 2009 22:47:13 +0100 Subject: [PATCH] Fixing prepend and priority issue. Check for priority, delete if found, prepend and add back priority. Uses awk and sed, works in linux. --- todo.sh | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/todo.sh b/todo.sh index 8dfa206..f2ba17b 100755 --- a/todo.sh +++ b/todo.sh @@ -818,13 +818,29 @@ case $action in else input=$* fi + + # Test for then set priority + if [ `sed "$item!d" "$TODO_FILE"|grep -c "^(\\w)"` -eq 1 ]; then + priority=$(sed "$item!d" "$TODO_FILE" | awk -F '\\(|\\)' '{print $2}') + fi - if sed -i.bak $item" s|^.*|$input &|" "$TODO_FILE"; then - newtodo=$(sed "$item!d" "$TODO_FILE") + # If priority isn't set prepend + if [ -z $priority ]; then + if sed -i.bak $item" s|^.*|$input &|" "$TODO_FILE"; then + newtodo=$(sed "$item!d" "$TODO_FILE") [ $TODOTXT_VERBOSE -gt 0 ] && echo "$item: $newtodo" - else - echo "TODO: Error prepending task $item." - fi + else + echo "TODO: Error prepending task $item." + fi + # If priority is set, remove priority, prepend and add back priority + else + if sed -i.bak -e "$item s/^(.) //" -e "$item s|^.*|\($priority\) $1 &|" "$TODO_FILE"; then + newtodo=$(sed "$item!d" "$TODO_FILE") + [ $TODOTXT_VERBOSE -gt 0 ] && echo "$item: $newtodo" + else + echo "TODO: Error prepending task $item." + fi + fi cleanup;; "pri" | "p" )