Re: Bug: org-toggle-item removes tags from next heading [9.3.7 (release_9.3.7-696-g82b496 @ mixed installation! /home/n/.emacs.d/straight/build/org/ and /home/n/.emacs.d/straight/build/org/eln-x86_64-

2020-08-02 Thread Kyle Meyer
No Wayman writes:

> Added the test in the attached patch.

Thanks.  Applied (093b474e6), appending a period to the comment in the
test for consistency.



Re: Bug: org-toggle-item removes tags from next heading [9.3.7 (release_9.3.7-696-g82b496 @ mixed installation! /home/n/.emacs.d/straight/build/org/ and /home/n/.emacs.d/straight/build/org/eln-x86_64-

2020-08-02 Thread No Wayman


Kyle Meyer  writes:


Would you mind updating the patch to add a
test case along the lines of your ECM to 
test-org-list/toggle-item?


Thanks.


Added the test in the attached patch.
Thanks, Kyle.

~ Nicholas Vollmer

>From 838a6a548396eecfa958161abb66f0a1719a9aef Mon Sep 17 00:00:00 2001
From: Nicholas Vollmer 
Date: Fri, 31 Jul 2020 18:38:11 -0400
Subject: [PATCH] org-list: Operate on single line if no active region

* lisp/org-list.el (org-toggle-item): Operate on single line if no
active region.
---
 lisp/org-list.el  | 2 +-
 testing/lisp/test-org-list.el | 7 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/lisp/org-list.el b/lisp/org-list.el
index fb061b054..c43630d05 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -3032,7 +3032,7 @@ With a prefix argument ARG, change the region in a single item."
 (if (org-region-active-p)
 	(setq beg (funcall skip-blanks (region-beginning))
 	  end (copy-marker (region-end)))
-  (setq beg (funcall skip-blanks (point-at-bol))
+  (setq beg (point-at-bol)
 	end (copy-marker (point-at-eol
 ;; Depending on the starting line, choose an action on the text
 ;; between BEG and END.
diff --git a/testing/lisp/test-org-list.el b/testing/lisp/test-org-list.el
index abd1a3c83..24a55464d 100644
--- a/testing/lisp/test-org-list.el
+++ b/testing/lisp/test-org-list.el
@@ -1109,6 +1109,13 @@ b. Item 2"
 	  (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:\n\n\nText"
 	(org-toggle-item nil)
 	(buffer-string
+  ;; When no region is marked and point is on a blank line
+  ;; only operate on current line
+  (should
+   (equal " \n* H :tag:"
+	  (org-test-with-temp-text " \n* H :tag:"
+	(org-toggle-item nil)
+	(buffer-string
   ;; When a region is marked and first line is a headline, all
   ;; headlines are turned into items.
   (should
-- 
2.27.0



Re: Bug: org-toggle-item removes tags from next heading [9.3.7 (release_9.3.7-696-g82b496 @ mixed installation! /home/n/.emacs.d/straight/build/org/ and /home/n/.emacs.d/straight/build/org/eln-x86_64-

2020-08-01 Thread Kyle Meyer
No Wayman writes:

> I've attached a patch which removes the call to skip-blanks if 
> there is no active region.
> This works for me with the ECM I've provided.
> Not sure if it will have any adverse repercussions outside of 
> that.

Taking a quick look, I don't spot anything.  And the org-list tests
still pass with the change.  Would you mind updating the patch to add a
test case along the lines of your ECM to test-org-list/toggle-item?

Thanks.



Re: Bug: org-toggle-item removes tags from next heading [9.3.7 (release_9.3.7-696-g82b496 @ mixed installation! /home/n/.emacs.d/straight/build/org/ and /home/n/.emacs.d/straight/build/org/eln-x86_64-

2020-07-31 Thread No Wayman


I've attached a patch which removes the call to skip-blanks if 
there is no active region.

This works for me with the ECM I've provided.
Not sure if it will have any adverse repercussions outside of 
that.


>From ada4f2a55b7a701aac02d4fc167be4b46e72f2c9 Mon Sep 17 00:00:00 2001
From: Nicholas Vollmer 
Date: Fri, 31 Jul 2020 18:38:11 -0400
Subject: [PATCH] org-list: Operate on single line if no active region

* lisp/org-list.el (org-toggle-item): Operate on single line if no
active region.
---
 lisp/org-list.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-list.el b/lisp/org-list.el
index fb061b054..c43630d05 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -3032,7 +3032,7 @@ With a prefix argument ARG, change the region in a single item."
 (if (org-region-active-p)
 	(setq beg (funcall skip-blanks (region-beginning))
 	  end (copy-marker (region-end)))
-  (setq beg (funcall skip-blanks (point-at-bol))
+  (setq beg (point-at-bol)
 	end (copy-marker (point-at-eol
 ;; Depending on the starting line, choose an action on the text
 ;; between BEG and END.
-- 
2.27.0



Bug: org-toggle-item removes tags from next heading [9.3.7 (release_9.3.7-696-g82b496 @ mixed installation! /home/n/.emacs.d/straight/build/org/ and /home/n/.emacs.d/straight/build/org/eln-x86_64-pc-l

2020-07-31 Thread No Wayman



If `org-toggle-item' is called between the text of an entry and 
the next heading,

it removes the tags from the next heading.

ECM:

With the following Org markup in a buffer and point denoted by 
"|":


#+begin_example
,* First

Some text
|

,** Second :tag:
#+end_example

invoking `org-toggle-item' removes the second heading's tags, 
resulting in:


#+begin_example
,* First

Some text
|

,** Second
#+end_example

`org-toggle-item's documentation claims:

Convert headings or normal lines to items, items to normal 
lines.
If there is no active region, only the current line is 
considered.


Though this doesn't seem to be the case here. There is no active 
region, so I would expect it to do nothing in this case.


I stepped through `org-toggle-item' and I believe it's because of 
the following logic:


 >;; Determine boundaries of changes.
 >(if (org-region-active-p)

(setq beg (funcall skip-blanks (region-beginning))

 >end (copy-marker (region-end)))
   >(setq beg (funcall skip-blanks (point-at-bol))
   >end (copy-marker (point-at-eol

Blank lines are being skipped regardless of whether region is 
active or not.