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 19236 invoked from network); 25 Jan 2023 07:44:46 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 25 Jan 2023 07:44:46 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1674632686; b=RWnVcocXkujqa7exUoYgVxsZIPE/jtZm+9UYrOlgueSfZ0SeWxFuLM0lKps3rm31+cRvYfyHbq CQNBOt6my4aSu+ay86U1lWbk+c0EgDpFkaHji6fJbrmRKYjTD0RmvRjV3ksdtuYGi3spLMrR8D 718Mxx70B6snTtezqvKHQ7UDi1Ham4YudFwymJSeyX2V4fp5s4xLOUB0Cr9v1SJ2CLOyEvwQpy qSNraoXf3kryCO4daYw63rsdh6mXgFTwZLIy53jqCtbv3U1h8IH7A8hjO2D6unsU4SmF9mPZxA XIP1Tv1XXsQkMU7SK/vyCVNZNxqTI3dZjY+rR66sfZYSoQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f43.google.com) smtp.remote-ip=209.85.208.43; dkim=pass header.d=gmail.com header.s=20210112 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=1674632686; bh=h05AybQw1Ebnm1CU8PKCQylSkvfWEOneuC7zpczrmeg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:References: In-Reply-To:MIME-Version:DKIM-Signature:DKIM-Signature; b=F5B7q1wm6TgewIHiBEnQ9jstwniz8nXCg370+JuFKw328kYV/KPytXC0J5STmCVul0oAlSDSF3 zQBjCVDpkpbQMnE0JMZMWwYnJgfDvottcmZ/hkW4eZ2kSGS1ow3DABGFip0/A6erk7cKTmOsTl mp7mKRUF1Px40huzptjjyj8g0gC/6w9jCy3m+JLMRS8/8YZgh6dWSMG2tps4VajGLaA/xuCiYb fNLS9cDqavNMtKxH3aA6nSytiuA2Ev0lGmzxTteZ6w3vMPtqtRQ19V/AGqLqDPA05Fa7LiAwcE twIPE4puovUaIbTXm3uWXJudLBKs403F/CeFq5ItjaivyA==; 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-Type:Cc:To:Subject:Message-ID :Date:From:References:In-Reply-To:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=ff9k59WxOJTaTmfhVip+ndceqPw3aBm1KO95cx+92Mo=; b=e2+Hsi+leYXoy66VlCwtro6c1C guakSIRCPN70GhSaolDbTzaITMN0shWOO+HxftkGWOorUtyvZ3cwvXju+GYf1vH8tBAPUEwD/iQ/5 9xYQDi3L6/aaK5TI476lLR49tXNgqg151dvRepLVPQuU145/n2yLAfKQWvuKthzBjtHY2dbLMUqjH 0tNXCfWf7V5GvHX8aiAj8kJT0h0aQ8/3Z9bgxnn0gYpxLCERiI/ivXfv41F1nuZ2sLRsEdR9X1anB ysL8AFVBU+pJpTwql1qenCY16IyJ8fUwuyTFsyBAmA96+0+4uWTunIwrtpVJIyL1v6Yg4NPvWyzDL 4Pi8zVkw==; Received: by zero.zsh.org with local id 1pKaSc-0002a5-Jy; Wed, 25 Jan 2023 07:44:46 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f43.google.com) smtp.remote-ip=209.85.208.43; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-ed1-f43.google.com ([209.85.208.43]:37829) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1pKaRj-0001rE-FB; Wed, 25 Jan 2023 07:43:52 +0000 Received: by mail-ed1-f43.google.com with SMTP id s3so20842422edd.4 for ; Tue, 24 Jan 2023 23:43:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ff9k59WxOJTaTmfhVip+ndceqPw3aBm1KO95cx+92Mo=; b=i1Maszsxd70utOhCajzgOiPB6lrKHXL27ErKkFEhxqwObVLkKs8nslCnhg6LRlwGlA o+VoMlVWKtIqlvOhMEwVXo/e5g9qy+DJ1HszGPsx0mknw5G9I+ASGf4obGozBtb+IDq0 EgA3DKWi7g1tbdTHyOO9DtTyj8lXWhW+jxbNc7+9f44HqejK5gUBfCD+rIO4OwgmExJv Ef/cz9scvNnhcWg40KwCx+nJLplTED+yYzeHsV3JuHQig+cCht+vAonXJlJNK17aQ2VU /hJufO8lZQx0tYXRUeWH2/xPebg5CvR6Ifsnpv+SR+1dEQGkRl+ts+GVuiiPZ51l26J6 ybiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:references:in-reply-to :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ff9k59WxOJTaTmfhVip+ndceqPw3aBm1KO95cx+92Mo=; b=AaG0k5dQBoDMTxc490nVUfEOIOZv8/CWjRG0TJY1+FuykJF5G7A60JP93OCBibWd9+ lVjKqMx3Km5xBJmkHgBO/riTyR2i/khZj1HTgh3lEhLeZzkt5x3DjxI/TiU9XYMvPhQc t8QYst4BnraNo/AIoZ0e2jieas1YygAwLquNklE15/U1XuijsVjso2gkeOPN0lDvJMq/ I6OMosOV5BwKOuHDM9f29WxHnjcBkxTto92ytHsDKC1RF0ckR6RsyXw36VVJayep+V2l Lwei3Buq3DUOkOVEJSut1MM/0yHuRdvqTGTeV1rup4b4CrjMjjXojKr9LIsMk0KoT6ni HzSA== X-Gm-Message-State: AFqh2kqf3c68oFZpxBS39o/0k6TraylB76jDjUfUGFEu/4ffMN8ktQWp h7NHh5d9sHo0tel5hbesVO6B5W08bJa2zRN8P2o= X-Google-Smtp-Source: AMrXdXuDORHOWx+NC7xIq4XsmNjKJLm+aepnFpx/ehuiNFDqWBr4w0MliIBY7PqPKP+PyA94dNZTlWmnPjf6j6ADXqc= X-Received: by 2002:a05:6402:26ce:b0:499:e6fb:9d95 with SMTP id x14-20020a05640226ce00b00499e6fb9d95mr4516274edd.100.1674632630978; Tue, 24 Jan 2023 23:43:50 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a17:907:c606:b0:7cd:3b2e:124 with HTTP; Tue, 24 Jan 2023 23:43:50 -0800 (PST) In-Reply-To: References: From: Mikael Magnusson Date: Wed, 25 Jan 2023 08:43:50 +0100 Message-ID: Subject: Re: time command with shell builtins To: Bart Schaefer Cc: dominik.vogt@gmx.de, zsh-users@zsh.org Content-Type: text/plain; charset="UTF-8" X-Seq: 28778 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 1/25/23, Bart Schaefer wrote: > On Tue, Jan 24, 2023 at 2:48 AM Dominik Vogt wrote: >> >> [...] This is what I use now: >> >> -- snip -- >> autoload -Uz add-zsh-hook >> zmodload zsh/datetime >> >> function preexec_recordtime() { >> typeset -g _zsh_time >> _zsh_time="$EPOCHSECONDS" >> } >> add-zsh-hook preexec preexec_recordtime > > Unless you're already using psvar for something else, I would suggest > > function preexec_recordtime() { > if [[ -n $REPORTTIME ]]; then > psvar[1]="$EPOCHSECONDS" > else > psvar[1]='' > fi > } > precmd_reporttime () { > if [[ -n $REPORTTIME && -n $psvar[1] ]] > then > psvar[1]=$(( $EPOCHSECONDS - $psvar[1] )) > if (( $psvar[1] <= $REPORTTIME )) > then > psvar[1]='' > else > psvar[1]=" $psvar[1]s " > fi > fi > } > add-zsh-hook preexec preexec_recordtime > add-zsh-hook precmd precmd_reporttime > > PS1="<...>%1v<...>" > > Out of curiosity, why are you doing math on $EPOCHSECONDS rather than > just use $SECONDS? I also do this in precmd/exec, so I figured I may as well use the same thing for all of it, also if I assign to SECONDS interactively maybe weird things happen wrt float formatting etc, function pre{exec,cmd}_datechange() { local newdate newdate=$(strftime %x $EPOCHSECONDS) if [[ $_zsh_date != $newdate ]]; then printf "Date changed from %s to %s\n" $_zsh_date $newdate _zsh_date=$newdate fi } -- Mikael Magnusson