emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: aditya siram <aditya.siram@gmail.com>
To: emacs-orgmode@gnu.org
Subject: [Babel] : Bug in org-tangle with :comments, patch included
Date: Thu, 8 Mar 2012 13:36:22 -0600	[thread overview]
Message-ID: <CAJrReyi84BNzy6aR-vcXLue9yuRrhFTM-PCcDnfcHR_eAxvLYg@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1211 bytes --]

Hi all,
When I tangle a source block with ":comments yes" any spaces in the
sub-heading in which the block is found are replaced with "%2520"
instead of "%20". As a consequence when I "org-babel-detangle" the
correct heading is not found.

As an example given the following org file:
* Babel Tangling
** Test Source 1
   #+begin_src c :tangle /tmp/source1.txt :comments yes
   nothing
   #+end_src

running "org-babel-tangle" generates the following source:
/* [[file:~/WorkingFiles/Org.org::*Test%2520Source%25201][Test-Source-1:1]] */

nothing

/* Test-Source-1:1 ends here */

The problem is in the "org-babel-spec-to-string" function which takes
the correctly escaped link generated by "org-store-link":
 "[[file:~/WorkingFiles/Org.org::*Test%20Source%201][Test-Source-1:1]]"
and escapes it again with "org-link-escape" which yielding the erroneous:
 "[[file:~/WorkingFiles/Org.org::*Test%2520Source%25201][Test-Source-1:1]]".

I have included a patch that removes the call to "org-link-escape" and
that fixes it on my machine. A grep of my current source tree shows
that "org-babel-spec-to-string" is only called from
"org-babel-tangle". I don't know if any other contribs are using this
function.

-deech

[-- Attachment #2: link-escaped-twice.patch --]
[-- Type: text/x-diff, Size: 784 bytes --]

From 249f60fe17913db08f81bca40d12e114f66db4b6 Mon Sep 17 00:00:00 2001
From: Deech <deech@deech-ThinkPad-X200.(none)>
Date: Thu, 8 Mar 2012 13:25:14 -0600
Subject: [PATCH 3/3] The link generated by org-store-link is escaped twice when tangling with ":comments yes" flag.

---
 lisp/ob-tangle.el |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el
index 15c0518..e629c12 100644
--- a/lisp/ob-tangle.el
+++ b/lisp/ob-tangle.el
@@ -381,7 +381,7 @@ form
   (start-line file link source-name params body comment)"
   (let* ((start-line (nth 0 spec))
 	 (file (nth 1 spec))
-	 (link (org-link-escape (nth 2 spec)))
+	 (link (nth 2 spec))
 	 (source-name (nth 3 spec))
 	 (body (nth 5 spec))
 	 (comment (nth 6 spec))
-- 
1.7.4.1


             reply	other threads:[~2012-03-08 19:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-08 19:36 aditya siram [this message]
2012-03-09 13:51 ` [Babel] : Bug in org-tangle with :comments, patch included Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAJrReyi84BNzy6aR-vcXLue9yuRrhFTM-PCcDnfcHR_eAxvLYg@mail.gmail.com \
    --to=aditya.siram@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).