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.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE 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 CF6B72426D for ; Fri, 16 Feb 2024 16:01:28 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1708095688; b=M5fw4pxe/UOU21O6iNzA5hkYHL2cnejRh/yEORCvu/4ikn47TX1sV5Z+tK1HKcftS0TwXSTu+X Fjw08aLtPTlvauW0sa9Xs4V2zmGndYYP7wt55zAFeUFrMDDp8MRh3jYCBYiR7SESXVBJZGkfxf s0uGNB9+xfB7XEXC9auJhdDaDHaiSODOZOXdDX9GMM3be0dzY7OwPqjBqgVQx93RpvSSrqqhVF HWo7Zn6ytIHkUNVpabNHWsC515d18OHTww9UCJBtR53dVYi/0kenfazAdJYXIDCSD8AoUXOkrl +u3CNq0D3cSfda49hu/8Xtswe7EF1gwTWrtkTXDhUhdkLg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (csmtpq1-prd-nl1-vmo.edge.unified.services) smtp.remote-ip=84.116.50.35; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1708095688; bh=++b6Rw78XdBS98+G5bi84gX2L5EATE2F4ScPBYjYG/I=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:To:From:Date:DKIM-Signature: DKIM-Signature; b=iy+Qmb0TmmJjWAbbPReTU3IdU9VI0FInLNCn8kbz7Mtzzw0b1x6bzLqjY2mQhPGojoMTA46vqh 0nJ6BkJhvMfdW1nOO27ma957O5jWx6PAzwufn1NQBdE+1Oe1hGFasxczxbhtZvw6Ywm8gn6XMW t0vje91AV2NmNsxWsFo427LWYELEbyzJLz3EyGD8LWC67YLBnx5YrzLBT7p3ISQ3tpJDPluPvV 3ISrMYho1JuO1cV8VACjZoej6K2poFReZbfX0GJINjJ+9fdKzr/Rs26OnT+gbOXlNLM44sUdXD c2R+dFR/Viu3nFCmOw8F83oegQTB8MmeHpAPERuPJlj11g==; 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:MIME-Version:Subject:References:In-Reply-To:Message-ID:To:From: Date:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=G3Rw1O9e80Qld6bmxyMsjWS0UwUEc1QSXpD6/yVQCXo=; b=OBD4kYFgNvaNonbW1HZW0fESdT s5Vb5yl5osi7U6om3BJuWHMc5MmElLh9O0IBKfEx412iEYDa8JuRoVwELkRi/78eFcHbGjejGR7Pr /FxvchkhjxwAJAn2wZQG2utNO55ycdMxD+l+99rEXkSGzjIdo/mW3v4lx8c8Dfu9qO1Pef5cS/84x 5Da4c+pvhkIPcTXDVVSvrMQosDGF9gersp4NHubItEHguHj1FIFMII3u+Z8rVR2slWXv+Y1hIYi0r shtp00nq/U4dlbF6JnNRAyfCws720iWAlT/k/Q7wIxIXYXJIGoPoMxm0nNbIW+8p//LQeAjjKdKHL MdnXQKWw==; Received: by zero.zsh.org with local id 1raziR-000CYo-V3; Fri, 16 Feb 2024 15:01:27 +0000 Authentication-Results: zsh.org; iprev=pass (csmtpq1-prd-nl1-vmo.edge.unified.services) smtp.remote-ip=84.116.50.35; dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256; dmarc=pass header.from=ntlworld.com; arc=none Received: from csmtpq1-prd-nl1-vmo.edge.unified.services ([84.116.50.35]:46067) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1razhn-000CDm-N2; Fri, 16 Feb 2024 15:00:49 +0000 Received: from oxsmtp3-prd-nl1-vmo.nl1.unified.services ([100.107.83.172]) by csmtpq1-prd-nl1-vmo.edge.unified.services with esmtp (Exim 4.93) (envelope-from ) id 1razhm-004gBR-7X for zsh-workers@zsh.org; Fri, 16 Feb 2024 16:00:46 +0100 Received: from oxbe3-prd-nl1-vmo.nl1.unified.services ([100.107.83.146]) by oxsmtp3-prd-nl1-vmo.nl1.unified.services with ESMTP id azhmrBgfBt27bazhmrwMAA; Fri, 16 Feb 2024 16:00:46 +0100 X-Env-Mailfrom: p.w.stephenson@ntlworld.com X-Env-Rcptto: zsh-workers@zsh.org X-SourceIP: 100.107.83.146 X-CNFS-Analysis: v=2.4 cv=L60bQfT8 c=1 sm=1 tr=0 ts=65cf789e cx=a_exe a=+uVq5v2AViepsjIBXWI4Ew==:117 a=Ep4Q7DyRBEoGxNWY:21 a=IvlwODmuRu4A:10 a=IkcTkHD0fZMA:10 a=NLZqzBF-AAAA:8 a=YR4_K0clAAAA:8 a=UwLDflYkLUDoY-PUvykA:9 a=QEXdDO2ut3YA:10 a=HbQOABYz3jhqdZF7JfnK:22 a=waMAY2KAzxQUlx2gRwsv:22 X-Authenticated-Sender: p.w.stephenson@ntlworld.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ntlworld.com; s=meg.feb2017; t=1708095646; bh=++b6Rw78XdBS98+G5bi84gX2L5EATE2F4ScPBYjYG/I=; h=Date:From:To:In-Reply-To:References:Subject; b=cULYmGBrnrIIejypc8WRBFo28O6TpG5LueaE8QvjjNAzoWAi6/WNCgtyzIp6poFNN arVQmBrO9hjZ9EoBtAZdotjN8QOy/IvrJoaEMewlAsk5aIM3ZACBzB9RGPhnGRs16u dd8BFXidqxvUbffmcn85c4ZBgV3ffBKr8UMf+DTc5f8pj8m8/iu/pT9+UuxQpcwgCW UmzLRFueOhLUR8I+xy3dasFDL9QBsxfW1wSs73UDDXaKl1KPobK+dYxC7TRkAJN79M e9WARkOmNVcRxmTTW4R9pcjXh6Fpzo/Kgmv+tJienIVTPaiha6P3CJGSYS2JPWAZuK dJlqVH5AO+xOQ== Date: Fri, 16 Feb 2024 15:00:46 +0000 (GMT) From: Peter Stephenson To: zsh-workers@zsh.org Message-ID: <1477282494.4172725.1708095646170@mail.virginmedia.com> In-Reply-To: <649539330.4169803.1708093485977@mail.virginmedia.com> References: <20240216125826.GA96417@qaa.vinc17.org> <649539330.4169803.1708093485977@mail.virginmedia.com> Subject: Re: return builtin to end a script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer X-Originating-IP: 147.161.224.196 X-Originating-Client: open-xchange-appsuite X-CMAE-Envelope: MS4xfN43K3qIrIudf8tiZlDU4qVP8iOWCuKWR+MelknKghQj59rq17opth0vDkmkGv9kVMhbCfm4aAVvuaCgqWjFAQhk06me8TR6c+0YGWg8TS36H1CfU5mk JVvFtX5FiUPMNkG2Hq4n88XpdPCEkhE3n+c7DglFBTo48qZiPTpoGKXBigISSMHBO4HPPs5MvchlwgWYFCMP1SWOIViYAySdcspH+VE243HfgQye74k7IwHt X-Seq: 52549 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 16/02/2024 14:24 GMT Peter Stephenson wrote: >> On 16/02/2024 12:58 GMT Vincent Lefevre wrote: >> >> >> The return builtin is currently specified only for shell functions >> and "." scripts, while it would also be useful to end a script, >> for instance to be able to use zsh script both as commands (e.g. >> from non-zsh shells) and as autoloaded functions in zsh. >> >> So I think that it would be useful to extend it to end a script. > > I remember adding this a long time ago now. > > It looks like the documentation is defective. Having looked at the code, I think this does indeed already work, with the (presumably expected) limitation that in an interactive shell you don't exit from the outermost shell environment. pws diff --git a/Doc/Zsh/builtins.yo b/Doc/Zsh/builtins.yo index 1aa8076..7a8654f 100644 --- a/Doc/Zsh/builtins.yo +++ b/Doc/Zsh/builtins.yo @@ -1649,7 +1649,9 @@ cindex(functions, returning from) item(tt(return) [ var(n) ])( Causes a shell function or `tt(.)' script to return to the invoking script with the return status specified by -an arithmetic expression var(n). +an arithmetic expression var(n). Also causes a non-interctive +shell to exit, allowing files containing shell code to be used +both as scripts and as autoloadable shell functions. For example, the following prints `tt(42)': example(() { integer foo=40; return "foo + 2" }