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, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29135 invoked from network); 24 Oct 2020 11:46:45 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 24 Oct 2020 11:46:45 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1603540005; b=LKSQFkbn1cOhWbsvLGk3gzeJ60KLUEzS6t9BAkCNv43KkikeNjAV/c/sTHatenLHZRfXkBBPEV 2zY4WTJ//tx+uLdnpk9Y1l4KpS5eF6prfwcMmmJ9IO1qhTTN9kFULV+0+2lebeZ7+ULFJJdSxn DIALgKXCjgeqGIcF+FsoGwFfNKWnFEDekehF4cVsZcK4cIXRqg7ZEifnv771OIXmg4mymgdKUA Lc3eFD+FwZ/D0tiV9XmcI57BsLTj+sOj9hTfZhra8P/aCN2n01ZisFz8g1ZgYO+CSKQJgNojrR wet0QJUBC2bUXDMiC8RFf3se4dGmCUUmYEY+KL/IDuD/Lw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lf1-f48.google.com) smtp.remote-ip=209.85.167.48; dkim=pass header.d=gmail.com header.s=20161025 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-20200801; t=1603540005; bh=v7GCQWDNouohUg0jJAa/EtLWAug0c0YBZ8pPJEga5B8=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Message-ID:Date:Subject:To:From:DKIM-Signature: DKIM-Signature; b=PhrTGVYw3DO6hNX+E4SAE7g8ZYQbdH7b/MqO82nYi9rpM6I89I6i57aHArNWY4Y6YS4kOV/+Ww A12l+jccmutmlyolECbytuvuMJCBvWgxX7N2iF5BCtZ31kfJyrxsfaoH+/hoAq3dzuN1iJ1VEy riFUKQ6KGx/U2zW26/2SjC6lciMZXOCdQfkz+EtzlY2aVifS0JhSVg8h++XCf8D8xbt5nnYBS8 1eOIWsiw004Y5ZU3pvWrfzcEYM4yaSfq6lD0U/SRuq3ZB53AzXdmlrY24O971FWU8YyVdQ2IOc fxQZcnGysjki68HFZEMaTTaRy9ktT/wgfsWHOir1Ep3nrw==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Message-Id:Date:Subject:To:From: Reply-To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=k9w30VX3wmnVa2Yj1Dr60LAxIovP7G234pgFh8My9zg=; b=cnPzlZ722nuTq3Q4RFNXZuzb1/ 7n0cfLYizrZnM9oj+0MMME7vt+/BGMY6mEOLONX2HGKQ872JeSDWUflwt3kj90nwWSMZolbNQsYGa DWjTe5x4VhxVoxF3J172CjFyeK8eBTBG4p41y/nJhx4t2aTdTxoC5kWHNh94em7GceoGPFLjrUfp2 Lf1Qx71AYhzrQQPzu1iJHEHFLe2OKOhDhyZQFir6+OcELrNAI2sunoKp9BcqNlb4wakceVozat5I6 i3tA6Z3+qo67mycHDutzvoE8tV1w9SWRagVXiV8kgRsP6vlNw9JEYTNg+HE1EnDprB6EHV4SuyZcF Ye2Cvd6g==; Received: from authenticated user by zero.zsh.org with local id 1kWI0R-000CpP-UE; Sat, 24 Oct 2020 11:46:43 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lf1-f48.google.com) smtp.remote-ip=209.85.167.48; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-lf1-f48.google.com ([209.85.167.48]:46546) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1kWI08-000CfB-T7; Sat, 24 Oct 2020 11:46:25 +0000 Received: by mail-lf1-f48.google.com with SMTP id v6so5343869lfa.13 for ; Sat, 24 Oct 2020 04:46:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=k9w30VX3wmnVa2Yj1Dr60LAxIovP7G234pgFh8My9zg=; b=sRZT3Xrs7Lb1tr9C8RB1mzxyUDcXJ9pecUupM4Ihaz1Cfn/UmkOYGkFjac90GFkoJY NWy6x+B8zysqugOBDHbFpazUnK3eb2C/DeRbp8E20aZSaP5KU6n0LerfiXFO72xOm8pI QZGoVqC9vvvxv2PtzNvwxuRqhIb5d0MRfUyvlz0tO++Pm/ENbMQzGvQx3/lroyb/3aN5 SR0e76HvDVRvirwgn85Jd9HVp+uqLgBUNCeeQoJCIXxlJeZfIxggjw6XXISncU0qKdOW tgfosiKZy5ela/RJmCbtoTwcp5qXmEdj0BSLJLU02clbKs53DieTy6LSt856Iweg4w85 UuPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=k9w30VX3wmnVa2Yj1Dr60LAxIovP7G234pgFh8My9zg=; b=RoptGWXdvff2+KoePt3ZPzO6XY/w1tylJUTtiF98C5J9ixAT72fOHGGXB5EqiidFcW 5RlM/Zc6QWSifw7KOGjfqUx1xq6WOEFUKvWIitLlgCfL3WcSt0NY/RUzbmgt+5ceywBU CqlkytiZtvdpGQVA40wvtDrxc8j68Vbqy1XkerKA/YKPjt0g/FFb464NcoHmAA4OkaA6 AB3CK7kehzI8F1o8p4JjR3pvMpj+phOUcsynQzDuqpQo6c66cpYdXZKjdRqm4TRWSkj1 WPK1R3ZsYhHl7Fp+tnAos3G7eLAxnZN9qQ0+IMfMKnE6+DLXhEQ2gvQihbOw5PcLyaKa OeeA== X-Gm-Message-State: AOAM533f2ZdGJG6hpEe5izyvwRGUn1vQWH15TetDrDegH0iq99JiNY2W 35gYuZYtkXbLpEUwW5X2wpg3V8L2Fo0= X-Google-Smtp-Source: ABdhPJxysjYM+3bgn806BtfVyMRB/P/C3j4Wr+12xF3I1qO5qhO0jSJJfdh08Isj07nvNcG9wInyXQ== X-Received: by 2002:ac2:5c4c:: with SMTP id s12mr1958430lfp.174.1603539983711; Sat, 24 Oct 2020 04:46:23 -0700 (PDT) Received: from localhost.localdomain (h-88-110.A230.priv.bahnhof.se. [212.85.88.110]) by smtp.gmail.com with ESMTPSA id 9sm416572lft.116.2020.10.24.04.46.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 24 Oct 2020 04:46:22 -0700 (PDT) From: Mikael Magnusson To: zsh-workers@zsh.org Subject: PATCH: Add -n option to strftime Date: Sat, 24 Oct 2020 13:46:09 +0200 Message-Id: <20201024114609.12293-1-mikachu@gmail.com> X-Mailer: git-send-email 2.15.1 X-Seq: 47494 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: Archived-At: Archived-At: List-Archive: --- Doc/Zsh/mod_datetime.yo | 7 +++++-- Src/Modules/datetime.c | 5 +++-- Test/V09datetime.ztst | 4 ++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Doc/Zsh/mod_datetime.yo b/Doc/Zsh/mod_datetime.yo index da65a9bbd7..8536561281 100644 --- a/Doc/Zsh/mod_datetime.yo +++ b/Doc/Zsh/mod_datetime.yo @@ -6,8 +6,8 @@ The tt(zsh/datetime) module makes available one builtin command: startitem() findex(strftime) cindex(date string, printing) -xitem(tt(strftime) [ tt(-s) var(scalar) ] var(format) [ var(epochtime) [ var(nanoseconds) ] ] ) -item(tt(strftime) tt(-r) [ tt(-q) ] [ tt(-s) var(scalar) ] var(format) var(timestring) )( +xitem(tt(strftime) [ tt(-s) var(scalar) | tt(-n) ] var(format) [ var(epochtime) [ var(nanoseconds) ] ] ) +item(tt(strftime) tt(-r) [ tt(-q) ] [ tt(-s) var(scalar) | tt(-n) ] var(format) var(timestring) )( Output the date in the var(format) specified. With no var(epochtime), the current system date/time is used; optionally, var(epochtime) may be used to specify the number of seconds since the epoch, and var(nanoseconds) may @@ -18,6 +18,9 @@ ifzman(the section EXPANSION OF PROMPT SEQUENCES in zmanref(zshmisc))\ ifnzman(noderef(Prompt Expansion)) are also available. startitem() +item(tt(-n))( +Suppress printing a newline after the formatted string. +) item(tt(-q))( Run quietly; suppress printing of all error messages described below. Errors for invalid var(epochtime) values are always printed. diff --git a/Src/Modules/datetime.c b/Src/Modules/datetime.c index 521c15a5b6..085e4cc267 100644 --- a/Src/Modules/datetime.c +++ b/Src/Modules/datetime.c @@ -175,7 +175,8 @@ output_strftime(char *nam, char **argv, Options ops, UNUSED(int func)) setsparam(scalar, metafy(buffer, len, META_DUP)); } else { fwrite(buffer, 1, len, stdout); - putchar('\n'); + if (!OPT_ISSET(ops,'n')) + putchar('\n'); } zfree(buffer, bufsize); @@ -235,7 +236,7 @@ getcurrenttime(UNUSED(Param pm)) } static struct builtin bintab[] = { - BUILTIN("strftime", 0, bin_strftime, 1, 3, 0, "qrs:", NULL), + BUILTIN("strftime", 0, bin_strftime, 1, 3, 0, "nqrs:", NULL), }; static const struct gsu_integer epochseconds_gsu = diff --git a/Test/V09datetime.ztst b/Test/V09datetime.ztst index 9f67ecec3f..622bdf6ed9 100644 --- a/Test/V09datetime.ztst +++ b/Test/V09datetime.ztst @@ -130,3 +130,7 @@ >%6. 2002-02-02 02:02:02.999999 >%9. 2002-02-02 02:02:02.999999999 >%12. 2002-02-02 02:02:02.999999999 + + strftime -n 'one line%n' 2> /dev/null +0:-n option +>one line -- 2.15.1