From mboxrd@z Thu Jan 1 00:00:00 1970
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org
X-Spam-Level:
X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID,
DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham
autolearn_force=no version=3.4.4
Received: (qmail 27682 invoked from network); 30 Nov 2022 16:39:07 -0000
Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368)
by inbox.vuxu.org with ESMTPUTF8; 30 Nov 2022 16:39:07 -0000
ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1669826347;
b=aXVaohfhuP/vQPZb2omwC1dDGKkYWFBV1PsulOTflDVBv1u9gW7opVxvXsIkq6KUqJqbIb35ta
sAz2CvaFNvf9RInhCvXKnHLWD23jESgFIgMic06nPysmR9A3mGdNdxaFej7a1zf5SDU479b+cj
eIdj1COnODD+nc4ke2Sczli4jOJ4eLGKxYB37OND1TMGpqhLfae/2trubgtfrrLOGanamzqx6l
jONWsjQ129uZLzwCrkdJu4UPeh+y89pW2tj3qyH/gJHkgdz50GL4Vg6Mv+vbd+90kiwIOaYfFK
9AsqoxmE8Z0XSJ7uSGdzUIxMDd3lsNghBH1Z9hiYeljIKw==;
ARC-Authentication-Results: i=1; zsh.org;
iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97;
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=1669826347;
bh=c+nqD588O6fDp8qqrpwW3YLxXAvtjYBPySjaX08kRzw=;
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=bbJ2+QexD4MPk0K/9ffOVtENrCwyw0qkKxnrkEsr5V+AqY4JOeOjLodCd+RgmhGTEV8Ntpzi83
mZlNb8KeHg1lXqhOtzrcWR0kLe9REfDbouDpqkG7/MRF509awWwwYiChhtXsDl+/dDTqBjJ+Pr
V9J5NSAEcWZXv99BbfQHAdLxRNhfBvhxFxFVh4uF3Awxh5buuMyU5oot1IsIcF+Wb0NJvp9WeV
vtFzcTK0cW8EICAvEUuAqnMFwVLKSgPJxVIRjbJygpZrRdoCHLqGefdrQ2aUMV0iFd7A7/w1dU
xe+8fOdXE38ltfEHSwijaNiAEwY+toPthl0yLN2zemBZ/A==;
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=y38PjPds5qJL2e9prEKDVAZ1Yhu2O9mtQztDBOPUo5U=; b=rc9httHaMMVMleF6Flr36rjUYo
25zVU2si0MbLXzKP4etTjYvFATZGMY4XHw/6e/1GKzQ7xpziyoF6Ee0ZydKaMXr6hyi3W4jKAyGrp
HnNcTCPQohSCLSXb4T6cl9DhPaddvnrhPk3RPsq31WJn2vRVR34DpUvYLigRaIWuvtnUpE99c7P5n
JkmF4IOfYIMpZSBoRzxbVYbsqftiy9qXrzPrVsWyMQeChUYvkTl5vXm6q1e4OCiqIuxwuBc1RS6CH
lMRGvqEGc06I3sJE4t6f98hFHk843/pXTgmYmV5mQ44npq4MepqzGyjfJin9DUVcNsoB+YnYI5lqB
xqv5CSYA==;
Received: by zero.zsh.org with local
id 1p0Q70-0005w6-Sm;
Wed, 30 Nov 2022 16:39:06 +0000
Authentication-Results: zsh.org;
iprev=pass (smtpq2.tb.ukmail.iss.as9143.net) smtp.remote-ip=212.54.57.97;
dkim=pass header.d=ntlworld.com header.s=meg.feb2017 header.a=rsa-sha256;
dmarc=pass header.from=ntlworld.com;
arc=none
Received: from smtpq2.tb.ukmail.iss.as9143.net ([212.54.57.97]:33984)
by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256)
id 1p0Q65-0005Gv-2t;
Wed, 30 Nov 2022 16:38:11 +0000
Received: from [212.54.57.82] (helo=smtp3.tb.ukmail.iss.as9143.net)
by smtpq2.tb.ukmail.iss.as9143.net with esmtp (Exim 4.90_1)
(envelope-from
)
id 1p0Q64-0005R6-Uc
for zsh-users@zsh.org; Wed, 30 Nov 2022 17:38:08 +0100
Received: from oxbe23.tb.ukmail.iss.as9143.net ([172.25.160.154])
by smtp3.tb.ukmail.iss.as9143.net with ESMTP
id 0Q64pMOPuYBhJ0Q64pODTP; Wed, 30 Nov 2022 17:38:08 +0100
X-Env-Mailfrom: p.w.stephenson@ntlworld.com
X-Env-Rcptto: zsh-users@zsh.org
X-SourceIP: 172.25.160.154
X-CNFS-Analysis: v=2.4 cv=Vd8xfnl9 c=1 sm=1 tr=0 ts=638786f0 cx=a_exe
a=0gQdd85zlVecdCXELxTKIw==:117 a=1DWFKdCB1IcA:10 a=IkcTkHD0fZMA:10
a=ZjyAdWuDOD4A:10 a=8RloEfZUAAAA:8 a=tqIqC99Gwo_YUfCHCpkA:9 a=QEXdDO2ut3YA:10
a=ea-aaFCQWd8KpuIyLtRc: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=1669826288;
bh=c+nqD588O6fDp8qqrpwW3YLxXAvtjYBPySjaX08kRzw=;
h=Date:From:To:In-Reply-To:References:Subject;
b=gEQYKp/cQNb7q8wnLyTd0IkNUUag899IWIpHFq/8YAxOTVAuft7PxyUudTLjljLjc
su9l76fjxmulSe2YU7NYGIGmMCNNCDs4dWhyRM8TBYLxaAdT1xBo2EKarYAB6XDa2O
SJxphtQO8tbLGFHv5eMsNNIHIiFX//8OcL4BimtPOTsT0rwf8b+AdFwxB/0eVNJb9P
d0+7smqyfwhI5dym2u9MxagcAVy2ySQmGC6WBVWcWxm64r8mG23kk4woa71Ive2Fpb
omXRH04VP58tEEf5NMbdreexIOHJKp4Cly5EDQLmw2Gw7Bx+44ih6DhG6BW60oneol
ttaGyDcJ1aJdA==
Date: Wed, 30 Nov 2022 16:38:08 +0000 (GMT)
From: Peter Stephenson
To: Thomas Lauer ,
Zsh-Users List
Message-ID: <2128517470.6253406.1669826288648@mail.virginmedia.com>
In-Reply-To:
References:
Subject: Re: execute or print one-liner
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.167
X-Originating-Client: open-xchange-appsuite
X-CMAE-Envelope: MS4xfM6XLAHyxuyXGI29VljdZ69N068sHfVepqjhYlBpIS0svz6fNMu7g3rQnuOQrUkdJFuNj27mnOUCYX+owRz9qx3SvcsOJ0lyBe1FMji2/ig6RT28HNO7
kVkYeTdak1CMRBTwHy8Y+y4zCi+qVBOVpQqmF1OhrnE9OyvjCKb8D5US/N3IvsC1RKwLAQfbhgVf0Wgi3DYTx28JxLK+eAoFVCsu7fw3EfJ9UsLWcKneAOfu
cOCp+lYVAQkvzKXhxVzdDg==
X-Seq: 28454
Archived-At:
X-Loop: zsh-users@zsh.org
Errors-To: zsh-users-owner@zsh.org
Precedence: list
Precedence: bulk
Sender: zsh-users-request@zsh.org
X-no-archive: yes
List-Id:
List-Help: ,
List-Subscribe: ,
List-Unsubscribe: ,
List-Post:
List-Owner:
List-Archive:
> On 30/11/2022 14:10 Thomas Lauer wrote:
> I have early on stumbled across a zsh function that would expand an
> alias on the command line so that I can edit or add stuff and I use that
> for many aliases. However, I just can't find a similar thing for
> one-line functions, ie a function that will just print the one-line
> function body to the command line but not execute it. Given
>
> f1() { blahblah -o1 -o2 $1 -o3 $2 $3 }
>
> executing f1() with three parameters is simple:
>
> f1 a b c
>
> What I'm looking for is a way to have f1's body injected into the
> command line, ie something akin to
>
> print -z blahblah -o1 -o2 -o3
Not sure how picky you are about having the arguments expanded, but
something like the following (by no means fully debugged) would work
if you don't mind the arguments being at the end.
So run "fline blahblah -o2 -o2 -o3"
pws
fline() {
emulate -L zsh
setopt extendedglob
# In case not yet loaded
local func=$1
shift
case $functions[$func] in
('')
print "Function \`$func' is not defined" >&2
return 1
;;
("builtin autoload "[^$'\n']#)
autoload +X $func
;;
esac
local -a args=("() {
$functions[$func]
}" ${(Q)argv})
print -z "$args"
}