Дословный вывод скобок с орг-бабель
Используя babel с org-mode, я пытаюсь получить вывод следующего кода C:
#+begin_src C :includes <stdio.h> :results output verbatim :exports both
puts("[1] 2 3 3");
#+end_src
К сожалению, нажатие Cc Cc на этот блок приводит только к:
#+RESULTS:
: [1]
Кажется, что несмотря на мое использование :results verbatim
, вывод интерпретируется как-то и все после [1]
игнорируется Я хотел бы знать, как настроить org-babel так, чтобы приведенные выше результаты содержали полный вывод, т.е. я ожидаю:
#+RESULTS:
: [1] 2 3 3
Обратите внимание, что если я вывод не начинается с [.*]
отображается так, как я ожидаю:
#+begin_src C :includes <stdio.h> :results outputs verbatim :exports both
puts("foo");
puts("[1] 2 3 3");
#+end_src
#+RESULTS:
: foo
: [1] 2 3 3
Я использую Org-mode версии 8.2 (8.2-6-gd745cd-elpa).
1 ответ
Решение
Пришлось добавить одно письмо в источник, чтобы заставить это работать:
#+begin_src C :results output
puts("[1] 2 3 3");
#+end_src
#+RESULTS:
: [1] 2 3 3
Вот патч:
Modified lisp/ob-C.el
diff --git a/lisp/ob-C.el b/lisp/ob-C.el
index e9eec93..c35b3d0 100644
--- a/lisp/ob-C.el
+++ b/lisp/ob-C.el
@@ -106,7 +106,7 @@ or `org-babel-execute:C++'."
((lambda (results)
(org-babel-reassemble-table
(org-babel-result-cond (cdr (assoc :result-params params))
- (org-babel-read results)
+ (org-babel-read results t)
(let ((tmp-file (org-babel-temp-file "c-")))
(with-temp-file tmp-file (insert results))
(org-babel-import-elisp-from-file tmp-file)))
Я также отправил патч в список рассылки.