From 179a5224f609a2285457c08319b66acae41f58fe Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 24 Sep 2012 22:35:55 +0200 Subject: [PATCH] org-export: Signal an error when back-end isn't registered * contrib/lisp/org-export.el (org-export-barf-if-invalid-backend): New function. (org-export-as): Signal an error when back-end isn't registered. --- contrib/lisp/org-export.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/contrib/lisp/org-export.el b/contrib/lisp/org-export.el index 596917b13..6f885d18d 100644 --- a/contrib/lisp/org-export.el +++ b/contrib/lisp/org-export.el @@ -700,6 +700,15 @@ standard mode." ;;; Defining New Back-ends +;; +;; `org-export-define-backend' is the standard way to define an export +;; back-end. It allows to specify translators, filters, buffer +;; options and a menu entry. If the new back-end shares translators +;; with another back-end, `org-export-define-derived-backend' may be +;; used instead. +;; +;; Eventually `org-export-barf-if-invalid-backend' returns an error +;; when a given back-end hasn't been registered yet. (defmacro org-export-define-backend (backend translators &rest body) "Define a new back-end BACKEND. @@ -985,6 +994,11 @@ structure of the values." ;; Splice in the body, if any. ,@body))) +(defun org-export-barf-if-invalid-backend (backend) + "Signal an error if BACKEND isn't defined." + (unless (boundp (intern (format "org-%s-translate-alist" backend))) + (error "Unknown \"%s\" back-end: Aborting export" backend))) + ;;; The Communication Channel @@ -2527,6 +2541,8 @@ Optional argument NOEXPAND, when non-nil, prevents included files to be expanded and Babel code to be executed. Return code as a string." + ;; Barf if BACKEND isn't registered. + (org-export-barf-if-invalid-backend backend) (save-excursion (save-restriction ;; Narrow buffer to an appropriate region or subtree for