1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-11-29 07:58:21 +00:00

Fix bug when hiding archived subtrees

Emilio Arias writes:

> egallego@babel.ls.fi.upm.es (Emilio Jess Gallego Arias) writes:
>
> To reproduce save this minimal org file:
>
> #+STARTUP: even
> * A
>  :PROPERTIES:
>  :ARCHIVE: a
>  :END:
> ** B 								:ARCHIVE:
>   Some text
>
> and hit TAB when in the * A headline; then the ** B headline contents
> will be incorrectly shown.
>
> I've found the culprit in org-hide-archived-subtrees:
>
> ,----
> | (defun org-hide-archived-subtrees (beg end)
> |   "Re-hide all archived subtrees after a visibility state change."
> |   (save-excursion
> |     (let* ((re (concat ":" org-archive-tag ":")))
> |       (goto-char beg)
> |       (while (re-search-forward re end t)
> | 	(and (org-on-heading-p) (org-flag-subtree t))
> | 	(org-end-of-subtree t)))))
> `----
>
> The problem is that the RE matches the first archive "property" and
> then does an org-end-of-subtree which skips all the subtrees of the
> parent tree where the ARCHIVE property is located.
>
> I've replaced this part
>
> | 	(and (org-on-heading-p) (org-flag-subtree t))
> | 	(org-end-of-subtree t)))))
>
> by
>
> |       (when (org-on-heading-p)
> |             (org-flag-subtree t)
> |             (org-end-of-subtree t)))))))
>
> so org-end-of-subtree is only called if we are really in a headline. I
> think that makes sense.
>
This commit is contained in:
Carsten Dominik 2010-02-16 05:30:49 +01:00
parent c9d7c2e966
commit 449e6b4560
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2010-02-16 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-hide-archived-subtrees): Don't jump to end of
subtree if the match was not in a headline.
2010-02-15 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-align-tags): Avoid side effects on

View File

@ -3597,8 +3597,9 @@ collapsed state."
(let* ((re (concat ":" org-archive-tag ":")))
(goto-char beg)
(while (re-search-forward re end t)
(and (org-on-heading-p) (org-flag-subtree t))
(org-end-of-subtree t)))))
(when (org-on-heading-p)
(org-flag-subtree t)
(org-end-of-subtree t))))))
(defun org-flag-subtree (flag)
(save-excursion