all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@IRO.UMontreal.CA>
To: martin rudalics <rudalics@gmx.at>
Cc: emacs-pretest-bug@gnu.org,
	Stephen Berman <Stephen.Berman@gmx.net>,
	emacs-devel@gnu.org
Subject: Re: invisible
Date: Sun, 25 Nov 2007 22:20:51 -0500	[thread overview]
Message-ID: <jwv8x4lr9l6.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <4747EFE8.5090405@gmx.at> (martin rudalics's message of "Sat, 24 Nov 2007 10:33:28 +0100")

> I don't know.  I'd have to gdb set_point_both to find out but doing so
> is awkward here.  Maybe you could give it a try.  I could imagine that
> invisibility and intangibility properties get mixed up.  On the other
> hand it might be simply TRT to do for redisplay after an interactive
> command.  Miles and Stefan used to work on this but I'm afraid they
> won't tell us ...

Indeed.  I don't care about the behavior being right in all conceivable
cases because I consider it simply impossible.  So I have no intention
spending time trying to analyze each and every problematic case
presented in this thread.  No time for that.

If you have a conrete situation where the current behavior is
problematic, firsyt you need to understand how those things work:
there are 2 places where invisibility impacts movement:
- when combined with `intangible', it impacts every single movement of
  `point', including within elisp functions.  This may "do the right
  thing" in some sense, but it tends to break a lot of code, and
  it can be terribly difficult to write code that works in the face of
  intangible properties.  So I highly recommend against the use of
  `intangible' except for those rare cases where it's *really*
  absolutely needed.
- when not combined with `intangible', invisible properties have the
  effect (just like composition and display properties) that after each
  *command* (i..e more or less just after running post-command-hook)
  point is moved outside of the invisible text.  Now since it's done at
  the end of a command (which may have moved point many times in
  arbitrarily complex ways), you can't do it right 100% of the time.
  OTOH this interacts fine with pretty much any elisp code.

Many of the problems you point out have to do with interactions with C-n
and C-p which are surprisingly complex functions.  The interaction
between all three is even worse.

So if you can try and reproduce the problem with only C-n/C-p (i.e. no
intangible text and with non-nil disable-point-adjustement) or with
only intangible text or with only invisible text, that makes it more
likely we can try and fix it.

Also the interaction with those things is sufficiently bad, that there
are many problematic cases.  So if the problem only appears when you mix
those, to have a better chance of seeing your bug fixed, try to make
sure the symptom is really serious: e.g. C-n does move at all (or moves
backward).  And focus on *1* problem at a time.

> Meanwhile could you please check my patch for simple.el too?

Please post it again,


        Stefan

  parent reply	other threads:[~2007-11-26  3:20 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20040225.150142.12214540.kazu@iijlab.net>
     [not found] ` <q5gvfluxljk.fsf@lucent.com>
     [not found]   ` <200402282128.i1SLSuY15359@raven.dms.auburn.edu>
     [not found]     ` <200402290224.i1T2Oip15705@raven.dms.auburn.edu>
2007-11-09 21:59       ` invisible Stephen Berman
2007-11-18  0:35         ` invisible Stephen Berman
2007-11-18 15:27           ` invisible martin rudalics
2007-11-23 12:24             ` invisible Stephen Berman
2007-11-23 14:25               ` invisible martin rudalics
2007-11-23 18:19                 ` invisible Stephen Berman
2007-11-23 19:59                   ` invisible martin rudalics
2007-11-23 20:31                     ` invisible Stephen Berman
2007-11-23 21:52                       ` invisible martin rudalics
2007-11-23 23:04                         ` invisible Stephen Berman
2007-11-24  9:33                           ` invisible martin rudalics
2007-11-24 10:11                             ` invisible Johan Bockgård
2007-11-24 10:30                               ` invisible martin rudalics
2007-11-24 10:34                                 ` invisible martin rudalics
2007-11-24 19:50                             ` invisible Stephen Berman
2007-11-24 22:26                               ` invisible martin rudalics
2007-11-26  3:25                                 ` invisible Stefan Monnier
2007-11-26  8:02                                   ` invisible martin rudalics
2007-11-26 15:17                                     ` invisible Stefan Monnier
2007-11-26 19:10                                       ` invisible martin rudalics
2007-11-26 20:19                                         ` invisible Stefan Monnier
2007-11-26  3:20                             ` Stefan Monnier [this message]
2007-11-26  7:59                               ` invisible martin rudalics
2007-11-26 15:29                                 ` invisible Stefan Monnier
2007-11-26 19:09                                   ` invisible martin rudalics
2007-11-26 20:16                                     ` invisible Stefan Monnier
2007-11-27 13:11                                       ` invisible martin rudalics
2007-11-27 18:46                                       ` invisible martin rudalics
2007-11-27 22:44                                         ` invisible Stefan Monnier
2007-11-28  9:16                                           ` invisible martin rudalics
2007-11-28 19:20                                             ` invisible Stefan Monnier
2007-11-28 22:41                                               ` invisible martin rudalics
2007-11-28 23:23                                         ` invisible Stephen Berman
2007-11-29 10:15                                           ` invisible martin rudalics
2007-11-29 16:13                                             ` invisible Stefan Monnier
2007-11-29  1:04                                         ` invisible Richard Stallman
2007-11-29 10:26                                           ` invisible martin rudalics
2007-11-29 15:57                                             ` invisible Stefan Monnier
2007-11-29 16:36                                               ` invisible martin rudalics
2007-11-29 18:53                                                 ` invisible Stefan Monnier
2007-11-29 19:55                                                   ` invisible martin rudalics
2007-11-30 17:19                                               ` invisible martin rudalics
2007-11-30 18:59                                                 ` invisible Stefan Monnier
2007-11-30 22:09                                                   ` invisible martin rudalics
2007-12-01  3:11                                                     ` invisible Stefan Monnier
2007-12-01  9:44                                                       ` invisible martin rudalics
2007-12-01 20:41                                                         ` invisible Stefan Monnier
2007-12-02  1:15                                                           ` invisible Johan Bockgård
2007-12-02  9:47                                                           ` invisible martin rudalics
2007-11-23 14:37               ` invisible martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwv8x4lr9l6.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=Stephen.Berman@gmx.net \
    --cc=emacs-devel@gnu.org \
    --cc=emacs-pretest-bug@gnu.org \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.