* [BUG]: unexpected behavior related to org-indent-block
@ 2024-01-11 11:33 gerard.vermeulen
2024-01-11 12:37 ` Ihor Radchenko
0 siblings, 1 reply; 11+ messages in thread
From: gerard.vermeulen @ 2024-01-11 11:33 UTC (permalink / raw)
To: Emacs orgmode
Below, I show 2 commands to be run with point on a source block.
I expect that those commands modify an Org file identically, but
they do not. It fails when `org-indent-block' is called in a
loop after each `(insert (org-element-interpret-data copy))' and
it works when `org-indent-block' is called in a separate loop
after insertion of all `(org-element-interpret-data copy)'s:
#+begin_src emacs-lisp :results silent
(defun make-2-indent-fails ()
"Make 2 modified blocks, but fails."
(interactive)
(let ((copy (org-element-copy (org-element-at-point)))
(n 0))
(delete-region (org-element-begin copy) (org-element-end copy))
(while (< n 2)
(cl-incf n)
(org-element-put-property copy :value (format "copy %s" n))
(insert (org-element-interpret-data copy))
(org-indent-block))))
(defun make-2-indent-works ()
"Make 2 modified blocks, and works."
(interactive)
(let ((copy (org-element-copy (org-element-at-point)))
(n 0))
(delete-region (org-element-begin copy) (org-element-end copy))
(while (< n 2)
(cl-incf n)
(org-element-put-property copy :value (format "copy %s" n))
(insert (org-element-interpret-data copy)))
(org-previous-block n)
(while (> n 0)
(cl-decf n)
(org-indent-block))))
#+end_src
Example block:
---
#+begin_src emacs-lisp
<point>
#+end_src
---
make-2-indent-fails results in
---
#+begin_src emacs-lisp
copy 1
#+end_src
---
make-2-indent-works results in
---
#+begin_src emacs-lisp
copy 1
#+end_src
#+begin_src emacs-lisp
copy 2
#+end_src
---
I think that it is also weird that this bug does not show up in
this ERT test while it does outside ERT:
#+begin_src emacs-lisp :results silent
(ert-deftest test-make-2-indent-fails ()
"Test unfolded `make-2-indent-fails'."
(org-test-with-temp-text "
,#+begin_src emacs-lisp
<point>
,#+end_src
"
(let ((copy (org-element-copy (org-element-at-point)))
(word "copy")
(n 0))
(delete-region (org-element-begin copy) (org-element-end copy))
(while (< n 2)
(cl-incf n)
(org-element-put-property copy :value (format "%s %s" word n))
;; Why does this work inside ERT and not outside ERT?
(insert (org-element-interpret-data copy))
(org-indent-block))
(message "`%s'" (buffer-substring (point-min) (point-max)))
(goto-char (point-min))
(while (> n 0)
(cl-decf n)
(should (re-search-forward word)))
(should-not (re-search-forward word nil 'noerror)))))
#+end_src
Regards -- Gerard
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 11:33 [BUG]: unexpected behavior related to org-indent-block gerard.vermeulen
@ 2024-01-11 12:37 ` Ihor Radchenko
2024-01-11 14:14 ` gerard.vermeulen
2024-01-12 19:19 ` Ihor Radchenko
0 siblings, 2 replies; 11+ messages in thread
From: Ihor Radchenko @ 2024-01-11 12:37 UTC (permalink / raw)
To: gerard.vermeulen; +Cc: Emacs orgmode
gerard.vermeulen@posteo.net writes:
> Below, I show 2 commands to be run with point on a source block.
> I expect that those commands modify an Org file identically, but
> they do not. It fails when `org-indent-block' is called in a
> loop after each `(insert (org-element-interpret-data copy))' and
> it works when `org-indent-block' is called in a separate loop
> after insertion of all `(org-element-interpret-data copy)'s:
> ...
> Example block:
> ---
> #+begin_src emacs-lisp
> <point>
> #+end_src
> ---
> make-2-indent-fails results in
> ---
> #+begin_src emacs-lisp
> copy 1
> #+end_src
I cannot reproduce.
I am seeing
make-2-indent-fails results in
---
#+begin_src emacs-lisp
copy 1
#+end_src
#+begin_src emacs-lisp
copy 2
#+end_src
<point>
On the latest main.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 12:37 ` Ihor Radchenko
@ 2024-01-11 14:14 ` gerard.vermeulen
2024-01-11 15:04 ` Ihor Radchenko
2024-01-12 19:19 ` Ihor Radchenko
1 sibling, 1 reply; 11+ messages in thread
From: gerard.vermeulen @ 2024-01-11 14:14 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Emacs orgmode
On 11.01.2024 13:37, Ihor Radchenko wrote:
> gerard.vermeulen@posteo.net writes:
>
>> Below, I show 2 commands to be run with point on a source block.
>> I expect that those commands modify an Org file identically, but
>> they do not. It fails when `org-indent-block' is called in a
>> loop after each `(insert (org-element-interpret-data copy))' and
>> it works when `org-indent-block' is called in a separate loop
>> after insertion of all `(org-element-interpret-data copy)'s:
>> ...
>> Example block:
>> ---
>> #+begin_src emacs-lisp
>> <point>
>> #+end_src
>> ---
>> make-2-indent-fails results in
>> ---
>> #+begin_src emacs-lisp
>> copy 1
>> #+end_src
>
> I cannot reproduce.
> I am seeing
>
> make-2-indent-fails results in
> ---
> #+begin_src emacs-lisp
> copy 1
> #+end_src
> #+begin_src emacs-lisp
> copy 2
> #+end_src
> <point>
>
> On the latest main.
This is strange:
I pulled the latest main and created a clean org-emacs directory
where I put a minimal init.el reading:
(when (eq system-type 'darwin)
(setopt ns-alternate-modifier nil
ns-command-modifier 'meta
ns-right-command-modifier 'super))
(push (expand-file-name "~/VCS/org-mode/lisp") load-path)
(require 'org)
After emacs --init-directory org-emacs, I get (code in the
result blocks got now indented):
Example block:
---
#+begin_src emacs-lisp
<point>
#+end_src
---
make-2-indent-fails results in
---
#+begin_src emacs-lisp
copy 1
#+end_src
---
make-2-indent-works results in
---
#+begin_src emacs-lisp
copy 1
#+end_src
#+begin_src emacs-lisp
copy 2
#+end_src
---
I have no idea what I can do now.
My Emacs is also recent main and built by me with minimal configure
options.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 14:14 ` gerard.vermeulen
@ 2024-01-11 15:04 ` Ihor Radchenko
2024-01-11 15:48 ` gerard.vermeulen
0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2024-01-11 15:04 UTC (permalink / raw)
To: gerard.vermeulen; +Cc: Emacs orgmode
gerard.vermeulen@posteo.net writes:
>> I cannot reproduce.
> ...
> This is strange:
> I pulled the latest main and created a clean org-emacs directory
> where I put a minimal init.el reading:
>...
> I have no idea what I can do now.
> My Emacs is also recent main and built by me with minimal configure
> options.
Try using released Emacs version. Emacs master builds are a subject of
unexpected bugs sometimes.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 15:04 ` Ihor Radchenko
@ 2024-01-11 15:48 ` gerard.vermeulen
2024-01-11 16:01 ` Ihor Radchenko
0 siblings, 1 reply; 11+ messages in thread
From: gerard.vermeulen @ 2024-01-11 15:48 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Emacs orgmode
On 11.01.2024 16:04, Ihor Radchenko wrote:
> gerard.vermeulen@posteo.net writes:
>
>>> I cannot reproduce.
>> ...
>> This is strange:
>> I pulled the latest main and created a clean org-emacs directory
>> where I put a minimal init.el reading:
>> ...
>> I have no idea what I can do now.
>> My Emacs is also recent main and built by me with minimal configure
>> options.
>
> Try using released Emacs version. Emacs master builds are a subject of
> unexpected bugs sometimes.
I get exactly the same results on Emacs-29.1 as on Emacs master.
For Emacs-29.1 (tar.xy) and Emacs master I have done (nothing special):
LIBRARY_PATH=/usr/local/Cellar/libgccjit/13.2.0/lib/gcc/13 make
configure="--prefix=${HOME}/opt --disable-ns-self-contained"
Regards -- Gerard
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 15:48 ` gerard.vermeulen
@ 2024-01-11 16:01 ` Ihor Radchenko
2024-01-11 16:41 ` gerard.vermeulen
0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2024-01-11 16:01 UTC (permalink / raw)
To: gerard.vermeulen; +Cc: Emacs orgmode
gerard.vermeulen@posteo.net writes:
>> Try using released Emacs version. Emacs master builds are a subject of
>> unexpected bugs sometimes.
>
> I get exactly the same results on Emacs-29.1 as on Emacs master.
>
> For Emacs-29.1 (tar.xy) and Emacs master I have done (nothing special):
> LIBRARY_PATH=/usr/local/Cellar/libgccjit/13.2.0/lib/gcc/13 make
> configure="--prefix=${HOME}/opt --disable-ns-self-contained"
Strange.
You can also try
cd /path/to/org/git
make repro
If you still see the problem, we may need to narrow down the problem on
your side using debugger.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 16:01 ` Ihor Radchenko
@ 2024-01-11 16:41 ` gerard.vermeulen
2024-01-11 17:28 ` Ihor Radchenko
0 siblings, 1 reply; 11+ messages in thread
From: gerard.vermeulen @ 2024-01-11 16:41 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Emacs orgmode
On 11.01.2024 17:01, Ihor Radchenko wrote:
> gerard.vermeulen@posteo.net writes:
>
>>> Try using released Emacs version. Emacs master builds are a subject
>>> of
>>> unexpected bugs sometimes.
>>
>> I get exactly the same results on Emacs-29.1 as on Emacs master.
>>
>> For Emacs-29.1 (tar.xy) and Emacs master I have done (nothing
>> special):
>> LIBRARY_PATH=/usr/local/Cellar/libgccjit/13.2.0/lib/gcc/13 make
>> configure="--prefix=${HOME}/opt --disable-ns-self-contained"
>
> Strange.
> You can also try
> cd /path/to/org/git
> make repro
>
I get:
Debugger entered--Lisp error: (void-function org-element-begin)
(org-element-begin copy)
(delete-region (org-element-begin copy) (org-element-end copy))
(let ((copy (org-element-copy (org-element-at-point))) (n 0))
(delete-region (org-element-begin copy) (org-element-end copy)) (while
(< n 2) (cl-incf n) (org-element-put-property copy :value (format "copy
%s" n)) (insert (org-element-interpret-data copy)) (org-indent-block)))
make-2-indent-fails()
funcall-interactively(make-2-indent-fails)
command-execute(make-2-indent-fails record)
I think it is strange that org-element-begin is void.
>
> If you still see the problem, we may need to narrow down the problem on
> your side using debugger.
I have zero experience with the debugger.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 16:41 ` gerard.vermeulen
@ 2024-01-11 17:28 ` Ihor Radchenko
2024-01-11 18:06 ` gerard.vermeulen
0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2024-01-11 17:28 UTC (permalink / raw)
To: gerard.vermeulen; +Cc: Emacs orgmode
gerard.vermeulen@posteo.net writes:
>> You can also try
>> cd /path/to/org/git
>> make repro
>>
> I get:
>
> Debugger entered--Lisp error: (void-function org-element-begin)
> (org-element-begin copy)
This means that your Org mode git folder is not on main branch.
You can try
git checkout main
or re-clone the Org repository:
git clone https://git.savannah.gnu.org/cgit/emacs/org-mode.git/
>> If you still see the problem, we may need to narrow down the problem on
>> your side using debugger.
>
> I have zero experience with the debugger.
As the last resort, we can do it by screen sharing in BBB/Jitsi.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 17:28 ` Ihor Radchenko
@ 2024-01-11 18:06 ` gerard.vermeulen
2024-01-11 18:18 ` Ihor Radchenko
0 siblings, 1 reply; 11+ messages in thread
From: gerard.vermeulen @ 2024-01-11 18:06 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Emacs orgmode
On 11.01.2024 18:28, Ihor Radchenko wrote:
> gerard.vermeulen@posteo.net writes:
>
>>> You can also try
>>> cd /path/to/org/git
>>> make repro
>>>
>> I get:
>>
>> Debugger entered--Lisp error: (void-function org-element-begin)
>> (org-element-begin copy)
>
> This means that your Org mode git folder is not on main branch.
> You can try
> git checkout main
>
> or re-clone the Org repository:
>
> git clone https://git.savannah.gnu.org/cgit/emacs/org-mode.git/
>
This is the output of "git checkout" in my Org repository clone:
python-3.11.7:0→vermeulen@bt-pc226:~/VCS/org-mode% git checkout
(git)-[main]-
Your branch is up to date with 'origin/main'.
After "make repro" and (org-version) I get
Org mode version 9.6.15 (release_9.6.15 @
/Users/vermeulen/opt/share/emacs/30.0.50/lisp/org/)
Something else on my system makes "make repro" behave unexpectedly.
>>> If you still see the problem, we may need to narrow down the problem
>>> on
>>> your side using debugger.
>>
>> I have zero experience with the debugger.
>
> As the last resort, we can do it by screen sharing in BBB/Jitsi.
OK. I have Jitsi installed on my system, but not much experience in
screen sharing.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 18:06 ` gerard.vermeulen
@ 2024-01-11 18:18 ` Ihor Radchenko
0 siblings, 0 replies; 11+ messages in thread
From: Ihor Radchenko @ 2024-01-11 18:18 UTC (permalink / raw)
To: gerard.vermeulen; +Cc: Emacs orgmode
gerard.vermeulen@posteo.net writes:
>> This means that your Org mode git folder is not on main branch.
>> You can try
>> git checkout main
>>
>> or re-clone the Org repository:
>>
>> git clone https://git.savannah.gnu.org/cgit/emacs/org-mode.git/
>>
>
> This is the output of "git checkout" in my Org repository clone:
>
> python-3.11.7:0→vermeulen@bt-pc226:~/VCS/org-mode% git checkout
> (git)-[main]-
> Your branch is up to date with 'origin/main'.
>
> After "make repro" and (org-version) I get
>
> Org mode version 9.6.15 (release_9.6.15 @
> /Users/vermeulen/opt/share/emacs/30.0.50/lisp/org/)
>
> Something else on my system makes "make repro" behave unexpectedly.
Super-weird.
>>>> If you still see the problem, we may need to narrow down the problem
>>>> on
>>>> your side using debugger.
>>>
>>> I have zero experience with the debugger.
>>
>> As the last resort, we can do it by screen sharing in BBB/Jitsi.
>
> OK. I have Jitsi installed on my system, but not much experience in
> screen sharing.
You can just use browser. Use
https://bbb.emacsverse.org/b/iho-h7r-qg8-led link.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [BUG]: unexpected behavior related to org-indent-block
2024-01-11 12:37 ` Ihor Radchenko
2024-01-11 14:14 ` gerard.vermeulen
@ 2024-01-12 19:19 ` Ihor Radchenko
1 sibling, 0 replies; 11+ messages in thread
From: Ihor Radchenko @ 2024-01-12 19:19 UTC (permalink / raw)
To: gerard.vermeulen; +Cc: Emacs orgmode
Ihor Radchenko <yantar92@posteo.net> writes:
>> ---
>> #+begin_src emacs-lisp
>> <point>
>> #+end_src
>> ---
> ...
> I cannot reproduce.
"---" turned out to be important.
This is not a bug.
After
(insert (org-element-interpret-data copy))
The point ends up at
--- line, which is not recognized as a source block. So,
(org-indent-block)
signals an error. This error is intended.
I updated the docstring to make it clear that error is thrown when not at
block.
Handled, on main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=1aa4552e5
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2024-01-12 19:17 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-11 11:33 [BUG]: unexpected behavior related to org-indent-block gerard.vermeulen
2024-01-11 12:37 ` Ihor Radchenko
2024-01-11 14:14 ` gerard.vermeulen
2024-01-11 15:04 ` Ihor Radchenko
2024-01-11 15:48 ` gerard.vermeulen
2024-01-11 16:01 ` Ihor Radchenko
2024-01-11 16:41 ` gerard.vermeulen
2024-01-11 17:28 ` Ihor Radchenko
2024-01-11 18:06 ` gerard.vermeulen
2024-01-11 18:18 ` Ihor Radchenko
2024-01-12 19:19 ` Ihor Radchenko
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).