emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] [PATCH] ox-extra.el: Fix filtering of latex header blocks


From: Aaron Ecay
Subject: Re: [O] [PATCH] ox-extra.el: Fix filtering of latex header blocks
Date: Tue, 10 Nov 2015 16:57:57 +0000
User-agent: Notmuch/0.20.2+65~gbd5504e (http://notmuchmail.org) Emacs/25.0.50.2 (x86_64-unknown-linux-gnu)

Hi Sebastian,

Thanks for the patch.  In addition to Kyle’s comments:

2015ko urriak 9an, Sebastian Christ-ek idatzi zuen:
> 
> Hi group,
> 
> I'd like to provide a patch to
> ox-extra.el. `org-latex-header-blocks-filter' still calls
> `org-edit-src-find-region-and-lang' and raises therefore an undefined
> function error.
> 
> Best wishes,
> Sebastian
> 
> From 34b76e06bda5739e433c95b451915c8b804a1733 Mon Sep 17 00:00:00 2001
> From: Sebastian Christ <address@hidden>
> Date: Fri, 9 Oct 2015 17:37:39 +0200
> Subject: [PATCH] ox-extra.el: Fix filtering of latex header blocks
> 
> * ox-extra.el (org-latex-header-blocks-filter): Use `org-element' API to
>   find begin and end of latex header blocks.
> 
> `org-latex-header-blocks-filter' still called
> `org-edit-src-find-region-and-lang' and raised an undefined function
> error because the funtion was removed from org-mode. This is fixed by 
> determining the
> begin and end of the latex block via `org-element'.
> ---
>  contrib/lisp/ox-extra.el | 28 ++++++++++++++++------------
>  1 file changed, 16 insertions(+), 12 deletions(-)
> 
> diff --git a/contrib/lisp/ox-extra.el b/contrib/lisp/ox-extra.el
> index e6d45cc..bb838fc 100644
> --- a/contrib/lisp/ox-extra.el
> +++ b/contrib/lisp/ox-extra.el
> @@ -71,18 +71,22 @@
>                      (org-element-property :end block)
>                      (org-element-property :post-affiliated block)))))))
>        (mapc (lambda (pos)
> -           (goto-char (nth 2 pos))
> -           (destructuring-bind
> -               (beg end &rest ignore)
> -               (org-edit-src-find-region-and-lang)
> -             (let ((contents-lines (split-string
> -                                    (buffer-substring-no-properties beg end)
> -                                    "\n")))
> -               (delete-region (nth 0 pos) (nth 1 pos))
> -               (dolist (line contents-lines)
> -                 (insert (concat "#+latex_header: "
> -                                 (replace-regexp-in-string "\\` *" "" line)
> -                                 "\n"))))))
> +              (let* ((beg (third pos))
> +                     (end (second pos))
> +                     (post-affiliated (first pos))
> +                     (contents-lines
> +                      (cdr (butlast
> +                            (split-string
> +                             (buffer-substring-no-properties post-affiliated
> +                                                             end)
> +                             "\n")
> +                            2))))

Here I think you should use (org-element-property :value X) to get the
contents-lines.  This means that it should be added to the list that’s
constructed from :begin, :end, and :post-affiliated higher up.  (And
then I think :post-affiliated can be dropped from that list.)

I’m not sure why I didn’t do it that way in the first place, actually.

-- 
Aaron Ecay



reply via email to

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