[-- Attachment #1: Type: text/plain, Size: 621 bytes --] org-babel-load-file will try to tangle any source block that contains the substring emacs-lisp or elisp in their language. For example, the following code block will be tangled: #+begin_src emacs-lispDONOT (use-package "org-sidebar") #+end_src the following patch fixes that problem. The Regular expression should be more stringent, so it does match exactly the string and not a substring. I think this is a regression. I used to comment out blocks from my .org init files by simply adding a XXX (as in emacs-lispXXXX). In current org these blocks are tangled :( -- --dmg --- D M German http://turingmachine.org [-- Attachment #2: patch --] [-- Type: application/octet-stream, Size: 488 bytes --] diff --git a/lisp/org.el b/lisp/org.el index 1bd9e02eb..099655ff6 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -229,7 +229,7 @@ byte-compiled before it is loaded." tangled-file (file-attribute-modification-time (file-attributes (file-truename file)))) - (org-babel-tangle-file file tangled-file "emacs-lisp\\|elisp")) + (org-babel-tangle-file file tangled-file "^\\(emacs-lisp\\|elisp\\)$")) (if compile (progn (byte-compile-file tangled-file)
[-- Attachment #1: Type: text/plain, Size: 1000 bytes --] dmg <dmg@turingmachine.org> writes: > org-babel-load-file will try to tangle any source block that contains > the substring emacs-lisp or elisp in their language. > > For example, the following code block will be tangled: > > #+begin_src emacs-lispDONOT > (use-package "org-sidebar") > #+end_src > > the following patch fixes that problem. The Regular expression should > be more stringent, so it does match exactly the string and not a > substring. > > I think this is a regression. I used to comment out blocks from my > .org init files by simply adding a XXX (as in emacs-lispXXXX). In > current org these blocks are tangled :( I think your right. The regexp should only match on complete string. BTW an easy way to comment out code blocks from tangling is to just add :tangle no to the header. This will work better because the code block will still work for editing etc and have correct syntax highlighting etc. Regards, Tim -- *Tim Cross* /For gor sake stop laughing, this is serious!/
On 29/07/2021 11:13, Tim Cross wrote: > dmg writes: > >> org-babel-load-file will try to tangle any source block that contains >> the substring emacs-lisp or elisp in their language. >> >> For example, the following code block will be tangled: >> >> #+begin_src emacs-lispDONOT >> (use-package "org-sidebar") >> #+end_src >> >> I think this is a regression. I used to comment out blocks from my >> .org init files by simply adding a XXX (as in emacs-lispXXXX). In >> current org these blocks are tangled :( > > I think your right. The regexp should only match on complete string. I agree as well. Related code changed in 9.4: - https://orgmode.org/list/CALOSHoRNnLxJMa6jnrt-iKiE-b9f9o3CLQDxFekrZVYiyzE0Qw@mail.gmail.com/T/#u - https://code.orgmode.org/bzg/org-mode/commit/be93859c78 The following is just my opinion, not a request for an update of the patch. Maybe it will be better to change `org-babel-tangle-collect-blocks' function in lisp/ob-tangle.el instead and to wrap passed argument in the suggested way (at first I thought of non-capturing group "\\(?:" "\\)", but it is not necessary since the regexp is passed to `string-match-p'). I suppose, it is more reliable default. If anyone really needs partial match, he may express it explicitly by adding ".*", "?", etc. I hope, such change will break no existing code.
Hello,
dmg <dmg@turingmachine.org> writes:
> org-babel-load-file will try to tangle any source block that contains
> the substring emacs-lisp or elisp in their language.
>
> For example, the following code block will be tangled:
>
> #+begin_src emacs-lispDONOT
> (use-package "org-sidebar")
> #+end_src
>
> the following patch fixes that problem. The Regular expression should
> be more stringent, so it does match exactly the string and not a
> substring.
Thank you. I applied an equivalent patch.
Regards,
--
Nicolas Goaziou