Browse Source

org-element: Fix corner case

* lisp/org-element.el (org-element--cache-for-removal): Fix corner
  case when changes happen in a robust element (e.g., a center block)
  within a fragile element (e.g., a plain list).  Do not assume that
  all parents from a robust element are also robust.
Nicolas Goaziou 10 years ago
parent
commit
126e2bcebd
1 changed files with 3 additions and 6 deletions
  1. 3 6
      lisp/org-element.el

+ 3 - 6
lisp/org-element.el

@@ -5456,12 +5456,9 @@ changes."
 		   (<= (org-element-property :contents-begin up) beg)
 		   (> (org-element-property :contents-end up) end))
 	      ;; UP is a robust greater element containing changes.
-	      ;; We only need to extend its ending boundaries and
-	      ;; those of all its parents.
-	      (while up
-		(org-element--cache-shift-positions
-		 up offset '(:contents-end :end))
-		(setq up (org-element-property :parent up)))
+	      ;; We only need to extend its ending boundaries.
+	      (org-element--cache-shift-positions
+	       up offset '(:contents-end :end))
 	    (setq before up)))
 	;; We're at top level element containing ELEMENT: if it's
 	;; altered by buffer modifications, it is first element in