On Thu, Jun 8, 2017 at 5:10 PM Nicolas Goaziou <m...@nicolasgoaziou.fr>
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