emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Ian Barton <lists@manor-farm.org>
To: Eric Schulte <schulte.eric@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Org Babel Bug
Date: Thu, 11 Feb 2010 10:11:22 +0000	[thread overview]
Message-ID: <4B73D7CA.5040102@manor-farm.org> (raw)
In-Reply-To: <87iqa5rgae.fsf@gmail.com>

Hi Eric,

I have been away from my own computer for a while. I have just applied 
the patch and it works for me. Thanks!

Ian.

> Since the patch below greatly simplifies the code, and it has worked in
> all my tests, I'm going to apply it now.
> 
> Please do let me know if the export problems persist.
> 
> Best -- Eric
> 
> "Eric Schulte" <schulte.eric@gmail.com> writes:
> 
>> Hi Ian,
>>
>> The implementation of our block exportation has been bothering me for
>> some time now.  The attached patch *greatly* simplifies the exportation
>> code.  Could you please give it a try and let me know if it fixes your
>> bug?
>>
>> If so I will apply it to the main repository.
>>
>> Thanks -- Eric
>>
>>
>> diff --git a/contrib/babel/lisp/org-babel-exp.el b/contrib/babel/lisp/org-babel-exp.el
>> index 8ce52b6..b299d57 100644
>> --- a/contrib/babel/lisp/org-babel-exp.el
>> +++ b/contrib/babel/lisp/org-babel-exp.el
>> @@ -73,20 +73,10 @@ results - just like none only the block is run on export ensuring
>>  none ----- do not display either code or results upon export"
>>    (interactive)
>>    (message "org-babel-exp processing...")
>> -  (flet ((cond-progress-marker () (when (and progress-marker (< progress-marker (point)))
>> -                                   progress-marker)))
>> -    (or (and (re-search-backward org-babel-src-block-regexp (cond-progress-marker) t)
>> -             (setq progress-marker (match-end 0))
>> -             (org-babel-exp-do-export (org-babel-get-src-block-info) 'block))
>> -        (save-excursion
>> -          (forward-line 0)
>> -          (and (org-babel-where-is-src-block-head)
>> -               (goto-char (org-babel-where-is-src-block-head))
>> -               (org-babel-exp-do-export (org-babel-get-src-block-info) 'block)))
>> -        (and (re-search-backward org-block-regexp (cond-progress-marker) t)
>> -             (setq progress-marker (match-end 0))
>> -             (match-string 0))
>> -        (error "Unmatched block [bug in `org-babel-exp-src-blocks']."))))
>> +  (when (member (first headers) org-babel-interpreters)
>> +    (save-excursion
>> +      (goto-char (match-beginning 0))
>> +      (org-babel-exp-do-export (org-babel-get-src-block-info) 'block))))
>>  
>>  (defun org-babel-exp-inline-src-blocks (start end)
>>    "Process inline src blocks between START and END for export.
>> diff --git a/lisp/org-exp-blocks.el b/lisp/org-exp-blocks.el
>> index 1d43d3a..af53b60 100644
>> --- a/lisp/org-exp-blocks.el
>> +++ b/lisp/org-exp-blocks.el
>> @@ -183,13 +183,15 @@ specified in BLOCKS which default to the value of
>>  	    (setq body (save-match-data (org-remove-indentation body))))
>>  	  (unless (memq type types) (setq types (cons type types)))
>>  	  (save-match-data (interblock start (match-beginning 0)))
>> -	  (if (setq func (cadr (assoc type org-export-blocks)))
>> -	      (progn
>> -                (replace-match (save-match-data
>> +	  (when (setq func (cadr (assoc type org-export-blocks)))
>> +            (let ((replacement (save-match-data
>>                                   (if (memq type org-export-blocks-witheld) ""
>> -                                   (apply func body headers))) t t)
>> +                                   (apply func body headers)))))
>> +              (when replacement
>> +                (replace-match replacement t t)
>>                  (unless preserve-indent
>> -		  (indent-code-rigidly (match-beginning 0) (match-end 0) indentation))))
>> +                  (indent-code-rigidly
>> +                   (match-beginning 0) (match-end 0) indentation)))))
>>  	  (setq start (match-end 0)))
>>  	(interblock start (point-max))))))
>>  
>>
>>
>> Ian Barton <lists@manor-farm.org> writes:
>>
>>> I am using Babel to maintein my .emacs file. When I try to publish I
>>> am getting a Babel error from one of my org files. The offending
>>> section of the org file seems to be:
>>>
>>> #+BEGIN_SRC emacs-shell
>>>   127.0.0.1 mail.wilkesley.org localhost
>>>
>>>   # The following lines are desirable for IPv6 capable hosts
>>>   ::1 ip6-localhost ip6-loopback
>>>   fe00::0 ip6-localnet
>>>   ff00::0 ip6-mcastprefix
>>>   ff02::1 ip6-allnodes
>>>   ff02::2 ip6-allrouters
>>>   ff02::3 ip6-allhosts
>>>
>>> #+END_SRC
>>>
>>> I am using a recent git checkout of org and GNU Emacs 23.1.50.1
>>> (x86_64-pc-linux-gnu, GTK+ Version 2.18.0).
>>>
>>> The backtrace is:
>>>
>>> Debugger entered--Lisp error: (error "Unmatched block [bug in
>>> org-babel-exp-src-blocks'].")
>>>   signal(error ("Unmatched block [bug in `org-babel-exp-src-blocks']."))
>>>   error("Unmatched block [bug in `org-babel-exp-src-blocks'].")
>>>   (or (and (re-search-backward org-babel-src-block-regexp ... t) (setq
>>> progress-marker ...) (org-babel-exp-do-export ... ...))
>>> (save-excursion (forward-line 0) (and ... ... ...)) (and
>>> (re-search-backward org-block-regexp ... t) (setq progress-marker ...)
>>> (match-string 0)) (error "Unmatched block [bug in
>>> org-babel-exp-src-blocks']."))
>>>   (progn (fset (quote cond-progress-marker) (function* ...)) (or (and
>>> ... ... ...) (save-excursion ... ...) (and ... ... ...) (error
>>> "Unmatched block [bug in `org-babel-exp-src-blocks'].")))
>>>   (unwind-protect (progn (fset ... ...) (or ... ... ... ...)) (if
>>> --cl-letf-bound-- (fset ... --cl-letf-save--) (fmakunbound ...)))
>>>   (let* ((--cl-letf-bound-- ...) (--cl-letf-save-- ...))
>>> (unwind-protect (progn ... ...) (if --cl-letf-bound-- ... ...)))
>>>   (letf ((... ...)) (or (and ... ... ...) (save-excursion ... ...)
>>> (and ... ... ...) (error "Unmatched block [bug in
>>> org-babel-exp-src-blocks'].")))
>>>   (letf* ((... ...)) (or (and ... ... ...) (save-excursion ... ...)
>>> (and ... ... ...) (error "Unmatched block [bug in
>>> org-babel-exp-src-blocks'].")))
>>>   (flet ((cond-progress-marker nil ...)) (or (and ... ... ...)
>>> (save-excursion ... ...) (and ... ... ...) (error "Unmatched block
>>> [bug in `org-babel-exp-src-blocks'].")))
>>>   org-babel-exp-src-blocks(#("127.0.0.1 mail.wilkesley.org
>>> localhost\n\n# The following lines are desirable for IPv6 capable
>>> hosts\n::1 ip6-localhost ip6-loopback\nfe00::0 ip6-localnet\nff00::0
>>> ip6-mcastprefix\nff02::1 ip6-allnodes\nff02::2 ip6-allrouters\nff02::3
>>> ip6-allhosts\n" 0 240 (fontified nil)) #("emacs-shell" 0 11 (fontified
>>> nil)))
>>>   apply(org-babel-exp-src-blocks #("127.0.0.1 mail.wilkesley.org
>>> localhost\n\n# The following lines are desirable for IPv6 capable
>>> hosts\n::1 ip6-localhost ip6-loopback\nfe00::0 ip6-localnet\nff00::0
>>> ip6-mcastprefix\nff02::1 ip6-allnodes\nff02::2 ip6-allrouters\nff02::3
>>> ip6-allhosts\n" 0 240 (fontified nil)) #("emacs-shell" 0 11 (fontified
>>> nil)))
>>>
>>> byte-code("\306\307\211\211\211\211\211\211\211\211.......#.$.%.&\310\311!\211.'\205#

      reply	other threads:[~2010-02-11 10:11 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-09 11:06 Org Babel Bug Ian Barton
2010-02-09 15:21 ` Dan Davison
2010-02-09 17:29   ` Dan Davison
2010-02-09 16:54 ` Eric Schulte
2010-02-10  2:11   ` Eric Schulte
2010-02-11 10:11     ` Ian Barton [this message]

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=4B73D7CA.5040102@manor-farm.org \
    --to=lists@manor-farm.org \
    --cc=emacs-orgmode@gnu.org \
    --cc=schulte.eric@gmail.com \
    /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).