emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug] org-in-src-block-p returns t when not in source block


From: No Wayman
Subject: Re: [Bug] org-in-src-block-p returns t when not in source block
Date: Mon, 27 Nov 2023 15:14:41 -0500

[Apologies for the duplicate message, Ihor. mu4e recently changed it's default
reply behavior without my noticing]

Ihor Radchenko <yantar92@posteo.net> writes:

> This is very different from LAX argument in `org-at-timestamp-p' -
> timestamp-like text may not be proper syntactically correct Org markup
> element, but is still considered by agenda for historical and practical
> reasons.

Fair enough.
 
> What about the attached patch?

That is much clearer. Thank you.

> If you want to check if point is inside source block code, use INSIDE
> argument.

Using the INSIDE argument still appears to fail in some cases:

Yodel[1] Report 2023-11-27 14:55:05
===================================

--8<---------------cut here---------------start------------->8---
(yodel
  :post*
  (require 'org)
  (org-version nil 'full 'message)
  (message "(org-in-source-block-p 'inside)")
  (yodel-file "before.org" :point "|"
    :with* "|\n#+begin_src text\ntest\n#+end_src\n"
    :then* (message "point on preceding blank line: %s"
             (if (org-in-src-block-p 'inside) "FAIL" "PASS")))
  (yodel-file "begin.org" :point "|"
    :with* "\n#+begin|_src text\ntest\n#+end_src\n"
    :then* (message "point on begin_src: %s"
             (if (org-in-src-block-p 'inside) "FAIL" "PASS")))
  (yodel-file "in.org" :point "|"
    :with* "\n#+begin_src text\nte|st\n#+end_src\n"
    :then* (message "point between begin_src end_src: %s"
             (if (org-in-src-block-p 'inside) "PASS" "FAIL")))
  (yodel-file "end-non-blank.org" :point "|"
    :with* "\n#+begin_src text\ntest\n#+end|_src\ntest"
    :then* (message "point on end_src (non-blank line after): %s"
             (if (org-in-src-block-p 'inside) "FAIL" "PASS")))
  (yodel-file "end.org" :point "|"
    :with* "\n#+begin_src text\ntest\n#+end|_src\n"
    :then* (message "point on end_src (blank line after): %s"
             (if (org-in-src-block-p 'inside) "FAIL" "PASS")))
  (yodel-file "end-eobp.org" :point "|"
    :with* "\n#+begin_src text\ntest\n#+end|_src"
    :then* (message "point on end_src (no line after): %s"
             (if (org-in-src-block-p 'inside) "FAIL" "PASS")))
  (yodel-file "after.org" :point "|"
    :with* "\n#+begin_src text\ntest\n#+end_src\n|"
    :then* (message "point on trailing blank line: %s"
                    (if (org-in-src-block-p 'inside) "FAIL" "PASS"))))
--8<---------------cut here---------------end--------------->8---

STDOUT
======

> Org mode version 9.6.11 (release_9.6.11 @ /usr/share/emacs/30.0.50/lisp/org/)
> (org-in-source-block-p ’inside)
> point on preceding blank line: PASS
> point on begin_src: PASS
> point between begin_src end_src: PASS
> point on end_src (non-blank line after): PASS
> point on end_src (blank line after): PASS
> point on end_src (no line after): FAIL
> point on trailing blank line: FAIL

Environment
===========

- emacs version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.18.0)
 of 2023-11-16
- system type: gnu/linux

[1] https://www.github.com/progfolio/yodel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]