[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#55727: 29.0.50; Incorrect zero symbol transcoding between applicatio
From: |
Po Lu |
Subject: |
bug#55727: 29.0.50; Incorrect zero symbol transcoding between applications |
Date: |
Mon, 30 May 2022 21:42:51 +0800 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) |
Петров Андрей <an.petrov@pay-lab.ru> writes:
> Hello, team!
>
> Please check the following behavior:
>
> 1. Start two instances of emacs -Q.
> 2. Switch to the "*scratch*" buffer of the first one and type the following:
> M-: (insert (format "%S" "000\000000")) [RET]
> You should see "000^@000" string.
> 3. Copy the string into clipboard and paste into the other instance of
> Emacs (which you have started before).
> I get "000\0000" instead of "000\000000"
> 4. Try evaluating inserted text ("000\0000")
> C-c C-e
> I get "000^@0" instead of "000^@000".
>
> It seems that "^@" is transcoded between applications into "\0"
> instead of "\000". If I do the same test inside single instance
> of Emacs I get the correct result.
That's not a bug. Most programs cannot tolerate NUL bytes inside
selection strings, so the Emacs selection converter deliberately
replaces those inside a string with "\0" before sending the string to a
requestor.
When one Emacs instance owns the selection, the contents of the kill
ring are used directly when yanking text, so that conversion doesn't
take place.
bug#55727: 29.0.50; Incorrect zero symbol transcoding between applications, Eli Zaretskii, 2022/05/30