diff options
author | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2016-05-01 01:30:57 +0200 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2016-05-01 01:30:57 +0200 |
commit | 590cb1227a2cdb1a1df70665f80f3b4ff13ce3fc (patch) | |
tree | 247dbf55158b5da56c7f983950437c0560b7742b | |
parent | bb034dfe049a5804b6c0e0b93320409b1116e010 (diff) | |
parent | af853dd3aa4ce42f8e860ed45ced7f922cb08091 (diff) | |
download | org-mode-590cb1227a2cdb1a1df70665f80f3b4ff13ce3fc.tar.gz |
Merge branch 'maint'
-rw-r--r-- | lisp/org.el | 35 | ||||
-rw-r--r-- | testing/lisp/test-org.el | 2 |
2 files changed, 19 insertions, 18 deletions
diff --git a/lisp/org.el b/lisp/org.el index dcd2d5a..feb7196 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -7178,23 +7178,24 @@ specifying which drawers should not be hidden." Otherwise make it visible. When optional argument ELEMENT is a parsed drawer, as returned by `org-element-at-point', hide or show that drawer instead." - (when (save-excursion - (beginning-of-line) - (org-looking-at-p org-drawer-regexp)) - (let ((drawer (or element (org-element-at-point)))) - (when (memq (org-element-type drawer) '(drawer property-drawer)) - (let ((post (org-element-property :post-affiliated drawer))) - (save-excursion - (outline-flag-region - (progn (goto-char post) (line-end-position)) - (progn (goto-char (org-element-property :end drawer)) - (skip-chars-backward " \r\t\n") - (line-end-position)) - flag)) - ;; When the drawer is hidden away, make sure point lies in - ;; a visible part of the buffer. - (when (and flag (> (line-beginning-position) post)) - (goto-char post))))))) + (let ((drawer (or element + (and (save-excursion + (beginning-of-line) + (org-looking-at-p org-drawer-regexp)) + (org-element-at-point))))) + (when (memq (org-element-type drawer) '(drawer property-drawer)) + (let ((post (org-element-property :post-affiliated drawer))) + (save-excursion + (outline-flag-region + (progn (goto-char post) (line-end-position)) + (progn (goto-char (org-element-property :end drawer)) + (skip-chars-backward " \r\t\n") + (line-end-position)) + flag)) + ;; When the drawer is hidden away, make sure point lies in + ;; a visible part of the buffer. + (when (and flag (> (line-beginning-position) post)) + (goto-char post)))))) (defun org-subtree-end-visible-p () "Is the end of the current subtree visible?" diff --git a/testing/lisp/test-org.el b/testing/lisp/test-org.el index c971625..591e83f 100644 --- a/testing/lisp/test-org.el +++ b/testing/lisp/test-org.el @@ -4596,7 +4596,7 @@ Paragraph<point>" (get-char-property (line-end-position) 'invisible))) ;; Test optional argument. (should - (org-test-with-temp-text ":D1:\nc1\n:END:\n\n:D2:\nc2\n:END:" + (org-test-with-temp-text "Text\n:D1:\nc1\n:END:\n\n:D2:\nc2\n:END:" (let ((drawer (save-excursion (search-forward ":D2") (org-element-at-point)))) (org-flag-drawer t drawer) |