[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/compat 33d3e7149a 1/2: compat-28: Add decoded-time-* gv
From: |
ELPA Syncer |
Subject: |
[elpa] externals/compat 33d3e7149a 1/2: compat-28: Add decoded-time-* gv |
Date: |
Sat, 14 Jan 2023 09:57:26 -0500 (EST) |
branch: externals/compat
commit 33d3e7149a23e9f1d715f63adc1e5856c42d2ff8
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
compat-28: Add decoded-time-* gv
---
NEWS.org | 4 ++++
compat-27.el | 11 ++++++++++-
compat-tests.el | 22 ++++++++++++++++++++--
3 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/NEWS.org b/NEWS.org
index 0b8d177521..5d597fce19 100644
--- a/NEWS.org
+++ b/NEWS.org
@@ -1,5 +1,9 @@
#+title: compat.el - Changelog
+* Development
+
+- compat-27: Add generalized variables for ~decoded-time-*~.
+
* Release of "Compat" Version 29.1.1.1
- Tests added (167 out of 203 definitions tested, 82%)
diff --git a/compat-27.el b/compat-27.el
index f52685ca44..0210b73ae0 100644
--- a/compat-27.el
+++ b/compat-27.el
@@ -330,7 +330,16 @@ This is an integer indicating the UTC offset in seconds,
i.e.,
the number of seconds east of Greenwich."
(nth 8 time))
-;; TODO define gv-setters for decoded-time-*
+(when (eval-when-compile (version< emacs-version "27.1"))
+ (gv-define-setter decoded-time-second (v x) `(setcar (nthcdr 0 ,x) ,v))
+ (gv-define-setter decoded-time-minute (v x) `(setcar (nthcdr 1 ,x) ,v))
+ (gv-define-setter decoded-time-hour (v x) `(setcar (nthcdr 2 ,x) ,v))
+ (gv-define-setter decoded-time-day (v x) `(setcar (nthcdr 3 ,x) ,v))
+ (gv-define-setter decoded-time-month (v x) `(setcar (nthcdr 4 ,x) ,v))
+ (gv-define-setter decoded-time-year (v x) `(setcar (nthcdr 5 ,x) ,v))
+ (gv-define-setter decoded-time-weekday (v x) `(setcar (nthcdr 6 ,x) ,v))
+ (gv-define-setter decoded-time-dst (v x) `(setcar (nthcdr 7 ,x) ,v))
+ (gv-define-setter decoded-time-zone (v x) `(setcar (nthcdr 8 ,x) ,v)))
;;;; Defined in image.el
diff --git a/compat-tests.el b/compat-tests.el
index fd9a9c30b6..bc6386e207 100644
--- a/compat-tests.el
+++ b/compat-tests.el
@@ -2122,7 +2122,7 @@
;; (should (time-equal-p (days-to-time 999.0) '(1317 2688 0 0)))
)
-(ert-deftest decoded-time-getters ()
+(ert-deftest decoded-time-accessors ()
(let ((time '(second minute hour day month year weekday dst zone)))
(should-equal (decoded-time-second time) 'second)
(should-equal (decoded-time-minute time) 'minute)
@@ -2132,7 +2132,25 @@
(should-equal (decoded-time-year time) 'year)
(should-equal (decoded-time-weekday time) 'weekday)
(should-equal (decoded-time-dst time) 'dst)
- (should-equal (decoded-time-zone time) 'zone)))
+ (should-equal (decoded-time-zone time) 'zone)
+ (setf (decoded-time-second time) 'SECOND)
+ (setf (decoded-time-minute time) 'MINUTE)
+ (setf (decoded-time-hour time) 'HOUR)
+ (setf (decoded-time-day time) 'DAY)
+ (setf (decoded-time-month time) 'MONTH)
+ (setf (decoded-time-year time) 'YEAR)
+ (setf (decoded-time-weekday time) 'WEEKDAY)
+ (setf (decoded-time-dst time) 'DST)
+ (setf (decoded-time-zone time) 'ZONE)
+ (should-equal (decoded-time-second time) 'SECOND)
+ (should-equal (decoded-time-minute time) 'MINUTE)
+ (should-equal (decoded-time-hour time) 'HOUR)
+ (should-equal (decoded-time-day time) 'DAY)
+ (should-equal (decoded-time-month time) 'MONTH)
+ (should-equal (decoded-time-year time) 'YEAR)
+ (should-equal (decoded-time-weekday time) 'WEEKDAY)
+ (should-equal (decoded-time-dst time) 'DST)
+ (should-equal (decoded-time-zone time) 'ZONE)))
(ert-deftest decoded-time-period ()
(should-equal 0 (decoded-time-period '()))