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#59666: 29.0.50; Eshell: comparisons such as {> 3 2} do not work in Eshell context Date: Mon, 28 Nov 2022 18:03:41 -0800 Message-ID: <431174aa-8b2c-84fd-121d-acc6b496b692@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39526"; mail-complaints-to="usenet@ciao.gmane.io" To: Milan Zimmermann , 59666@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Nov 29 03:04:35 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 1ozpz8-000A8M-Ry for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 29 Nov 2022 03:04:34 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ozpyl-00045p-RC; Mon, 28 Nov 2022 21:04:11 -0500 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 1ozpyd-00045S-Ne for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2022 21:04:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ozpyd-0007dC-5v for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2022 21:04:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ozpyc-0001eX-1Q for bug-gnu-emacs@gnu.org; Mon, 28 Nov 2022 21:04:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 29 Nov 2022 02:04:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59666 X-GNU-PR-Package: emacs Original-Received: via spool by 59666-submit@debbugs.gnu.org id=B59666.16696874326345 (code B ref 59666); Tue, 29 Nov 2022 02:04:02 +0000 Original-Received: (at 59666) by debbugs.gnu.org; 29 Nov 2022 02:03:52 +0000 Original-Received: from localhost ([127.0.0.1]:52310 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozpyR-0001eH-Tp for submit@debbugs.gnu.org; Mon, 28 Nov 2022 21:03:52 -0500 Original-Received: from mail-pl1-f177.google.com ([209.85.214.177]:44927) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozpyQ-0001e9-1n for 59666@debbugs.gnu.org; Mon, 28 Nov 2022 21:03:50 -0500 Original-Received: by mail-pl1-f177.google.com with SMTP id g10so11996132plo.11 for <59666@debbugs.gnu.org>; Mon, 28 Nov 2022 18:03:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=wyyZwtL0AoFflaDLW0NTUsetiZQ2Evao5UEMPKLGoHk=; b=fQTNT3aqMif5G3uQ15MN/Bn4+nSoMTnU3XjIFgpZyCZAK8lxmM4lLJoc7uGfddSydk 8ZF9riqRVHya+6xQJ9BYhV/xj8wao6k7wVRyQ4rUWRdQeP6fWlNSSlVMEgdhkukHeJNA pQ8DKjetxg1eiZGMJnrAstB9WbXoiRZEMrDjV3St5KcqihjVakUWN0bknRFHPK7wrwbe OWXmb45ITWpkZ+8pLPDW/h0dDp1d9sGjGz4OBJWP71rN4Ft0FxI8RN1wDTbnjwvNkfem nDLGsjZa+6/YrI2wnmZ+QQUHbvPL+4f0WAc5JJn+IPEhoEGIGnNmfXB6NDGBrj5K8UFR s3Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wyyZwtL0AoFflaDLW0NTUsetiZQ2Evao5UEMPKLGoHk=; b=ZryC8D9AWr/8aGMQvBDETP2wpnHyMExrqoiQ8Y5p0UIMaB3E/yUL1rWMlcJqXEUH43 vxYHIUHtMiisL1EIUb842Xxb5UdrOodTcNXaUeWctysRpWCcvt7vZ9XvKhMxCts8gvcu KdYhaEKjRd2ov98Tyz/lZlMQI1kfStox92QIZPnkJZxwGBXXJ3uuMtt/dUdlWzEGDceb XV4jiwPkpWz7fUuOXR1NK98l69sMSSAvHgFN04mOznxiNVOQpEUU968+tZXvPBXA5+Gc sXY3LyvOEqWpGp+lDY1ivvscWKNCezjs9wO1qUtSY/pDPRG5OG49UUUBDyFBL5Crc7+G 8rMg== X-Gm-Message-State: ANoB5pkJF+iomDZMoQzp2A9BDAXoGgvCwu++Egwch/vmvtBuft4LH2R5 GuI5KDZp9V/w2sM612mVpIE= X-Google-Smtp-Source: AA0mqf75RFLG5SiEWn2X6jUaG1cr+4MP0YoCduOzSzErYuL1coR/h9Zs9ha53elxmFhIYqPXB/40IQ== X-Received: by 2002:a17:902:cf4b:b0:186:7a1d:b6ee with SMTP id e11-20020a170902cf4b00b001867a1db6eemr40345314plg.67.1669687422962; Mon, 28 Nov 2022 18:03:42 -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 o3-20020a170902d4c300b00172951ddb12sm273414plg.42.2022.11.28.18.03.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Nov 2022 18:03:42 -0800 (PST) Content-Language: en-US In-Reply-To: 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:249361 Archived-At: On 11/28/2022 4:15 PM, Milan Zimmermann wrote: > All behavior of comparisons below is incorrect > > # Comparisons using ">" This is actually working as intended, though it's another one of those surprising behaviors that you tend to get in Eshell due to its fusion of Lisp and shell syntax. The problem is that ">" and "<" are I/O redirection operators (though "<" isn't actually implemented yet). If you want to do a less- or greater-than comparison using command-style syntax, you'd need to escape it: ~ $ \> 3 2 t > ### 4. > ~/tmp $ if {> 3 2} {echo YES} {echo NO} > Actual: NO > Expected: YES One additional note. Even with the proper escapes, that won't work right: ~ $ if {\> 3 2} {echo YES} {echo NO} YES ~ $ if {\> 3 4} {echo YES} {echo NO} YES ;; Wrong! That's because the above form is actually just checking, "Did the Lisp function '>' signal an error?"[1] You'd need to use ${} expansion, which expands to the *output* of the subcommand (and then checks that it's non-nil), or the Lisp form $()/(): ~ $ if ${\> 3 2} {echo YES} {echo NO} YES ~ $ if ${\> 3 4} {echo YES} {echo NO} NO ~ $ if (> 3 2) {echo YES} {echo NO} YES ~ $ if (> 3 4) {echo YES} {echo NO} NO ~ $ if $(> 3 2) {echo YES} {echo NO} YES ~ $ if $(> 3 4) {echo YES} {echo NO} NO Maybe {...} forms should work more like (...) forms when it finds a Lisp function that's not prefixed with 'eshell/'. I'll have to think about this some more though... [1] This is all assuming there's no external program named ">".