all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: M-w, then C-y.  C-y inserts text properties that aren't on original.
Date: Fri, 19 Feb 2010 14:35:13 +0000	[thread overview]
Message-ID: <20100219143513.GC918@muc.de> (raw)
In-Reply-To: <20100219122419.GA918@muc.de>

On Fri, Feb 19, 2010 at 12:24:19PM +0000, Alan Mackenzie wrote:

> On Fri, Feb 19, 2010 at 11:22:55AM +0200, Eli Zaretskii wrote:

> > Can you please give a precise recipe, starting with "emacs -Q", for
> > reproducing the problem?  I don't know enough about C++ Mode internals
> > to understand what you say.

> #########################################################################
> emacs -Q
> (defvar propp-var nil)
> (put 'propp-var 'foo t)

> Create buffer "foo" and put a line of text (including NL) into it.

> (with-current-buffer "foo" (put-text-property 1 2 'category 'propp-var))

> In foo:
> M-<                                     ; goto BOB
> C-<space> C-n M-w                       ; Copy L1 into the kill ring
> C-y                                     ; Yank it as L2

> M-<   C-u C-x =                         ; Get details of char at BOB
>     There are text properties here:
>       category             propp-var    ; <==============================
>       fontified            t

> C-n   C-u C-x =                         ; Get details of char at BOL 2
>     There are text properties here:
>       fontified            t
>       foo                  t            ; <==============================
> #########################################################################

> Note that where the original "had" a 'foo property by indirection through
> the 'category, the copy has spuriously short-circuited the 'category
> indirection.

I've found it.

`yank' calls `insert-for-yank' calls `insert', which inserts the top of
the kill ring correctly into the buffer.  Then...

`insert-for-yank' carries on, and calls `remove-yank-excluded-properties'
which deliberately changes 'category properties into other properties.

Presumably there was some special case in the distant past which required
this transformation.  It is surely wrong in the general case - yanking
into a buffer shouldn't add text properties which weren't in the
original - surely?

I'm going to try and track down that special case.  It looks like I'll
have to fix the inserted string in CC Mode by hand.

-- 
Alan Mackenzie (Nuremberg, Germany).




  reply	other threads:[~2010-02-19 14:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-18 20:29 M-w, then C-y. C-y inserts text properties that aren't on original Alan Mackenzie
2010-02-19  4:47 ` Stefan Monnier
2010-02-19  9:22 ` Eli Zaretskii
2010-02-19 12:24   ` Alan Mackenzie
2010-02-19 14:35     ` Alan Mackenzie [this message]
2010-02-20  9:02       ` Eli Zaretskii
2010-02-20  9:25         ` Eli Zaretskii
     [not found]           ` <20100221215951.GD4407@muc.de>
2010-02-22  4:12             ` Eli Zaretskii
2010-02-22 12:56               ` Alan Mackenzie
2010-02-22 22:11                 ` Daniel Colascione
2010-02-23  4:43           ` Stefan Monnier
  -- strict thread matches above, loose matches on Subject: below --
2010-02-22 20:30 MON KEY

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=20100219143513.GC918@muc.de \
    --to=acm@muc.de \
    --cc=eliz@gnu.org \
    --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 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.