[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