org-element: Fix block parsing in lists

* lisp/org-element.el (org-element--list-struct): Fix block parsing in
  lists.
* testing/lisp/test-org-element.el: Add test.

Reported-by: Omid <omidlink@gmail.com>
This commit is contained in:
Nicolas Goaziou 2013-10-16 10:36:48 +02:00
parent c1ea2c3df9
commit b1e7b86fda
2 changed files with 10 additions and 3 deletions

View File

@ -1230,9 +1230,10 @@ CONTENTS is the contents of the element."
(throw 'exit (sort struct 'car-less-than-car))))))
;; Skip blocks (any type) and drawers contents.
(cond
((and (looking-at "#\\+BEGIN\\(:[ \t]*$\\|_\\S-\\)+")
((and (looking-at "#\\+BEGIN\\(:\\|_\\S-+\\)")
(re-search-forward
(format "^[ \t]*#\\+END%s[ \t]*$" (match-string 1))
(format "^[ \t]*#\\+END%s[ \t]*$"
(match-string-no-properties 1))
limit t)))
((and (looking-at drawers-re)
(re-search-forward "^[ \t]*:END:[ \t]*$" limit t))))

View File

@ -1127,7 +1127,13 @@ DEADLINE: <2012-03-29 thu.>"
(equal '(("- item"))
(org-test-with-temp-text "- - item"
(org-element-map
(org-element-parse-buffer) 'paragraph 'org-element-contents)))))
(org-element-parse-buffer) 'paragraph 'org-element-contents))))
;; Block in an item: ignore indentation within the block.
(should
(org-test-with-temp-text "- item\n #+begin_src emacs-lisp\n(+ 1 1)\n #+end_src"
(forward-char)
(goto-char (org-element-property :end (org-element-at-point)))
(eobp))))
;;;; Keyword