From 1e0f0e335bf594c6fe50581deb0775971a97f4f4 Mon Sep 17 00:00:00 2001 From: Aaron Ecay Date: Sun, 14 Feb 2016 15:14:30 +0000 Subject: [PATCH 1/2] Add org-babel-make-language-alias function. * lisp/ob-core.el (org-babel-make-language-alias): New function. * lisp/ob-emacs-lisp.el: Use it. Previously this was accomplished via org-src-lang-modes, but that is a poor solution, as it conflates the remapping of language mode names with the creation of aliases. --- lisp/ob-core.el | 20 ++++++++++++++++++++ lisp/ob-emacs-lisp.el | 2 ++ 2 files changed, 22 insertions(+) diff --git a/lisp/ob-core.el b/lisp/ob-core.el index 96296e0..7bd1156 100644 --- a/lisp/ob-core.el +++ b/lisp/ob-core.el @@ -3152,6 +3152,26 @@ plus the parameter value." (and (member "graphics" (cdr (assq :result-params params))) (cdr (assq :file params)))) +(defun org-babel-make-language-alias (new old) + "Make source blocks of type NEW aliases for those of type OLD. + +NEW and OLD should be strings. This function should be called +after the babel API for OLD-type source blocks is fully defined. + +Callers of this function will probably want to add an entry to +`org-src-lang-modes' as well." + (dolist (fn '("execute" "expand-body" "prep-session" + "variable-assignments" "load-session")) + (let ((sym (intern-soft (concat "org-babel-" fn ":" old)))) + (when (and sym (fboundp sym)) + (defalias (intern (concat "org-babel-" fn ":" new)) sym)))) + ;; Technically we don't need a `dolist' for just one variable, but + ;; we keep it for symmetry/ease of future expansion. + (dolist (var '("default-header-args")) + (let ((sym (intern-soft (concat "org-babel-" var ":" old)))) + (when (and sym (boundp sym)) + (defvaralias (intern (concat "org-babel-" var ":" new)) sym))))) + (provide 'ob-core) ;; Local variables: diff --git a/lisp/ob-emacs-lisp.el b/lisp/ob-emacs-lisp.el index 18936a6..2eb2721 100644 --- a/lisp/ob-emacs-lisp.el +++ b/lisp/ob-emacs-lisp.el @@ -72,6 +72,8 @@ (org-babel-pick-name (cdr (assoc :rowname-names params)) (cdr (assoc :rownames params)))))))) +(org-babel-make-language-alias "elisp" "emacs-lisp") + (provide 'ob-emacs-lisp) -- 2.7.1