From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#27361: Re: bug#27361: 24.4; eshell/echo silently ignores -n argument Date: Sat, 15 Jan 2022 23:19:50 -0800 Message-ID: <3e33e420-b191-956b-96fd-459afd0fd551@gmail.com> References: <87tw3ilf4i.fsf@hagelb.org> <87fuewr4zt.fsf@users.sourceforge.net> <871sqgroft.fsf@hagelb.org> <17r2yfe7zo.fsf@fencepost.gnu.org> <87h7rz6oxb.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------DD147D9633974CA162362101" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25614"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Glenn Morris , 27361@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jan 16 08:22:57 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1n8zsP-0006S2-6j for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 16 Jan 2022 08:22:57 +0100 Original-Received: from localhost ([::1]:59872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n8zsN-0005e3-Ie for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 16 Jan 2022 02:22:55 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:56568) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n8zr5-0005de-N0 for bug-gnu-emacs@gnu.org; Sun, 16 Jan 2022 02:21:36 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49483) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n8zqY-0005tV-8g for bug-gnu-emacs@gnu.org; Sun, 16 Jan 2022 02:21:04 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n8zqX-00067B-Pu for bug-gnu-emacs@gnu.org; Sun, 16 Jan 2022 02:21:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 16 Jan 2022 07:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27361 X-GNU-PR-Package: emacs Original-Received: via spool by 27361-submit@debbugs.gnu.org id=B27361.164231760223416 (code B ref 27361); Sun, 16 Jan 2022 07:21:01 +0000 Original-Received: (at 27361) by debbugs.gnu.org; 16 Jan 2022 07:20:02 +0000 Original-Received: from localhost ([127.0.0.1]:42386 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n8zpZ-00065L-DL for submit@debbugs.gnu.org; Sun, 16 Jan 2022 02:20:02 -0500 Original-Received: from mail-oi1-f173.google.com ([209.85.167.173]:34582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n8zpX-000652-K9 for 27361@debbugs.gnu.org; Sun, 16 Jan 2022 02:20:00 -0500 Original-Received: by mail-oi1-f173.google.com with SMTP id r131so18868263oig.1 for <27361@debbugs.gnu.org>; Sat, 15 Jan 2022 23:19:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=MwAOwKNKU9eFsFTPwTBOltRMeLj5uKy2urM2En6RA8U=; b=Uud2ZbgEmEG5Q3FNmF8JEgb4yJKQf1a1yuCJFYQmdiRHSQauoimuZkCBsIZ1plvmBS KqJV6riYgbrcA5eqzkLWmlQZSewAWwg1RStCy4U6AaYYe2Y18SEGf3d2cRXn1HIjIoaJ ymZY+BYBBoJc1ypmBSH8u2jtEXoIXB/E2d7jcAbSZBWEIWBgYZU1J6YB/VAYvjVqaFzb 7b99hDL79Pnqb5IbwWfD3KG+J9pGL6Sy0Ho5WKwbtrwZV1Kw6y30hngU3CoWMjkGbrFt 3wRASvXnKAnnqaO50Ncn3R5uWWFyRWqrj8Fb4fYKduZ9Km1Jwxo+HgpF3w4stbyeVrkp Zy7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=MwAOwKNKU9eFsFTPwTBOltRMeLj5uKy2urM2En6RA8U=; b=z4VXNrj7fyyH4qEYn/etN6kw16OlkEAGzxkqnp3D6WuLn5PUVTdF+gcSEogk2IBmUH qplybnR309rvKjYVyo7QkUQ69qVNGoIHht8SpBMjnWMjuGHIv8p1au6osuk0qLswVS2e THE/HxHVxGuaElo03hW0CPM4/T+Kj79MkPHsPQarxSzUxzfBb7dVSLxd5gqVqY++m3x9 DtESJOHKX/pQFxOikDn2jwHXnh9dUleZnko8wCczPIMhLrnffnBZQyJNxgshVj70VM7j ngRRlv9S7TJmPnx/U8vv+QNheoSP7MPog0PtZ+sz8yK7tn880lKYOkyB2YHPKwGUFC4M oHzQ== X-Gm-Message-State: AOAM533RuQBQtSQqyL9UgoV3smZIgUcA/C7c8eZVMEtFugW+J6uvaZpa kr3BqvudAyo8xzdJlGFXOFU= X-Google-Smtp-Source: ABdhPJxCXwFNvdmuw8HABuO8QMl6WKlmnS588DdqpzwZQhSU0/wP9W3KkF0lM42FA6c0fd7O95MZ7w== X-Received: by 2002:aca:44c5:: with SMTP id r188mr19128464oia.177.1642317593900; Sat, 15 Jan 2022 23:19:53 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id s20sm3715841oop.21.2022.01.15.23.19.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 15 Jan 2022 23:19:53 -0800 (PST) In-Reply-To: <87h7rz6oxb.fsf@gnus.org> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:224365 Archived-At: This is a multi-part message in MIME format. --------------DD147D9633974CA162362101 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 9/15/2020 8:27 AM, Lars Ingebrigtsen wrote: > Glenn Morris writes: > >> - (concat (apply 'eshell-flatten-and-stringify args) "\n") >> + (concat (apply 'eshell-flatten-and-stringify args) >> + (unless output-newline "\n")) > > Hm... with or without the patch, and with eshell-plain-echo-behavior > set, I don't see any difference? > > I still get this in eshell: > > ~/src/emacs/trunk $ echo -n foo; echo bar > foo > bar I think this is due to `eshell-lisp-command' insisting that a newline is inserted after the output of *every* Lisp command (when executed interactively). It's easier to see what "-n" does by eval'ing: (eshell-command-result "echo hi") ;; and (eshell-command-result "echo -n hi") One solution to this bug would be to set `eshell-ensure-newline-p' to nil inside `eshell-echo'; then it will opt out of `eshell-lisp-command's trailing-newline insertion. I've attached a patch that does this, as well as (hopefully) resolving the unusual meaning of "-n" when echo outputs a Lisp-friendly result (i.e. when `eshell-plain-echo-behavior' is nil). Now, it warns the user to use "-N" instead if they want to add a trailing newline. Then, one day, the old meaning of "-n" can be removed. I'm not sure if this is the best way to emit a warning about this though; I wanted something that doesn't interfere with any Eshell scripts, but `display-warning' is a bit in-your-face. I also simplified the logic of `eshell/printnl'. Since the way it called `eshell-echo' always resulted in it printing the stringified form of each argument, it's simpler just to call `eshell-stringify' directly. Finally, I added a bit more detail about echo to the Eshell manual (taken partly from the commentary of eshell/em-basic.el), since I didn't quite understand its behavior initially. --------------DD147D9633974CA162362101 Content-Type: text/plain; charset=UTF-8; name="0001-In-Eshell-allow-n-to-suppress-the-trailing-newline-f.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-In-Eshell-allow-n-to-suppress-the-trailing-newline-f.pa"; filename*1="tch" RnJvbSA0NWQxMGM2NzhhM2M1ODQ4NmUwNTcxZDNjM2U4Y2U2NGZlYjM5Mjk5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMTUgSmFuIDIwMjIgMTU6MTY6MzEgLTA4MDAKU3ViamVjdDogW1BB VENIXSBJbiBFc2hlbGwsIGFsbG93ICItbiIgdG8gc3VwcHJlc3MgdGhlIHRyYWlsaW5nIG5l d2xpbmUgZm9yCiAicGxhaW4iIGVjaG8KCkluIGFkZGl0aW9uLCBhZGQgYSAiLU4iIG9wdGlv biB0byBleHBsaWNpdGx5IHJlcXVlc3QgYSBuZXdsaW5lLgoKKiBsaXNwL2VzaGVsbC9lbS1i YXNpYy5lbCAoZXNoZWxsLWVjaG8pOiBSZXNwZWN0IE9VVFBVVC1ORVdMSU5FIGV2ZW4Kd2hl biAnZXNoZWxsLXBsYWluLWVjaG8tYmVoYXZpb3InIGlzIG5vbi1uaWwuCihlc2hlbGwvZWNo byk6IEFkZCAiLU4iIG9wdGlvbiBhbmQgcmVjb21tZW5kIGl0cyB1c2Ugb3ZlciAiLW4iIGlu Ckxpc3AtZnJpZW5kbHkgZWNoby4KKGVzaGVsbC9wcmludG5sKTogU2ltcGxpZnk7ICdlc2hl bGwtc3RyaW5naWZ5JyBpcyBlcXVpdmFsZW50IHRvCmNhbGxpbmcgJ2VzaGVsbC1lY2hvJyBo ZXJlLgoKKiBkb2MvbWlzYy9lc2hlbGwudGV4aSAoQnVpbHQtaW4gY29tbWFuZHMpOiBFeHBh bmQgb24gdGhlCmRvY3VtZW50YXRpb24gb2YgZWNoby4KLS0tCiBkb2MvbWlzYy9lc2hlbGwu dGV4aSAgICB8IDEzICsrKysrKysrKystLS0KIGxpc3AvZXNoZWxsL2VtLWJhc2ljLmVsIHwg MzAgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMy IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9taXNj L2VzaGVsbC50ZXhpIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKaW5kZXggZjFkN2M2MzgwNS4u ZGY2ZTNiODYxZSAxMDA2NDQKLS0tIGEvZG9jL21pc2MvZXNoZWxsLnRleGkKKysrIGIvZG9j L21pc2MvZXNoZWxsLnRleGkKQEAgLTQwNyw5ICs0MDcsMTYgQEAgQnVpbHQtaW5zCiAKIEBp dGVtIGVjaG8KIEBjbWluZGV4IGVjaG8KLUVjaG9lcyBpdHMgaW5wdXQuICBJZiBAY29kZXtl c2hlbGwtcGxhaW4tZWNoby1iZWhhdmlvcn0gaXMKLW5vbi1AY29kZXtuaWx9LCBAY29tbWFu ZHtlY2hvfSB3aWxsIHRyeSB0byBiZWhhdmUgbW9yZSBsaWtlIGEgcGxhaW4KLXNoZWxsJ3Mg QGNvbW1hbmR7ZWNob30uCitFY2hvZXMgaXRzIGlucHV0LiAgQnkgZGVmYXVsdCwgdGhpcyBw cmludHMgaW4gYSBMaXNwLWZyaWVuZGx5IGZhc2hpb24KKyhzbyB0aGF0IHRoZSB2YWx1ZSBp cyB1c2VmdWwgdG8gYSBMaXNwIGNvbW1hbmQgdXNpbmcgdGhlIHJlc3VsdCBvZgorQGNvbW1h bmR7ZWNob30gYXMgYW4gYXJndW1lbnQpLiAgSWYgYSBzaW5nbGUgYXJndW1lbnQgaXMgcGFz c2VkLAorQGNvbW1hbmR7ZWNob30gcHJpbnRzIHRoYXQ7IGlmIG11bHRpcGxlIGFyZ3VtZW50 cyBhcmUgcGFzc2VkLCBpdAorcHJpbnRzIGEgbGlzdCBvZiBhbGwgdGhlIGFyZ3VtZW50czsg b3RoZXJ3aXNlLCBpdCBwcmludHMgdGhlIGVtcHR5CitzdHJpbmcuCisKK0lmIEBjb2Rle2Vz aGVsbC1wbGFpbi1lY2hvLWJlaGF2aW9yfSBpcyBub24tQGNvZGV7bmlsfSwgQGNvbW1hbmR7 ZWNob30KK3dpbGwgdHJ5IHRvIGJlaGF2ZSBtb3JlIGxpa2UgYSBwbGFpbiBzaGVsbCdzIEBj b21tYW5ke2VjaG99LCBwcmludGluZworZWFjaCBhcmd1bWVudCBhcyBhIHN0cmluZywgc2Vw YXJhdGVkIGJ5IGEgc3BhY2UuCiAKIEBpdGVtIGVudgogQGNtaW5kZXggZW52CmRpZmYgLS1n aXQgYS9saXNwL2VzaGVsbC9lbS1iYXNpYy5lbCBiL2xpc3AvZXNoZWxsL2VtLWJhc2ljLmVs CmluZGV4IDI3YjM0M2FkMzkuLmQzYjE1YzkwMGIgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxs L2VtLWJhc2ljLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VtLWJhc2ljLmVsCkBAIC04Miw3ICs4 MiwxMSBAQCBlc2hlbGwtZWNobwogSXQgcmV0dXJucyBhIGZvcm1hdHRlZCB2YWx1ZSB0aGF0 IHNob3VsZCBiZSBwYXNzZWQgdG8gYGVzaGVsbC1wcmludCcKIG9yIGBlc2hlbGwtcHJpbnRu JyBmb3IgZGlzcGxheS4iCiAgIChpZiBlc2hlbGwtcGxhaW4tZWNoby1iZWhhdmlvcgotICAg ICAgKGNvbmNhdCAoYXBwbHkgJ2VzaGVsbC1mbGF0dGVuLWFuZC1zdHJpbmdpZnkgYXJncykg IlxuIikKKyAgICAgIChwcm9nbgorICAgICAgICA7OyBJZiB0aGUgb3V0cHV0IGRvZXMgbm90 IGVuZCBpbiBhIG5ld2xpbmUsIGRvIG5vdCBlbWl0IG9uZS4KKyAgICAgICAgKHNldHEgZXNo ZWxsLWVuc3VyZS1uZXdsaW5lLXAgbmlsKQorICAgICAgICAoY29uY2F0IChhcHBseSAjJ2Vz aGVsbC1mbGF0dGVuLWFuZC1zdHJpbmdpZnkgYXJncykKKyAgICAgICAgICAgICAgICAod2hl biBvdXRwdXQtbmV3bGluZSAiXG4iKSkpCiAgICAgKGxldCAoKHZhbHVlCiAJICAgKGNvbmQK IAkgICAgKCg9IChsZW5ndGggYXJncykgMCkgIiIpCkBAIC0xMDksMTggKzExMywyOCBAQCBl c2hlbGwvZWNobwogICAiSW1wbGVtZW50YXRpb24gb2YgYGVjaG8nLiAgU2VlIGBlc2hlbGwt cGxhaW4tZWNoby1iZWhhdmlvcicuIgogICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwog ICAgImVjaG8iIGFyZ3MKLSAgICcoKD9uIG5pbCBuaWwgb3V0cHV0LW5ld2xpbmUgInRlcm1p bmF0ZSB3aXRoIGEgbmV3bGluZSIpCisgICAnKCg/biBuaWwgKG5pbCkgb3V0cHV0LW5ld2xp bmUgImRvIG5vdCBvdXRwdXQgdGhlIHRyYWlsaW5nIG5ld2xpbmUiKQorICAgICAoP04gbmls ICh0KSAgIG91dHB1dC1uZXdsaW5lICJ0ZXJtaW5hdGUgd2l0aCBhIG5ld2xpbmUiKQogICAg ICAoP2ggImhlbHAiIG5pbCBuaWwgIm91dHB1dCB0aGlzIGhlbHAgc2NyZWVuIikKICAgICAg OnByZXNlcnZlLWFyZ3MKLSAgICAgOnVzYWdlICJbLW5dIFtvYmplY3RdIikKLSAgIChlc2hl bGwtZWNobyBhcmdzIG91dHB1dC1uZXdsaW5lKSkpCisgICAgIDp1c2FnZSAiWy1uIHwgLU5d IFtvYmplY3RdIikKKyAgIChpZiBlc2hlbGwtcGxhaW4tZWNoby1iZWhhdmlvcgorICAgICAg IChlc2hlbGwtZWNobyBhcmdzIChpZiBvdXRwdXQtbmV3bGluZSAoY2FyIG91dHB1dC1uZXds aW5lKSB0KSkKKyAgICAgOzsgSW4gRW1hY3MgMjguMSBhbmQgZWFybGllciwgIi1uIiB3YXMg dXNlZCB0byBhZGQgYSBuZXdsaW5lIHRvCisgICAgIDs7IG5vbi1wbGFpbiBlY2hvIGluIEVz aGVsbC4gIFRoaXMgY2F1c2VkIGNvbmZ1c2lvbiBkdWUgdG8gIi1uIgorICAgICA7OyBnZW5l cmFsbHkgaGF2aW5nIHRoZSBvcHBvc2l0ZSBtZWFuaW5nIGZvciBlY2hvLiAgUmV0YWluIHRo aXMKKyAgICAgOzsgY29tcGF0aWJpbGl0eSBmb3IgdGhlIHRpbWUgYmVpbmcuICBGb3IgbW9y ZSBpbmZvLCBzZWUKKyAgICAgOzsgYnVnIzI3MzYxLgorICAgICAod2hlbiAoZXF1YWwgb3V0 cHV0LW5ld2xpbmUgJyhuaWwpKQorICAgICAgIChkaXNwbGF5LXdhcm5pbmcKKyAgICAgICAg Ondhcm5pbmcgIlRvIHRlcm1pbmF0ZSB3aXRoIGEgbmV3bGluZSwgeW91IHNob3VsZCB1c2Ug LU4gaW5zdGVhZC4iKSkKKyAgICAgKGVzaGVsbC1lY2hvIGFyZ3Mgb3V0cHV0LW5ld2xpbmUp KSkpCiAKIChkZWZ1biBlc2hlbGwvcHJpbnRubCAoJnJlc3QgYXJncykKLSAgIlByaW50IG91 dCBlYWNoIG9mIHRoZSBhcmd1bWVudHMsIHNlcGFyYXRlZCBieSBuZXdsaW5lcy4iCisgICJQ cmludCBvdXQgZWFjaCBvZiB0aGUgYXJndW1lbnRzIGFzIHN0cmluZ3MsIHNlcGFyYXRlZCBi eSBuZXdsaW5lcy4iCiAgIChsZXQgKChlbGVtcyAoZmxhdHRlbi10cmVlIGFyZ3MpKSkKLSAg ICAod2hpbGUgZWxlbXMKLSAgICAgIChlc2hlbGwtcHJpbnRuIChlc2hlbGwtZWNobyAobGlz dCAoY2FyIGVsZW1zKSkpKQotICAgICAgKHNldHEgZWxlbXMgKGNkciBlbGVtcykpKSkpCisg ICAgKGRvbGlzdCAoZWxlbSBlbGVtcykKKyAgICAgIChlc2hlbGwtcHJpbnRuIChlc2hlbGwt c3RyaW5naWZ5IGVsZW0pKSkpKQogCiAoZGVmdW4gZXNoZWxsL2xpc3RpZnkgKCZyZXN0IGFy Z3MpCiAgICJSZXR1cm4gdGhlIGFyZ3VtZW50KHMpIGFzIGEgc2luZ2xlIGxpc3QuIgotLSAK Mi4yNS4xCgo= --------------DD147D9633974CA162362101--