GNU bug report logs - #55727
29.0.50; Incorrect zero symbol transcoding between applications

Previous Next

Package: emacs;

Reported by: Петров Андрей <an.petrov <at> pay-lab.ru>

Date: Mon, 30 May 2022 13:10:01 UTC

Severity: normal

Found in version 29.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Петров Андрей <an.petrov <at> pay-lab.ru>
Cc: 55727 <at> debbugs.gnu.org
Subject: bug#55727: 29.0.50; Incorrect zero symbol transcoding between applications
Date: Mon, 30 May 2022 17:06:02 +0300
> From: Петров Андрей <an.petrov <at> pay-lab.ru>
> Date: Mon, 30 May 2022 13:08:52 +0000
> 
> 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.

Yes.  And it's a feature.  From select.el:

      ;; Most programs are unable to handle NUL bytes in strings.
      (setq str (string-replace "\0" "\\0" str))




This bug report was last modified 2 years and 354 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.