>From 34b76e06bda5739e433c95b451915c8b804a1733 Mon Sep 17 00:00:00 2001 From: Sebastian Christ 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)))) + (goto-char beg) + (delete-region beg end) + (dolist (line contents-lines) + (insert (concat "#+latex_header: " + (replace-regexp-in-string "\\` *" "" line) + "\n"))))) ;; go in reverse, to avoid wrecking the numeric positions ;; earlier in the file (reverse positions))))) -- 2.6.1