From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 1C86B216E4 for ; Thu, 28 Mar 2024 01:29:41 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1711585781; b=Df6u7UILBz2fc9AQpfhN6BGmssfez7Xwg9ugsxi/Cez7abwnJWyZGjIl8eZ6TJOwptKx06O7VO Grjzcb38KOKFl03a2iqmUDEKpCXbcdCAdz8eHgxuxI3BJpQ4aCG+3Ocb0lMTUDaH2lZPtlDnUB FMHLmtfsa8N0lULhij72DAI94aHyW9G/hpN11/Kx7tuBHf/xHOQE3X7s9CLRjr3wSLRKB2ihw2 KwvKOI2cery2EMK+f1xcTzYGGchgU+p3nTH1vhOUjdJScuQrZ6Pp5AqjNqwtPXg8DMirB+GHMf EyYvbC8Kvh/rkHQkVOkcN+UqpXR2T91kM13k5jaRNVlU0w==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f53.google.com) smtp.remote-ip=209.85.208.53; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1711585781; bh=0kmEcMJHWmQT9BZjiYfJPilO8ZX11ER5cI7znQIhGbU=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Cc:To:Subject: Message-ID:Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature: DKIM-Signature; b=JxNgqfbcmjYReHn8DnYUB60Jc0u9hmgPbMXrkeP6NFWfby3/jSFmOqy5il/Mq4L7RFRIiQ6jK6 i/V4CGrK7JptyXkvhrH2AkUt/rnPUBKFFzHmoDNJh9vaJvC9qaWKR5vUCyYKxp7xP6b8qKKQ6E TGL2fnXqU3sKSY8yBX4TVP/9s8UYftlaqP2m+r6md6GYMYscNKFTsxCIddz6iBRyzh9oJeMltR t++GX8VNMkhRRU8B3dg8avV1WeVCF0bm+SEqhuW1GDGK69UbrbEy3oPzwLSAt3xcOwS7FXlFfB TwdVJxORbX7WV/v93kwPx6VskDcRM23OxBzi28LBexgRNQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Np1/8RuB8Q2tVd9S9mHq1yLxnzp9q2/R9UeKoUD02c0=; b=mXbMZ2BGKPksAI4Htjvx4ywMnT rA4lBFMOxyy7yE8LQfDpn3S4mYHoG3iTt1Q0Q7Q4IEy9YscAfnr3YVKvvxFB8BlYFVJ9XZVPcLtxF wK1nHsp2yqiIll2iN+H696ztGA4Ju8NutoonHpXvlj96yiMqwpY9uRbVzk0YmH9GRujo8D7a3pGaM NrpnSCGFBhQ3Nx3C3tSRBFgt0wYAbSsvDtAvgUcq0Dc3ST24uDXe9R/7ZaAKPM0efrrn/bilzDUdE 9N4T9V+Q6199jjCiJu+vIpf+wHITjfBKWqtepy84ojE14FpZtL/sGKKzgl1AlJhF6ceVr9Xp3Vr5v 6HGiqzAw==; Received: by zero.zsh.org with local id 1rpdeH-000KFu-It; Thu, 28 Mar 2024 00:29:41 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f53.google.com) smtp.remote-ip=209.85.208.53; dkim=pass header.d=gmail.com header.s=20230601 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-ed1-f53.google.com ([209.85.208.53]:44337) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rpddz-000Jw2-Qb; Thu, 28 Mar 2024 00:29:24 +0000 Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-56c4ca65dc6so424449a12.1 for ; Wed, 27 Mar 2024 17:29:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711585763; x=1712190563; darn=zsh.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Np1/8RuB8Q2tVd9S9mHq1yLxnzp9q2/R9UeKoUD02c0=; b=WpE7v2yx9HJauMXsa6f6NEdmKDOGTapKQ1nvqobsFf797GaVUjtIrkWGaaOvM3LR32 5p03kzcacThZv8x3zNByiKuW2qDkxtijYroGRSWTvuTZWZ9IVtMU95WoA3opbQhZhnza vwgLPLHWTV4rusUHKRmJk0I9jxg5pexBLM/dGYsj6xbwRonETzoKvgOHDAfmKmlZXto2 VgNL5K/8N5G72EMtjJnMttWJ/9KADDZjbWY9OX19pltWjdXWD2erCEfTrg/fx4gMZ2YM 12egmSTMlIhk2Uv+Lll7m65gRo5VtEq3VAxGpT8RqYWtPDjUQMcJ6DgUvx8C6BVvo3re 2EvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711585763; x=1712190563; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Np1/8RuB8Q2tVd9S9mHq1yLxnzp9q2/R9UeKoUD02c0=; b=A/zXRD/1v91bcskDeBYAMdNb+/TuWXpU9xsmSx5NrYm/siqh0TzBNuGNy8zSJaAtzS YxRxZQv4E6Yev8sjsczz2ry7HutRQm3XJa3ThcgGodI/qrGVl+tr0jQk+TvhEXD8GrWZ siw0lAMVawDjQL4etCycg4MM7Zw53MlO6XBsau2oV75aO9S1vTWvn3Q56ok12e+aYsI/ zpNSJAmPiRYhkD93YmqHXuD+HIwWoKEFFGShkLIcxqk9PrCnA5h9wSEFJxmIQMkiWeW/ Ni0r71GiybMDpmlV6XJwIMYxNpaVBmaeD3bSZqvQGPT+zttGXQ9COcJpsFCgZWJGVRgv aIxA== X-Gm-Message-State: AOJu0Yw1p9Dn2Q4IFiaA/g3Fl81dLIsdl0joE1IaEVJ143+ddouMoEZB sNcHU9qMqHph2Cuy4vc6vRgyzhwc05M3Ca4HqjEDjDxVOsDdJ9kQOrCZBselGlaCydUDI9MBjW0 N7Giffj3TJMos3FsPuWa7GSfhPNG21uMe X-Google-Smtp-Source: AGHT+IEMum++Lh5RVhb7hN85nygZ8/qdUFT5TDNLymWTfJ9isMhs8luKK+2XHNn4dlRbc7QDEijctHXmj2enWovJ0Gg= X-Received: by 2002:a17:906:b095:b0:a4d:ff5f:98ad with SMTP id x21-20020a170906b09500b00a4dff5f98admr658332ejy.37.1711585762710; Wed, 27 Mar 2024 17:29:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Mikael Magnusson Date: Thu, 28 Mar 2024 01:29:09 +0100 Message-ID: Subject: Re: Nofork ${{var}...} edge cases To: Bart Schaefer Cc: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 52836 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: On Wed, Mar 27, 2024 at 7:58=E2=80=AFPM Bart Schaefer wrote: > > Just seeking opinions: > > Should ${{} true} (empty variable name) result in "bad substitution"? > Otherwise it's all side-effects, because nothing will be substituted. > The prior ${|| true} form was a parse error. > > Should ${{var}} be a "bad substitution", or print a warning about an > empty command? Otherwise it just substitutes $var. Is a space no longer required after } (formerly ||) to trigger the command substitution? I personally would like to get an error in this case because missing a $ in nested substitutions is a fairly common typo. Eg I meant ${${var}}. And if no space is required, does that mean if you typo ${${foo}:-blabla} into ${{foo}:-blabla}, :-blabla is suddenly executed as a command? If the space is actually still required then I don't have any real complaints. I think it was clearer at a glance that ${|foo| bing} was doing something different as opposed to ${{foo} bing} but i suppose i don't feel that strongly about it. --=20 Mikael Magnusson