Subject: bug#19471: Emacs can't copy text

From: Stephen Berman <[email-masked]>
Date: Mon, 04 Jul 2016 11:03:39 +0200

On Sun, 03 Jul 2016 23:31:09 -0400 [email-masked] wrote:

> retitle 19471 Can't copy display-string text
> severity 19471 wishlist
> found 19471 25.0.95
> quit
>
> "Kelly Dean" <[email-masked]> writes:
>
>> Do:
>> C-h i g (elisp)translation keymaps RET
>> C-HOME C-SPACE DOWN M-w
>> C-x b foo RET C-y
>>
>> What it looks like you copied is ⌜(elisp)Top > Keymaps > Translation
>> Keymaps⌝. But when you paste it, you instead get
>> ⌜File: elisp.info, Node: Translation Keymaps, Next: Key Binding Commands,
>> Prev: Remapping Commands, Up: Keymaps⌝
>>
>> I suppose that's rational in some twisted sense, but it's unreasonable
>> user-unfriendliness for a text editor.
>> See my message ⌜Re: Correspondence between web-pages and Info-pages⌝ in
>> emacs-devel for why this matters.
>>
>> I tried switching the buffer to fundamental mode in order to copy the
>> text, but that didn't solve the problem, so Emacs apparently has some
>> kind of low-level text-mangling voodoo that hijacks kill-ring-save.
>
> It's implemented by an overlay with a display property.  Normal Emacs
> text copying commands work on the underlying text, rather than the
> displayed one.  You can see the what overlays/properties are in effect
> by doing C-u C-x = on the string in question.
>
> Perhaps we could add some feature to be able to copy the displayed
> string instead of the underlying text.

In fact, with text properties instead of overlays, the displayed string
is copied (cf. the variable yank-handled-properties), as can be seen by
copying the first line below the section title of the above Info node:

   When the ‘read-key-sequence’ function reads a key sequence (*note Key

"see " is a display text property, but appears when this text is yanked.

So the disparity between copying and yanking the two bits of text here
does seem user-unfriendly.

Steve Berman