Subject: bug#32343: closed (Re: bug#32343: Acknowledgement (27.0.50; Todo mode bugs involving done items separator))

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 08 Aug 2018 10:10:02 +0000

Your bug report

#32343: 27.0.50; Todo mode bugs involving done items separator

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
32343: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32343
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#32343: Acknowledgement (27.0.50; Todo mode bugs involving done items separator)
From: Stephen Berman <[email-masked]>
To: [email-masked]
Date: Wed, 08 Aug 2018 12:09:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Closing.

Subject: 27.0.50; Todo mode bugs involving done items separator
From: Stephen Berman <[email-masked]>
To: [email-masked]
Date: Wed, 01 Aug 2018 14:30:00 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

In todo-mode the done items separator is the divider (displayed as a
double line by default) between the todo and done items sections of each
todo category; it is not reachable by todo-mode navigation commands, but
it is reachable e.g. by C-n and C-p.  The current code does not take
this possibility into account, and when certain todo-mode commands are
invoked with point on the separator, this can lead to the following
unexpected results, errors and even file corruption:

- When point is at BOL of done items separator, typing `i h' inserts the
  new item as the penultimate in the category.
- When point is on EOL of done items separator, typing `i h' inserts the
  new item as the first in the category.
- When point is at BOL or EOL of done items separator, typing `i p'
  makes a copy of the last todo item.
- When point is on done items separator, typing `e' allows editing the
  final non-done item.
- When point is at BOL or EOL of done items separator, typing `p' moves
  to the second to last todo item.
- When point is at BOL or EOL of done items separator, typing `*' marks
  or unmarks the last todo item.
- When point is at BOL of done items separator, typing `H' (to enable
  but not to disable item highlighting) or `m', `k', `d', `r' or `#'
  raises the error "Invalid search bound (wrong side of point)" in
  todo-item-end; `d', `r' and `#' also move point to EOL.
- When point is at EOL of done items separator, typing `m' or `k'
  highlights the last todo item, the space below it and the done items
  separator; `d' deletes the last todo item (but the categories sexp
  show one less todo and one more done item) as well as the done items
  separator and raises the error "Category %s is missing
  todo-category-done string" in todo-category-select; `r' raises and `#'
  reprioritizes last item but both delete done items separator.
- When item highlighting is enabled and the done items section is
  visible, then while repeating C-n or the down arrow, the item
  highlighting stops as soon as point moves to the line displaying the
  done items separator: Error in post-command-hook (hl-line-highlight):
  (error "Invalid search bound (wrong side of point)"); and 'H' must be
  pressed twice to restore item highlighting.

I have fixes for these bugs and will commit them and tests to master;
this bug report is for reference in the commit message.

In GNU Emacs 27.0.50 (build 10, x86_64-pc-linux-gnu, GTK+ Version 3.22.28)
 of 2018-08-01 built on rosalinde
Repository revision: cabe9e5126bfed05643d595589031cce8a404255
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Linux From Scratch