Дословный вывод скобок с орг-бабель

Используя 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)))

Я также отправил патч в список рассылки.

Другие вопросы по тегам