Merge branch 'master' of orgmode.org:org-mode

This commit is contained in:
Bastien Guerry 2012-04-11 00:44:05 +02:00
commit 5adb7638fe
3 changed files with 52 additions and 16 deletions

View file

@ -3415,17 +3415,17 @@ Return Org syntax as a string."
(results (funcall interpreter blob contents)))
;; Update PREVIOUS.
(setq previous type)
;; Build white spaces.
(cond
((eq type 'org-data) results)
((memq type org-element-all-elements)
(concat
(org-element-interpret--affiliated-keywords blob)
(org-element-normalize-string results)
(make-string (org-element-property :post-blank blob) 10)))
(t (concat
results
(make-string (org-element-property :post-blank blob) 32))))))))
;; Build white spaces. If no `:post-blank' property is
;; specified, assume its value is 0.
(let ((post-blank (or (org-element-property :post-blank blob) 0)))
(cond
((eq type 'org-data) results)
((memq type org-element-all-elements)
(concat
(org-element-interpret--affiliated-keywords blob)
(org-element-normalize-string results)
(make-string post-blank 10)))
(t (concat results (make-string post-blank 32)))))))))
(org-element-contents data) ""))
(defun org-element-interpret-secondary (secondary)
@ -3450,14 +3450,19 @@ If there is no affiliated keyword, return the empty string."
(let (dual)
(when (member key org-element-dual-keywords)
(setq dual (cdr value) value (car value)))
(concat "#+" key (and dual (format "[%s]" dual)) ": "
(concat "#+" key
(and dual
(format "[%s]"
(org-element-interpret-secondary dual)))
": "
(if (member key org-element-parsed-keywords)
(org-element-interpret-secondary value)
value)
"\n"))))))
(mapconcat
(lambda (key)
(let ((value (org-element-property (intern (concat ":" key)) element)))
(let ((value (org-element-property (intern (concat ":" (downcase key)))
element)))
(when value
(if (member key org-element-multiple-keywords)
(mapconcat (lambda (line)

View file

@ -152,7 +152,7 @@ it's header arguments."
"Wrap body in a \"main\" function call if none exists."
(if (string-match "^[ \t]*[intvod]+[ \t\n\r]*main[ \t]*(.*)" body)
body
(format "int main() {\n%s\n}\n" body)))
(format "int main() {\n%s\nreturn(0);\n}\n" body)))
(defun org-babel-prep-session:C (session params)
"This function does nothing as C is a compiled language with no

View file

@ -261,7 +261,7 @@
;;; Granularity
;;;; Granularity
(ert-deftest test-org-element/granularity ()
"Test granularity impact on buffer parsing."
@ -346,7 +346,38 @@ Paragraph \\alpha."
;;; Navigation tools.
;;;; Interpretation.
(ert-deftest test-org-element/interpret-affiliated-keywords ()
"Test if affiliated keywords are correctly interpreted."
;; Interpret simple keywords.
(should
(equal
(org-element-interpret-data
'(org-data nil (paragraph (:name "para") "Paragraph")))
"#+NAME: para\nParagraph\n"))
;; Interpret multiple keywords.
(should
(equal
(org-element-interpret-data
'(org-data nil (paragraph (:attr_ascii ("line1" "line2")) "Paragraph")))
"#+ATTR_ASCII: line1\n#+ATTR_ASCII: line2\nParagraph\n"))
;; Interpret parsed keywords.
(should
(equal
(org-element-interpret-data
'(org-data nil (paragraph (:caption ("caption")) "Paragraph")))
"#+CAPTION: caption\nParagraph\n"))
;; Interpret dual keywords.
(should
(equal
(org-element-interpret-data
'(org-data nil (paragraph (:caption (("long") "short")) "Paragraph")))
"#+CAPTION[short]: long\nParagraph\n")))
;;;; Navigation tools.
(ert-deftest test-org-element/forward-element ()
"Test `org-element-forward' specifications."