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).
next prev parent 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.