]> git.eshelyaron.com Git - emacs.git/commitdiff
Error out if 'date-days-in-month' is given an invalid month
authorAlex Branham <alex.branham@gmail.com>
Tue, 24 Mar 2020 23:34:14 +0000 (19:34 -0400)
committerEli Zaretskii <eliz@gnu.org>
Fri, 3 Apr 2020 11:15:31 +0000 (14:15 +0300)
* lisp/calendar/time-date.el (date-days-in-month): Add test for
month validity; signal an error if it isn't.  (Bug#40217)
* test/lisp/calendar/time-date-tests.el (test-days-in-month): Add
a test for the new error.

lisp/calendar/time-date.el
test/lisp/calendar/time-date-tests.el

index e2402de80104200fed04c8853b2231fe953dc06f..9b58a4884bc7e14b6953b48069ad7a562ba8cfcc 100644 (file)
@@ -355,6 +355,8 @@ is output until the first non-zero unit is encountered."
 
 (defun date-days-in-month (year month)
   "The number of days in MONTH in YEAR."
+  (unless (<= 1 month 12)
+    (error "Month %s invalid" month))
   (if (= month 2)
       (if (date-leap-year-p year)
           29
index 4c8f18a7a9568053656bd48a25323ecafd9367bb..9c90300cfe679efa2b020f52d53b15b6fd060f43 100644 (file)
@@ -31,7 +31,8 @@
 (ert-deftest test-days-in-month ()
   (should (= (date-days-in-month 2004 2) 29))
   (should (= (date-days-in-month 2004 3) 31))
-  (should-not (= (date-days-in-month 1900 3) 28)))
+  (should-not (= (date-days-in-month 1900 3) 28))
+  (should-error (date-days-in-month 2020 15)))
 
 (ert-deftest test-ordinal ()
   (should (equal (date-ordinal-to-time 2008 271)