emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Backward incompatible outline-invisible-p change in emacs master for


From: Kaushal Modi
Subject: [O] Backward incompatible outline-invisible-p change in emacs master for Org (Was: 6 failing tests on master branch)
Date: Wed, 14 Jun 2017 14:56:55 +0000

On Thu, Jun 8, 2017 at 5:10 PM Nicolas Goaziou <address@hidden> wrote:
> Test test-org/custom-properties condition:
>     (ert-test-failed
>      ((should
>        (let
>            (...)
>          (org-test-with-temp-text "* H
> :PROPERTIES:
> <point>:FOO: val
> :END:
> " ... ...)))
>       :form
>       (let
>           ((org-custom-properties ...))
>         (org-test-with-temp-text "* H
> :PROPERTIES:
> <point>:FOO: val
> :END:
> "
>          (org-toggle-custom-properties-visibility)
>          (org-invisible-p2)))
>       :value nil))
>    FAILED  646/734  test-org/custom-properties
>
>     (ert-test-failed
>      ((should
>        (org-test-with-temp-text "#+BEGIN_CENTER
> P1
>
> P2
> #+END_CENTER
> P3"
>         (org-hide-block-toggle)
>         (org-forward-paragraph)
>         (looking-at "P3")))
>       :form
>       (let
>           ((inside-text ...)
>            (org-mode-hook nil))
>         (with-temp-buffer
>           (org-mode)
>           (let ... ...)
>           (org-hide-block-toggle)
>           (org-forward-paragraph)
>           (looking-at "P3")))
>       :value nil))
>    FAILED  668/734  test-org/forward-paragraph

These one are related to invisible text. I don't what is going to change
in this area in next Emacs release.

This commit in emacs master is causing this failure: http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=9cc59ffbbb2f20fbbf1c72d2e0c9dc47c7906a99

Earlier outline-invisible-p simply returned the value of  (get-char-property (or pos (point)) 'invisible).

But now (in emacs master), it does a check if that value is equal to 'outline.

That test fails as (get-char-property (or pos (point)) 'invisible) returns 'org-hide-block, not 'outline.

Now outline-invisible-p is used at many places!

lisp/org-archive.el
227:     cl (if (outline-invisible-p) (org-end-of-subtree nil t))))
425:     cl (if (outline-invisible-p) (org-end-of-subtree nil t))))
573:     cl (if (outline-invisible-p) (org-end-of-subtree nil t))))
594:     cl (if (outline-invisible-p) (org-end-of-subtree nil t))))

lisp/org-clock.el
2965:          (when (outline-invisible-p) (org-show-context))))))

lisp/org.el
6926:   (when (outline-invisible-p) (org-flag-heading nil))))
6960:   (when (outline-invisible-p) (org-flag-heading nil)))
7134:       (when (and (not (outline-invisible-p))
7136:                    (goto-char (point-at-eol)) (outline-invisible-p)))
7489:     (when (or (outline-invisible-p) (org-invisible-p2))
7530:               (when (outline-invisible-p)
8387:                 (setq folded (outline-invisible-p)))
8483:                   (setq folded (outline-invisible-p)))
8536:   (let* ((visp (not (outline-invisible-p)))
8593:     (when (and (outline-invisible-p) visp)
10441:    (when (outline-invisible-p) (org-show-context)))
11144:    (when (or (outline-invisible-p) (org-invisible-p2)) (org-show-context 'mark-goto))))
12395:   cl (when (outline-invisible-p) (org-end-of-subtree nil t))))
13323:       (lambda () (when (outline-invisible-p) (org-end-of-subtree nil t))))
13340:       (lambda () (when (outline-invisible-p) (org-end-of-subtree nil t))))
14887:   '(when (outline-invisible-p) (org-end-of-subtree nil t))))
23850:  ;; Early versions of noutline don't have `outline-invisible-p'.
23852:    (outline-invisible-p)))
23858:    ;; Early versions of noutline don't have `outline-invisible-p'.
23859:    (outline-invisible-p)))
24129:                      (not (outline-invisible-p
24265:          ((outline-invisible-p (line-end-position))
24352:    (when (outline-invisible-p (point)) (beginning-of-visual-line))))
24429:      (when (outline-invisible-p (line-end-position)) (org-cycle))
24910:       (or (outline-invisible-p)
24912:                     (outline-invisible-p)))
24918:       (outline-invisible-p))

lisp/org-list.el
158:(declare-function outline-invisible-p "outline" (&optional pos))
2260:             (outline-invisible-p)))

lisp/org-crypt.el
179:       (let ((folded (outline-invisible-p))
207:          (outline-invisible-p))))

contrib/lisp/org-drill.el
1458:;;          (when (and (not (outline-invisible-p))
1483:         (when (and (not (outline-invisible-p))

One solution would be to have a new function "org-invisible-p" that restores the old definition of outline-invisible-p. Interestingly I find that an "org-invisible-p" did exist back then, but it was replaced with outline-invisible-p in 2011 ( http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=84d7165d74a5061413168af435d61453be217933 ). Looks like that might need reverting.

I also find an org-invisible-p2 function, but it's not clear why it does a (backward-char  1) before doing invisibility check.. and that too eventually relies on outline-visible-p. (Turns out this function has a long history: http://orgmode.org/cgit.cgi/org-mode.git/commit/?id=93a4128a6fe47b4e05c0a7cb3ec14878b41d6000 )

I am copying Bastien and Paul as they would know the history behind the above referenced emacs master commit.
--

Kaushal Modi


reply via email to

[Prev in Thread] Current Thread [Next in Thread]