Hello,
>>>>> Sebastian Rose writes:
> What's the status of this?

What about the following patch ? I think it should fix it.

-- Nicolas

>From 115a7e9d04fd5463913e1086ad3ff807ae579e16 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <n.goaz...@gmail.com>
Date: Wed, 30 Jun 2010 12:28:32 +0200
Subject: [PATCH] Remove unwanted #+ATTR_Backend and #+Backend during export.

* lisp/org-exp.el: (org-export-select-backend-specific-text) Properly
  get rid of #+Backend and #+ATTR_Backend specifics to backends not
  matching the one we're exporting to.
---
 lisp/org-exp.el |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/lisp/org-exp.el b/lisp/org-exp.el
index 54afdac..578e0cf 100644
--- a/lisp/org-exp.el
+++ b/lisp/org-exp.el
@@ -1526,15 +1526,27 @@ from the buffer."
 
     (while formatters
       (setq fmt (pop formatters))
-      (when (eq (car fmt) backend)
-       ;; This is selected code, put it into the file for real
-       (goto-char (point-min))
-       (while (re-search-forward (concat "^\\([ \t]*\\)#\\+" (cadr fmt)
-                                         ":[ \t]*\\(.*\\)") nil t)
+      ;; Handle #+Backend: stuff
+      (goto-char (point-min))
+      (while (re-search-forward (concat "^\\([ \t]*\\)#\\+" (cadr fmt)
+                                       ":[ \t]*\\(.*\\)") nil t)
+       (if (not (eq (car fmt) backend))
+           (delete-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))
+         (replace-match "\\1\\2" t)
+         (add-text-properties
+          (point-at-bol) (min (1+ (point-at-eol)) (point-max))
+          '(org-protected t))))
+      ;; Handle #+attr_Backend: stuff
+      (goto-char (point-min))
+      (while (re-search-forward (concat "^\\([ \t]*\\)#\\+attr_" (cadr fmt)
+                                       ":[ \t]*\\(.*\\)") nil t)
+       (if (not (eq (car fmt) backend))
+           (delete-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))
          (replace-match "\\1\\2" t)
          (add-text-properties
           (point-at-bol) (min (1+ (point-at-eol)) (point-max))
           '(org-protected t))))
+      ;; Handle #+begin_Backend and #+end_Backend stuff
       (goto-char (point-min))
       (while (re-search-forward (concat "^[ \t]*#\\+" (caddr fmt) "\\>.*\n?")
                                nil t)
-- 
1.7.1

_______________________________________________
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode

Reply via email to