Hello, Giuseppe Lipari <giulip...@gmail.com> writes:
> thanks for the response. I did some debugging, but I am not an expert of > elisp and org-mode. Anyway, this is what I found: > > I put a breakpoint in fuinction org-latex-src-block() which receives > src-block as parameter. This parameter contains field language already set > to c++\"-std=c++11\", which is of course wrong. Therefore the problem is > before this function is called, but I could not follow the chain and so I > do not know precisely which function is responsible for this. > > Also, the bug triggers also when I specify C as a language. Therefore, > probably the problem is somewhere in ob-C.el. I think the following patch fixes the issue. I'll let Eric decide if it has to be applied or not. Thank you for the report. Regards, -- Nicolas Goaziou
>From bbe85db3abbdcc0973dcd0fb783728d4374b20fb Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <n.goaz...@gmail.com> Date: Mon, 20 Jan 2014 14:07:57 +0100 Subject: [PATCH] ob-exp: Fix export of src blocks with flags * lisp/ob-exp.el (org-babel-exp-code): Fix export of src blocks with flags. * testing/lisp/test-ob-exp.el (ob-export/export-src-block-with-flags): New test. Thanks to Giuseppe Lipari for reporting it. --- lisp/ob-exp.el | 3 ++- testing/lisp/test-ob-exp.el | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/ob-exp.el b/lisp/ob-exp.el index b2be510..84eb011 100644 --- a/lisp/ob-exp.el +++ b/lisp/ob-exp.el @@ -341,11 +341,12 @@ replaced with its value." org-babel-exp-code-template `(("lang" . ,(nth 0 info)) ("body" . ,(org-escape-code-in-string (nth 1 info))) + ("flags" . ,(let ((f (assq :flags (nth 2 info)))) + (when f (concat " " (cdr f))))) ,@(mapcar (lambda (pair) (cons (substring (symbol-name (car pair)) 1) (format "%S" (cdr pair)))) (nth 2 info)) - ("flags" . ,(let ((f (nth 3 info))) (when f (concat " " f)))) ("name" . ,(or (nth 4 info) ""))))) (defun org-babel-exp-results (info type &optional silent hash) diff --git a/testing/lisp/test-ob-exp.el b/testing/lisp/test-ob-exp.el index 2f5342b..33585e4 100644 --- a/testing/lisp/test-ob-exp.el +++ b/testing/lisp/test-ob-exp.el @@ -303,6 +303,15 @@ Here is one at the end of a line. =2= (org-export-execute-babel-code) (buffer-string))))) +(ert-deftest ob-export/export-src-block-with-flags () + "Test exporting a source block with a flag." + (should + (string-match "\\`#\\+BEGIN_SRC emacs-lisp -some-flag$" + (org-test-with-temp-text + "#+BEGIN_SRC emacs-lisp :flags -some-flag\n\(+ 1 1)\n#+END_SRC" + (org-export-execute-babel-code) + (buffer-string))))) + (provide 'test-ob-exp) ;;; test-ob-exp.el ends here -- 1.8.5.3