From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: buffer-string considered as a Bad Thing. Date: Tue, 4 Jun 2024 20:51:51 +0000 Message-ID: References: <878qzk8nkz.fsf@igel.home> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="40787"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Andreas Schwab Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Jun 04 22:52:55 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sEb9L-000ARg-JP for ged-emacs-devel@m.gmane-mx.org; Tue, 04 Jun 2024 22:52:55 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sEb8S-0005fz-3X; Tue, 04 Jun 2024 16:52:00 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sEb8P-0005fT-IV for emacs-devel@gnu.org; Tue, 04 Jun 2024 16:51:57 -0400 Original-Received: from mail.muc.de ([193.149.48.3]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sEb8N-0003aU-E4 for emacs-devel@gnu.org; Tue, 04 Jun 2024 16:51:57 -0400 Original-Received: (qmail 81333 invoked by uid 3782); 4 Jun 2024 22:51:52 +0200 Original-Received: from muc.de (pd953a1a0.dip0.t-ipconnect.de [217.83.161.160]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Tue, 04 Jun 2024 22:51:51 +0200 Original-Received: (qmail 12521 invoked by uid 1000); 4 Jun 2024 20:51:51 -0000 Content-Disposition: inline In-Reply-To: <878qzk8nkz.fsf@igel.home> X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.3; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:319828 Archived-At: Hello, Andreas. On Tue, Jun 04, 2024 at 22:22:52 +0200, Andreas Schwab wrote: > On Jun 04 2024, Alan Mackenzie wrote: > > As an example, in pp, the function pp-to-string does this. To see the > > effect, try > > M-: (pp "foo \"bar\" baz") > > .. This gets printed correctly to the temporary buffer *temp* as: > > "foo \"bar\" baz" ;; (a 13 character string) > > , but buffer-string wrongly converts those literal characters to > > "foo \\\"bar\\\" baz" ;; (a 15 character string) > That's not what I get. > ELISP> (pp-to-string "foo \"bar\" baz") > "\"foo \\\"bar\\\" baz\"" > This string correctly represents the contents of the buffer. That may well be, but the contents of that buffer don't reflect the contents of the original string which was printed by pp. This string contained no backslash characters. The output string contains two of them. pp-to-string prints (in the sense of read-eval-print loop) its argument to the buffer. To get that argument back from the buffer, it needs to be _read_, not merely copied. Did you consider my two suggestions for fixing this? If so, what did you think of them? > -- > Andreas Schwab, schwab@linux-m68k.org > GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 > "And now for something completely different." -- Alan Mackenzie (Nuremberg, Germany).