unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Drew Adams <drew.adams@oracle.com>
Cc: emacs-devel@gnu.org
Subject: Re: Overlay insertion types, markers, etc.
Date: Fri, 15 Nov 2019 12:33:08 +0200	[thread overview]
Message-ID: <83lfsh2zvf.fsf@gnu.org> (raw)
In-Reply-To: <20c74b83-6272-44e9-b4ac-829fd4cd0143@default> (message from Drew Adams on Tue, 12 Nov 2019 00:09:18 +0000 (UTC))

> Date: Tue, 12 Nov 2019 00:09:18 +0000 (UTC)
> From: Drew Adams <drew.adams@oracle.com>
> 
> Why, if you pass markers, isn't the default to use
> the insertion types of those markers?

Because the markers passed to make-overlay are treated only as
representing buffer positions, similarly to other functions, like
goto-char.

> 2. `make-overlay' seems to be the only way to specify
> the insertion types for an overlay.  Is that right,
> or did I miss something?

That's right.

> Why isn't there (or is there?) a simple way to
> change the "marker insertion types" of an existing
> overlay?

Because it's easy to do that by hand?

> Suppose you want to copy an existing overlay and
> then change some things in the copy.  You can't
> change the insertion types for it, right?
> 
> I guess you need to use `make-overlay', specifying
> insertion types, and then explicitly copy everything
> else from the first overlay.  Is that right?

Yes.

> 3. Similarly, the default BUFFER for `make-overlay'
> is the current buffer, even if you pass markers.
> 
> Third question (similar to the first):
> 
> Why, if you pass markers to `make-overlay', and
> you don't pass arg BUFFER, isn't the default to
> use the buffer of those markers?

Because that just complicates the implementation with no real gain:
what to do if the markers point to different buffers, or if their
buffers don't exist, or the position information doesn't fit, etc.?

> 4. (Repeating) "An overlay uses markers to record
> its beginning and end."
> 
> It seems that an overlay "uses markers" but those
> aren't the markers you passed to `make-overlay'.
> Is that right?

Yes.

> Can you retrieve the markers that are "used by"
> an overlay, i.e., as markers?

No.  We don't want to give Lisp access to those markers, as that could
mean giving to long a rope to Lisp programs to hang themselves.

> "This is the only valid way to change the endpoints
> of an overlay.  Do not try modifying the markers in
>                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> the overlay by hand, as that fails to update other
> vital data structures and can cause some overlays
> to be lost."
> 
> That makes me wonder.  I don't even see how you
> could try to "modify the markers of the overlay"
> (with Lisp).

I believe that remark is for C programming.



  parent reply	other threads:[~2019-11-15 10:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-12  0:09 Overlay insertion types, markers, etc Drew Adams
2019-11-13 15:36 ` Drew Adams
2019-11-15 10:33 ` Eli Zaretskii [this message]
     [not found] <<20c74b83-6272-44e9-b4ac-829fd4cd0143@default>
     [not found] ` <<83lfsh2zvf.fsf@gnu.org>
2019-11-15 16:54   ` Drew Adams
2019-11-15 17:12     ` Eli Zaretskii
     [not found] <<<20c74b83-6272-44e9-b4ac-829fd4cd0143@default>
     [not found] ` <<<83lfsh2zvf.fsf@gnu.org>
     [not found]   ` <<a2de3d64-2fb6-41e4-aabe-0be2ec404478@default>
     [not found]     ` <<83v9rl12t1.fsf@gnu.org>
2019-11-15 17:32       ` Drew Adams
2019-11-17  2:15         ` Richard Stallman
2019-11-17  2:26           ` Drew Adams
2019-11-17 15:55             ` Stefan Monnier
2019-11-17 17:35               ` Drew Adams
2019-11-20 16:17             ` Richard Stallman
2019-11-20 17:33               ` Eli Zaretskii
2019-11-20 17:38               ` Drew Adams

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=83lfsh2zvf.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).