Open kdonavin opened 6 years ago
@kdonavin Thanks for the bug report. 👍
Can you paste your config file? Can you also paste your todo.txt
file?
The way the append
command should work is to add text to the end of the task. For some reason, yours is putting in the beginning. You've noticed this correctly. I'm wondering why older tasks have this problem, but not newer ones.
I couldn't replicate this on my test, so let's see what's different.
I am happy to post my config
file, although I'd rather not post my entire todo.txt
file because I don't recall whether or not I have personal information in there. But, I can add that it appears in my todo.txt
file that the append is actually creating a new line in todo.txt
that is printed and interpreted as one line in todo.sh
, similar to a carriage return.
config
:# === EDIT FILE LOCATIONS BELOW ===
# Your todo.txt directory (this should be an absolute path)
export TODO_DIR="/Users/kirkwooddonavin/Dropbox/todo-txt"
# Your todo/done/report.txt locations
export TODO_FILE="$TODO_DIR/todo.txt"
export DONE_FILE="$TODO_DIR/done.txt"
export REPORT_FILE="$TODO_DIR/report.txt"
# You can customize your actions directory location
#export TODO_ACTIONS_DIR="$HOME/.todo.actions.d"
# == EDIT FILE LOCATIONS ABOVE ===
# === COLOR MAP ===
## Text coloring and formatting is done by inserting ANSI escape codes.
## If you have re-mapped your color codes, or use the todo.txt
## output in another output system (like Conky), you may need to
## over-ride by uncommenting and editing these defaults.
## If you change any of these here, you also need to uncomment
## the defaults in the COLORS section below. Otherwise, todo.txt
## will still use the defaults!
# export BLACK='\\033[0;30m'
# export RED='\\033[0;31m'
# export GREEN='\\033[0;32m'
# export BROWN='\\033[0;33m'
# export BLUE='\\033[0;34m'
# export PURPLE='\\033[0;35m'
# export CYAN='\\033[0;36m'
# export LIGHT_GREY='\\033[0;37m'
# export DARK_GREY='\\033[1;30m'
# export LIGHT_RED='\\033[1;31m'
# export LIGHT_GREEN='\\033[1;32m'
# export YELLOW='\\033[1;33m'
# export LIGHT_BLUE='\\033[1;34m'
# export LIGHT_PURPLE='\\033[1;35m'
# export LIGHT_CYAN='\\033[1;36m'
# export WHITE='\\033[1;37m'
# export DEFAULT='\\033[0m'
# === COLORS ===
## Uncomment and edit to override these defaults.
## Reference the constants from the color map above,
## or use $NONE to disable highlighting.
#
# Priorities can be any upper-case letter.
# A,B,C are highlighted; you can add coloring for more.
#
# export PRI_A=$YELLOW # color for A priority
# export PRI_B=$GREEN # color for B priority
# export PRI_C=$LIGHT_BLUE # color for C priority
# export PRI_D=... # define your own
# export PRI_X=$WHITE # color unless explicitly defined
# There is highlighting for tasks that have been done,
# but haven't been archived yet.
#
# export COLOR_DONE=$LIGHT_GREY
# There is highlighting for projects and contexts.
#
# export COLOR_PROJECT=$RED
# export COLOR_CONTEXT=$RED
# === BEHAVIOR ===
## customize list output
#
# TODOTXT_SORT_COMMAND will filter after line numbers are
# inserted, but before colorization, and before hiding of
# priority, context, and project.
#
# export TODOTXT_SORT_COMMAND='env LC_COLLATE=C sort -f -k2'
# TODOTXT_FINAL_FILTER will filter list output after colorization,
# priority hiding, context hiding, and project hiding. That is,
# just before the list output is displayed.
#
# export TODOTXT_FINAL_FILTER='cat'
Does that help? If not, I can create a test todo.txt
file and try to reproduce that way.
Accidentally clicked closed.
@kdonavin can you post what td
is aliased to?
alias td
which t
Sure, it is an alias for todo.sh
:
alias td='todo.sh'
I also observe this behavior on Ubuntu 18.04.
I'm unable to replicate this on a very similar setup. Can you patch your todo.sh to include debugging info and send back the output of an incorrect append?
download this patch https://gist.github.com/munkee/7c27d074f1a34863b8b664feb1b835df
and patch like this $ patch -p0 < todo_issue_258.patch
I apologize for the delay. This is the message I get after applying your patch.
[.../bin]>> td append 490 and hours today
+ errmsg='usage: todo.sh append ITEM# "TEXT TO APPEND"'
+ shift
+ item=490
+ shift
+ getTodo 490
+ local item=490
+ '[' -z 490 ']'
+ '[' '' ']'
++ sed '490!d' /Users/kirkwooddonavin/Dropbox/todo-txt/todo.txt
' todo='(A) Schedule WFH and Feb Vaca +Womply
' ']' -z '(A) Schedule WFH and Feb Vaca +Womply
+ [[ -z and ]]
+ input='and hours today'
+ case "$input" in
+ appendspace=' '
+ cleaninput 'for sed'
+ input='and hours today'
+ input='and hours today'
+ '[' 'for sed' = 'for sed' ']'
+ input='and hours today'
+ input='and hours today'
+ input='and hours today'
+ sed -i.bak '490 s|^.*|& and hours today|' /Users/kirkwooddonavin/Dropbox/todo-txt/todo.txt
+ '[' 1 -gt 0 ']'
+ getNewtodo 490
+ local item=490
+ '[' -z 490 ']'
+ '[' '' ']'
++ sed '490!d' /Users/kirkwooddonavin/Dropbox/todo-txt/todo.txt
and hours today'hedule WFH and Feb Vaca +Womply
and hours today' ']'e WFH and Feb Vaca +Womply
and hours today'chedule WFH and Feb Vaca +Womply
and hours today WFH and Feb Vaca +Womply
+ set +x
I got this warning when I patched too:
The problem persists. Before:
After:
Does that help, @munkee
Still can't tell exactly what's causing it to mess up, I can see that everything is going correctly and the same as here until the last 5 lines there. Can you try your commands with TODOTXT_VERBOSE=0. Like this
>> TODOTXT_VERBOSE=0 td append 490 and hours today
and see if perhaps the verbose output (the last few lines) is what is messing up the file.
Also what version of Dropbox is running on the Mac to synchronize it. Is there any other programs that might be automatically doing anything with your todo.txt file out from under the program?
@munkee I am not aware of any other programs that are altering these files, no.
Dropbox version v72.4.136 -- the most current version from Home Brew repos.
Thanks for the TODOTXT_VERBOSE=0
tip. Alas, it did not work, despite successfully halting the verbose printout:
I know this is quite old now, but I have one question, does this only look this way when viewed with todo.sh? i.e. when you edit the actual todo.txt file does the append still look to have failed? I ask as the final sed line looks to have some bash escape code magic going on moving the cursor during the echo of the appended line.
Do you want to request a feature or report a bug?
Reporting a bug
What is the current behavior?
If I append to an "old" line (a todo.txt line created perhaps 24 hours or more prior), the beginning of the line is overwritten with the appended text, instead of appending to the end of the line. The append tool works as expected if I recently added the line to todo.txt
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
todo.sh append Test
to the lineSee the following for erroneous example:
What is the expected behavior?
In contrast to the normal functioning:
todo.sh append
to that line.See this correct example:
Which versions todo.sh are you using?
TODO.TXT Command Line Interface v2.11.0
Which Operating System are you using?
MacOS 10.13.6
Which version of bash are you using?
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)