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,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 31136 invoked from network); 2 Feb 2023 19:15:51 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 2 Feb 2023 19:15:51 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1675365351; b=H4srME/K7y5wJD6jhrkBZvCPUJnYJhnleUiPWetKPH2twBVRSnFLHOp0IzJAvPTeQ3jk58/Bbr LIzPjhV6iUlMumV5XcBbJprqaBfkEmK1Gl3DWD5pogAcQf5A4l7MI4HgrvcJhdRVlMucNoO7a7 LES57AGBnwnI0D4RvIy087IhYh937r9lmNJcMIF7TgGFVIkfQat4GXToa1w0Lx9Rg9dxOZhMX5 TCJn302qA9rrry5azc4LsqrqmOqhtNKotE0tjOhpovQRCaQ2TwdsfVeI/ngtfHNapcQ1MsggCQ ygGWTRSTzBwzu8VT+c2cf4Dl9ifZiA+7beHo+CW+I1ihvQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mout.gmx.net) smtp.remote-ip=212.227.15.15; dkim=pass header.d=gmx.de header.s=s31663417 header.a=rsa-sha256; dmarc=pass header.from=gmx.de; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1675365351; bh=SIIeNmJrAj1KsV171zcHMS4wyJO0VZTx3UF7qrC5ji0=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:In-Reply-To:Content-Type: MIME-Version:References:Reply-To:Message-ID:Subject:To:From:Date: DKIM-Signature:DKIM-Signature; b=KuDkGQMp3NUf9g+o4Wr/kn1yDiZXFkn4I5j/MA0XRn3q/Lfj6kW0JL9o5G4CRmzL9WJoxNFbUH oalpDU7/fbFF5L9gIpA5E4uTsMAiNqmlFJuZhMX/mF2qX2pP2MqwIBURgGALqhuUwaS1FZkyVZ DqB4xdt/4vpAYpzqzMgLAJ/oUVXeN3e569rZ+Ou1Uk0NnKtXqPTybSmoiwf/RfgRCStZZQA7h4 A2Yyqjn2CV9sqrkADYTkkfemadrvyFp1LMcsp4RardmTkHITk1jq1TR53FJ+m0weV5tZypBeNx syTLfrHnY1m4bjVnIhoukxEn+nGbw40dTxfEei8flyFcpQ==; 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:In-Reply-To :Content-Type:MIME-Version:References:Reply-To:Message-ID:Subject:To:From: Date:Cc:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID; bh=glZjPo7wcOd7Lrlk5r7Ty5TS1ZXfJnK/QtIm8fyICMA=; b=ErmEHFcNTbze9AGXS4TfQIXOq7 7LJWZq7qf5kfs4yyK/5zWBKAJvJCat8s2s0IZJZupNo3zSYqeHhSsqvrJYAk28vuQjgumduo+PEHG +GXzqrN62bxbyvr6PX5eBaXeKDVnHXthnar7qLglrB/zMYcCe6Gtr1CA3/QiJ7cy+2TfrTzLL8oF0 kA8dLBhCSsTJtWlwfQFkXFvdAMmQ2htc7eX0oL/B7zqlAoIq9B1bgcM4Miu6pZs++5QAQSRea/ol4 wyc6gsxbbHslNGJ9G567RXi37FvDqHUJZQYEvM7KYQwdge63WzOEXvi+Cg9dDPPAhkkg1zZb2POEH sqrWGuRA==; Received: by zero.zsh.org with local id 1pNf3m-000BHZ-Hk; Thu, 02 Feb 2023 19:15:50 +0000 Authentication-Results: zsh.org; iprev=pass (mout.gmx.net) smtp.remote-ip=212.227.15.15; dkim=pass header.d=gmx.de header.s=s31663417 header.a=rsa-sha256; dmarc=pass header.from=gmx.de; arc=none Received: from mout.gmx.net ([212.227.15.15]:43499) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1pNf33-000Aaw-N6; Thu, 02 Feb 2023 19:15:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1675365304; bh=SIIeNmJrAj1KsV171zcHMS4wyJO0VZTx3UF7qrC5ji0=; h=X-UI-Sender-Class:Date:From:To:Subject:Reply-To:References: In-Reply-To; b=n5h6sEaKD6EbkZzsjnKirpF8iQGxieb6CzdEy7lvSarBdrOjpmgeFozPrQ5AKc1fi DuODLEaUX4+LdP5yeXDG00RueaUzTIgzhv1tObYLp3TyKNtYy6H5aBh+kgHj8NALiF DETN/+scSVYIY1f1Nl/u6IJrBvAUrCXWNRenRWhJscJgweWtDsDg5jE3FOFdQY7Lbw yeC5L6PpN65I+r/CHAv5BCo3Z8tvn3nTXRcKc8PMy3F53WN/EWT2BgAbFpCePVld0A c8zs+JvktgFo8n3yB+sH0Cbfwo6mfHS84yqvBf5Iebl9AuRzDteAoaXSt5RhfaBW4e 77Z/LYM3MtKXA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from limone.obstwiese ([46.223.163.204]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mjj8D-1ow2zL2CMt-00lEwQ for ; Thu, 02 Feb 2023 20:15:04 +0100 Received: from luthien by limone.obstwiese with local (Exim 4.94.2) (envelope-from ) id 1pNf2y-0004Ja-Kg; Thu, 02 Feb 2023 20:15:00 +0100 Date: Thu, 2 Feb 2023 20:15:00 +0100 From: Dominik Vogt To: Zsh Users Subject: Re: time command with shell builtins Message-ID: Reply-To: dominik.vogt@gmx.de Mail-Followup-To: Zsh Users References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Provags-ID: V03:K1:VNr+cfDxNTssYUwQZxEU6SBS+aangAuMeUwLkei72CoBKYPXKB2 S/vIrFnjlTuQ3Bx5+JrcXzxT+mI+PQefSwBZQSeH1mWnZGIhIihV2nBcHauVetasUzqF9Np uMoGoTTla/aMVKDuWeSKLNiyQSzTxNpSGhmNLuNi8CZHrXOqLcIf0kmHN2pdQOS+MUNMIyP Hx7ElG/6Q3nzJvSNX+iOQ== UI-OutboundReport: notjunk:1;M01:P0:p/KjMs2csMw=;1L9k8Ebyvb/NACeUjvz+gpJZsd/ QzhqyM5H0Z/e1goICZ8l9rZLTofFBLkvF2KxJYWqyWPyMLE9AdAWMpowRAiXYF2bBTNOPf1E8 /2drlOP4HRiT6iRXZ3UU67tniXyBS04S1qAQs+/GdRzhYBVip3r+JamP8ppUKcTEh7XmklCh6 jH08N6nggN0HRuMaAYaIDMc+NVSSxfs9FMc+btZQli8e3ABalDYB4Zi+rVAZx+HUJN4+oIqHF UoKJ3MnB/OguelQPPKuXPdMCIxIjqOMxy5iorDOGZQLKdgcZERzHMFpfy4xxmFWSXlyUEvVt6 HyKX1A/efA4VYmmf/KFQ0Vnro3vtYKDJIvTQIVjT+Uch74JzBGJ1OVE9+iWF4nPFfnb7bgLbT mdug3r+u2x1N7MutYXwmxizlfyx9aAZsIfrby7ZneUYBeCG6Z0GHIY9jgkmhkNd1xsXgS02zn vDwwX34gaJC9q4C/tfiY2spZQkUynU0uPheyjjsaH+enp1MxGuNBaClIZ898U/8JwdepLXMfu N90FFqH1IKgxnQsbSAcAKJpUb3Sb+bz4j8PrUZPcLc5rWgBLUOV/DXCi0BFGQIqiqyWjpFR0R zr8sBwPc36MbFUQnBKQdEDdPCaQtNFAhgKkaVB3KlhwhHfKw943LlYKK3J4CDLY8a3jnoqxbB TY8kkq3uKiTcYBCyi9zpendH8YKQuMz2WY3xxqd+6RZCqteQiJPTTYUhZwrCSwfX+Pwvp81Or +8Bf53xyp6WC2psEGbXucJ3DgWuHW2GjyVdN9mDqNcjDZgmeNpOHFvU3aVTA4ZSMbgfRkHicD XA2Sd7bFljLqUEyzDVPQ9NtaJDEOqQQZhtPHUsDSbAw/1mVBu3gBEGnLvoRlrLVQtRsfmz92O emumMEBjAK0jaB2Z/VGUJ6QIQqsbTJPXKMAUzPGiMTNBLkcDONnk69qBkiOuu5AvAiZd5v7l9 gRG13bZkwQ4SKcnVhZilMF18UmE= Content-Transfer-Encoding: quoted-printable X-Seq: 28890 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 Thu, Feb 02, 2023 at 10:28:36AM -0800, Bart Schaefer wrote: > On Thu, Feb 2, 2023 at 10:10 AM Dominik Vogt wrote= : > > > > Well, is there a way to detect inside preexec() wether a command > > is handled by the shell or some external binary? > > If you actually have the command name, you can use > if (( $+commands[$thename] )) > > That won't work (or will be complicated) if the buffer that's about to > be executed is a complex structure (braces, subshell parens, > while/for/repeat/if/case/select/etc.). Okay, that sounds good enough. The new solution works without a blacklist. It may still print statistics with REPORTTIME and on the prompt in some cases (e.g. "{ /usr/bin/foobar" }" etc.). But I can live with that. Note that it now uses two slots in the psvar array. In some scenarios with ctrl-c using psvar[2] for the raw time and the string to print resulted in error messages because the variable's value was just ' s'. =2D- snip -- autoload -Uz add-zsh-hook zmodload zsh/datetime function preexec_recordtime() { local CL=3D( $3 ) psvar[3]=3D'' if (( $+commands[${CL[1]}] )); then psvar[2]=3D'' elif [[ -n $REPORTTIME ]]; then psvar[2]=3D"$EPOCHSECONDS" else psvar[2]=3D'' fi } precmd_reporttime () { if [[ -n "$REPORTTIME" && -n "$psvar[2]" ]]; then psvar[2]=3D$(( $EPOCHSECONDS - $psvar[2] )) if (( $psvar[2] <=3D $REPORTTIME )); then psvar[3]=3D'' else psvar[3]=3D" $psvar[2]s" fi fi } add-zsh-hook preexec preexec_recordtime add-zsh-hook precmd precmd_reporttime PS1=3D"...%3v..." =2D- snip -- Ciao Dominik ^_^ ^_^ =2D- Dominik Vogt