threads / patch / 23543

patchdate.c: print "1 second ago", not "1 seconds ago"

Subject: [PATCH] date.c: print "1 second ago", not "1 seconds ago"

## tl;dr

4 messages between Apr 21, 2010 and Apr 21, 2010. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Øyvind A. Holm· Apr 21, 2010, 05:31 UTC · lore

When using --date=relative, print "1 second ago" instead of "1 seconds ago".

t0006: Add tests for 0, 1 and 2 seconds ago, to ensure that --date=relative prints "1 second ago" and "x seconds ago" when x != 1.

Signed-off-by: Øyvind A. Holm <sunny@sunbase.org>
---
 date.c          |    3 ++-
 t/t0006-date.sh |    4 ++++
 2 files changed, 6 insertions(+), 1 deletions(-)
Show changes to 2 files +6 −1

date.c, t/t0006-date.sh

diff --git a/date.c b/date.c
index 002aa3c..6aec22b 100644
--- a/date.c
+++ b/date.c
@@ -96,7 +96,8 @@ const char *show_date_relative(unsigned long time, int tz,
 		return "in the future";
 	diff = now->tv_sec - time;
 	if (diff < 90) {
-		snprintf(timebuf, timebuf_size, "%lu seconds ago", diff);
+		snprintf(timebuf, timebuf_size, "%lu second%s ago",
+				diff, (diff != 1 ? "s" : ""));
 		return timebuf;
 	}
 	/* Turn it into minutes */
diff --git a/t/t0006-date.sh b/t/t0006-date.sh
index 75b02af..3069545 100755
--- a/t/t0006-date.sh
+++ b/t/t0006-date.sh
@@ -15,6 +15,9 @@ check_show() {
 	"
 }
 
+check_show 0 '0 seconds ago'
+check_show 1 '1 second ago'
+check_show 2 '2 seconds ago'
 check_show 5 '5 seconds ago'
 check_show 300 '5 minutes ago'
 check_show 18000 '5 hours ago'
@@ -48,6 +51,7 @@ check_approxidate() {
 }
 
 check_approxidate now '2009-08-30 19:20:00'
+check_approxidate '1 second ago' '2009-08-30 19:19:59'
 check_approxidate '5 seconds ago' '2009-08-30 19:19:55'
 check_approxidate 5.seconds.ago '2009-08-30 19:19:55'
 check_approxidate 10.minutes.ago '2009-08-30 19:10:00'
-- 
1.7.1.rc2.5.gddd02
Johannes Sixt· Apr 21, 2010, 06:13 UTC · re: Øyvind A. Holm · lore

Re: [PATCH] date.c: print "1 second ago", not "1 seconds ago"

Am 4/21/2010 7:31, schrieb Øyvind A. Holm:
> When using --date=relative, print "1 second ago" instead of "1 seconds
> ago".

Why do you care only about about "1 seconds", but not "1 minutes", "1 hours", etc? I mean, "1 seconds ago" is the most unlikely case of them all that will happen in practice...

-- Hannes
Øyvind A. Holm· Apr 21, 2010, 06:28 UTC · re: Johannes Sixt · lore

Re: [PATCH] date.c: print "1 second ago", not "1 seconds ago"

On 21 April 2010 08:13, Johannes Sixt <j.sixt@viscovery.net> wrote:
Show 7 quoted lines
> Am 4/21/2010 7:31, schrieb Øyvind A. Holm:
>> When using --date=relative, print "1 second ago" instead of "1 seconds
>> ago".
>
> Why do you care only about about "1 seconds", but not "1 minutes", "1
> hours", etc? I mean, "1 seconds ago" is the most unlikely case of them all
> that will happen in practice...
It will never show "1 minute", "1 hour", etc. Only
  - "89 minutes" → "2 hours"
  - "35 hours" → "2 days"
  - "13 days" → "2 weeks"
and so on. Seconds is the only thing left to fix.

Cheers, Øyvind A. Holm (sunny256)

← back to recent threads