org-mode/lisp
Hraban Luyat 8a781d35dc
ob-tangle.el: fix ‘:comments noweb’ double linking
* lisp/ob-tangle.el: Refactor the double implementation to a single
helper function.  This avoids the double link wrapping.

* testing/lisp/test-ob-tangle.el: Add unit tests.

Babel tangle allows inserting comments at the tangled site which link
back to the source in the org file.  This linking was implemented
twice, to handle separate cases, but when using ‘:comments noweb’ it
ended up going through both codepaths.  This resulted in doubly
wrapped links.

By refactoring all link generation into a single function, this double
wrapping is avoided.

Example file, /tmp/test.org:

    * Inner
    #+name: inner
    #+begin_src emacs-lisp
    2
    #+end_src

    * Main
    #+header: :tangle test.el :comments noweb :noweb yes
    #+begin_src emacs-lisp
    1
    <<inner>>
    #+end_src

Before:

    ;; [[file:test.org::*Main][Main:1]]
    1
    ;; [[[[file:/tmp/test.org::inner][inner]]][inner]]
    2
    ;; inner ends here
    ;; Main:1 ends here

After:

    ;; [[file:test.org::*Main][Main:1]]
    1
    ;; [[file:test.org::inner][inner]]
    2
    ;; inner ends here
    ;; Main:1 ends here
2022-08-13 14:39:09 +08:00
..
Makefile Move link-related core functions out of "org.el" 2019-03-10 18:00:27 +01:00
ob-awk.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-C.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-calc.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-clojure.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-comint.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-core.el org-babel-expand-noweb-references: Cache block info 2022-07-31 14:28:04 +08:00
ob-css.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-ditaa.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-dot.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-emacs-lisp.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-eshell.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-eval.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-exp.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-forth.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-fortran.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-gnuplot.el ob-gnuplot: Fix stable file collision when converting data 2022-07-19 18:02:56 +08:00
ob-groovy.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-haskell.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-java.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-js.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-julia.el Merge branch 'bugfix' 2022-07-24 16:53:32 -04:00
ob-latex.el lisp/ob-latex.el: Remove duplicate line. 2022-07-05 17:00:12 +03:00
ob-lilypond.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-lisp.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-lob.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-lua.el Backport commit bbf389ea6 from Emacs 2022-07-24 15:58:18 -04:00
ob-makefile.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-matlab.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-maxima.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-ocaml.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-octave.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-org.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-perl.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-plantuml.el lisp/ob-plantuml.el: Insert results in buffer 2022-08-06 16:20:10 +08:00
ob-processing.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-python.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-R.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-ref.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-ruby.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-sass.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-scheme.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-screen.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-sed.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
ob-shell.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-sql.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-sqlite.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ob-table.el Merge branch 'bugfix' 2022-07-24 16:53:32 -04:00
ob-tangle.el ob-tangle.el: fix ‘:comments noweb’ double linking 2022-08-13 14:39:09 +08:00
ob.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
oc-basic.el Merge branch 'bugfix' 2022-07-24 20:29:20 +08:00
oc-biblatex.el Fix Emacs 26 compatibility 2022-07-24 20:57:07 +08:00
oc-bibtex.el Update main-only copyright years 2022-01-01 15:25:06 -05:00
oc-csl.el oc-csl: Add missing function declaration 2022-08-09 21:18:17 +08:00
oc-natbib.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
oc.el org-cite-list-citations: Cache footnote-definition searches 2022-06-16 10:43:29 +08:00
ol-bbdb.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol-bibtex.el Merge branch 'bugfix' 2022-02-05 19:19:49 +08:00
ol-docview.el ol-docview: Throw an error when trying to open non-existing file 2022-07-11 13:00:05 +08:00
ol-doi.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
ol-eshell.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
ol-eww.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol-gnus.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol-info.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol-irc.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
ol-man.el ol-man: Set window point not buffer point and wait before search 2022-08-10 19:46:54 +08:00
ol-mhe.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol-rmail.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol-w3m.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
ol.el lisp/ol.el: Fix some docstring style issues 2022-08-06 14:01:44 +08:00
org-agenda.el org-fold-show-entry: Do not fold drawers unless requested 2022-07-31 10:17:08 +08:00
org-archive.el org-paste-subtree: Do not use `insert-before-markers' 2022-07-31 13:05:15 +08:00
org-attach-git.el Fix doc string quoting problems with ' 2022-07-25 13:10:29 -07:00
org-attach.el org-attach-attach: Allow attaching directories using 'cp method 2022-07-21 19:23:18 +08:00
org-capture.el org-capture-kill: Fix capture boundaries when deleting empty lines above 2022-07-31 13:05:16 +08:00
org-clock.el Use `org-encode-time' helper macro 2022-07-17 16:40:18 +08:00
org-colview.el org-colview: Do not rely on `current-column' ignoring display properties 2022-08-06 13:33:44 +08:00
org-compat.el org-fold-show-entry: Do not fold drawers unless requested 2022-07-31 10:17:08 +08:00
org-crypt.el Rename old function call to use org-fold 2022-04-25 19:39:53 +08:00
org-ctags.el Remove XEmacs and ancient Emacs compat code 2022-06-18 15:43:30 +08:00
org-cycle.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-datetree.el Use `org-encode-time' helper macro 2022-07-17 16:40:18 +08:00
org-duration.el Use set-default-toplevel-value' in defcustom' setters 2022-06-14 21:54:45 +08:00
org-element.el org-open-at-point: Do not list links under headline that cannot be opened 2022-07-17 20:14:44 +08:00
org-entities.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-faces.el Fix doc string quoting problems with ' 2022-07-25 13:10:29 -07:00
org-feed.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-fold-core.el Fix doc string quoting problems with ' 2022-07-25 13:10:29 -07:00
org-fold.el org-fold-show-entry: Do not fold drawers unless requested 2022-07-31 10:17:08 +08:00
org-footnote.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-goto.el Delete some Emacs 24 compat code 2022-07-02 12:10:00 +08:00
org-habit.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-id.el org-id-update-locations: Scan all the open Org buffers 2022-08-05 20:43:11 +08:00
org-indent.el org-indent: Fix edge case when edited region ends at headline leading stars 2022-07-17 16:51:54 +08:00
org-inlinetask.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-keys.el org-keys: Bind ESC <left> by default 2022-07-22 21:35:38 +08:00
org-lint.el org-lint: don't complain about #+include URL 2022-06-12 18:02:25 +08:00
org-list.el org-list-struct-apply-struct: Do not rely on `match-data' after edits 2022-07-11 19:13:07 +08:00
org-macro.el org-macro: Require vc in vc-modified-time 2022-07-25 18:36:12 +08:00
org-macs.el org-colview: Do not rely on `current-column' ignoring display properties 2022-08-06 13:33:44 +08:00
org-mobile.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-mouse.el Remove XEmacs and ancient Emacs compat code 2022-06-18 15:43:30 +08:00
org-num.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
org-pcomplete.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-persist.el Fix Emacs 26 compatibility 2022-07-24 20:57:07 +08:00
org-plot.el Fix doc string quoting problems with ' 2022-07-25 13:10:29 -07:00
org-protocol.el Remove XEmacs and ancient Emacs compat code 2022-06-18 15:43:30 +08:00
org-refile.el ; * lisp/org-refile.el (org-refile-targets): Fix typo. 2022-07-17 16:36:14 +08:00
org-src.el org-src: Fix invisible text in src block fontification 2022-08-07 18:33:11 +08:00
org-table.el Merge branch 'bugfix' 2022-07-24 16:53:32 -04:00
org-tempo.el Prefer "website" to "homepage" 2022-06-26 10:10:48 +08:00
org-timer.el org-fold-show-entry: Do not fold drawers unless requested 2022-07-31 10:17:08 +08:00
org.el * lisp/org.el (org-get-buffer-tags): Remove text properties from tags 2022-08-11 19:38:33 +08:00
ox-ascii.el Merge branch 'bugfix' 2022-07-24 20:29:20 +08:00
ox-beamer.el ox-latex: Replace `org-latex-listings' 2022-05-13 00:43:17 +08:00
ox-html.el Merge branch 'bugfix' 2022-07-24 16:53:32 -04:00
ox-icalendar.el Merge branch 'bugfix' 2022-08-11 13:34:16 +08:00
ox-koma-letter.el ox-koma-letter: Collapse space in copyright line 2022-01-01 17:47:00 -05:00
ox-latex.el lisp/ox-latex.el: `org-latex-language-alist' improved 2022-08-06 15:08:02 +08:00
ox-man.el Update copyright year to 2022 2022-01-01 15:17:08 -05:00
ox-md.el Merge branch 'bugfix' 2022-07-24 20:29:20 +08:00
ox-odt.el Delete some Emacs 24 compat code 2022-07-02 12:10:00 +08:00
ox-org.el Delete some Emacs 24 compat code 2022-07-02 12:10:00 +08:00
ox-publish.el Backport commit bbf389ea6 from Emacs 2022-07-24 15:58:18 -04:00
ox-texinfo.el ; Fix typos 2022-07-01 17:42:52 +08:00
ox.el Fix doc string quoting problems with ' 2022-07-25 13:10:29 -07:00