[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: [babel][patch] C++ inconsistencies
From: |
Martyn Jago |
Subject: |
[Orgmode] Re: [babel][patch] C++ inconsistencies |
Date: |
Fri, 18 Feb 2011 16:36:13 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Martyn Jago <address@hidden> writes:
> Hi
>
> I've noticed a couple of minor inconsistencies with C++ export...
>
> - According to the Org manual (section 14.7 Languages) the identifier
> for C++ is C++ (upper-case), but in practice this fails and the
> identifier c++ (lower-case) must be used. In general, identifiers
> appear to be lower-case words or upper-case single characters (such
> as C and R) so perhaps this is a bug?
>
> - Within org-babel cpp is used to identify C++, however using cpp as an
> identifier actually exports as if it were a C block.
>
> If it is desired the following patch changes the C++ identifier to C++,
> and maps cpp identifier also to C++, although perhaps it is better to
> maintain c++ also for backward compatibility?
>
> Regards
>
> Martyn
>
>
> diff --git a/lisp/ob-C.el b/lisp/ob-C.el
> index da0e768..86ec783 100644
> --- a/lisp/ob-C.el
> +++ b/lisp/ob-C.el
> @@ -56,10 +56,10 @@ is currently being evaluated.")
>
> (defun org-babel-execute:cpp (body params)
> "Execute BODY according to PARAMS. This function calls
> -`org-babel-execute:C'."
> - (org-babel-execute:C body params))
> +`org-babel-execute:C++'."
> + (org-babel-execute:C++ body params))
>
> -(defun org-babel-execute:c++ (body params)
> +(defun org-babel-execute:C++ (body params)
> "Execute a block of C++ code with org-babel. This function is
> called by `org-babel-execute-src-block'."
> (let ((org-babel-c-variant 'cpp)) (org-babel-C-execute body params)))
>
>
> ---
>
> Org-mode version 7.4
> GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.24.0) of
> 2011-02-18
>
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Hi
After further inspection and testing the following patch is more
complete (apologies for the noise).
In addition I have a very simple Yaml template if it is of any interest
to anybody. I have a strong use case for tangling Yaml for 'literate
configuration' purposes since I come across some particularly hairy yaml
configuration files for the unit-test libraries Unity, CMock and
Ceedling.
Regards
Martyn
diff --git a/lisp/ob-C.el b/lisp/ob-C.el
index da0e768..5aa750c 100644
--- a/lisp/ob-C.el
+++ b/lisp/ob-C.el
@@ -38,7 +38,7 @@
(declare-function org-entry-get "org"
(pom property &optional inherit literal-nil))
-(add-to-list 'org-babel-tangle-lang-exts '("c++" . "cpp"))
+(add-to-list 'org-babel-tangle-lang-exts '("C++" . "cpp"))
(defvar org-babel-default-header-args:C '())
@@ -46,8 +46,8 @@
"Command used to compile a C source code file into an
executable.")
-(defvar org-babel-c++-compiler "g++"
- "Command used to compile a c++ source code file into an
+(defvar org-babel-C++-compiler "g++"
+ "Command used to compile a C++ source code file into an
executable.")
(defvar org-babel-c-variant nil
@@ -56,15 +56,15 @@ is currently being evaluated.")
(defun org-babel-execute:cpp (body params)
"Execute BODY according to PARAMS. This function calls
-`org-babel-execute:C'."
- (org-babel-execute:C body params))
+`org-babel-execute:C++'."
+ (org-babel-execute:C++ body params))
-(defun org-babel-execute:c++ (body params)
+(defun org-babel-execute:C++ (body params)
"Execute a block of C++ code with org-babel. This function is
called by `org-babel-execute-src-block'."
(let ((org-babel-c-variant 'cpp)) (org-babel-C-execute body params)))
-(defun org-babel-expand-body:c++ (body params)
+(defun org-babel-expand-body:C++ (body params)
"Expand a block of C++ code with org-babel according to it's
header arguments (calls `org-babel-C-expand')."
(let ((org-babel-c-variant 'cpp)) (org-babel-C-expand body params)))
@@ -81,7 +81,7 @@ header arguments (calls `org-babel-C-expand')."
(defun org-babel-C-execute (body params)
"This function should only be called by `org-babel-execute:C'
-or `org-babel-execute:c++'."
+or `org-babel-execute:C++'."
(let* ((tmp-src-file (org-babel-temp-file
"C-src-"
(cond
@@ -98,7 +98,7 @@ or `org-babel-execute:c++'."
(format "%s -o %s %s %s"
(cond
((equal org-babel-c-variant 'c) org-babel-C-compiler)
- ((equal org-babel-c-variant 'cpp) org-babel-c++-compiler))
+ ((equal org-babel-c-variant 'cpp) org-babel-C++-compiler))
(org-babel-process-file-name tmp-bin-file)
(mapconcat 'identity
(if (listp flags) flags (list flags)) " ")
---
Org-mode version 7.4
GNU Emacs 24.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.24.0) of
2011-02-18