[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 33516970808: Fix 'format-seconds' when all values are zero and %z
From: |
Eli Zaretskii |
Subject: |
master 33516970808: Fix 'format-seconds' when all values are zero and %z is used |
Date: |
Wed, 10 Apr 2024 10:01:17 -0400 (EDT) |
branch: master
commit 33516970808a6c50709325edfc1af125c2b2c401
Author: Eli Zaretskii <eliz@gnu.org>
Commit: Eli Zaretskii <eliz@gnu.org>
Fix 'format-seconds' when all values are zero and %z is used
* lisp/calendar/time-date.el (format-seconds): Fix all-zero time.
* test/lisp/calendar/time-date-tests.el (test-format-seconds): Add
two new tests. (Bug#70322)
---
lisp/calendar/time-date.el | 7 +++++--
test/lisp/calendar/time-date-tests.el | 5 ++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/lisp/calendar/time-date.el b/lisp/calendar/time-date.el
index e96e2e7e2db..eca80f1e8b6 100644
--- a/lisp/calendar/time-date.el
+++ b/lisp/calendar/time-date.el
@@ -344,8 +344,11 @@ right of \"%x\", trailing zero units are not output."
string)
(cond
((string-equal spec "z")
- (setq chop-leading (and leading-zeropos
- (min leading-zeropos (match-beginning 0)))))
+ (setq chop-leading
+ (if leading-zeropos
+ (min leading-zeropos (match-beginning 0))
+ ;; The entire spec is zero, get past "%z" to last 0.
+ (+ 2 (match-beginning 0)))))
((string-equal spec "x")
(setq chop-trailing t))
(t
diff --git a/test/lisp/calendar/time-date-tests.el
b/test/lisp/calendar/time-date-tests.el
index 01f9f8a5108..6512dd0bd07 100644
--- a/test/lisp/calendar/time-date-tests.el
+++ b/test/lisp/calendar/time-date-tests.el
@@ -100,7 +100,10 @@
(should (equal (format-seconds "%hh %z%x%mm %ss" (* 60 2)) "2m"))
(should (equal (format-seconds "%hh %z%mm %ss" (* 60 2)) "2m 0s"))
(should (equal (format-seconds "%hh %x%mm %ss" (* 60 2)) "0h 2m"))
- (should (equal (format-seconds "%hh %x%mm %ss" 0) "0h 0m 0s")))
+ (should (equal (format-seconds "%hh %x%mm %ss" 0) "0h 0m 0s"))
+ ;; Bug#70322
+ (should (equal (format-seconds "%y %z%d %h %m %s %%" 9999999) "115 17 46 39
%"))
+ (should (equal (format-seconds "%Y, %D, %H, %M, %z%S" 0) "0 seconds")))
(ert-deftest test-ordinal ()
(should (equal (date-ordinal-to-time 2008 271)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 33516970808: Fix 'format-seconds' when all values are zero and %z is used,
Eli Zaretskii <=