summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/comp-cstr.el
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2020-12-27 10:58:29 +0100
committerAndrea Corallo <akrl@sdf.org>2020-12-27 19:45:24 +0100
commit34e9aae4407aceb54c7b6bc4c9b4e3e10ec62314 (patch)
tree46c4a2d4a78293b5c03ac60a9d8a56c73b01b0e3 /lisp/emacs-lisp/comp-cstr.el
parentee53560c8cb1236bb60304157882abe8e7cddaff (diff)
downloademacs-34e9aae4407aceb54c7b6bc4c9b4e3e10ec62314.tar.gz
* Add comp-cstr-greatest-in-range comp-cstr-smallest-in-range
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-smallest-in-range) (comp-cstr-greatest-in-range): New function. (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): Make use of.
Diffstat (limited to 'lisp/emacs-lisp/comp-cstr.el')
-rw-r--r--lisp/emacs-lisp/comp-cstr.el16
1 files changed, 12 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/comp-cstr.el b/lisp/emacs-lisp/comp-cstr.el
index 1927207db63..62e3c47ce3a 100644
--- a/lisp/emacs-lisp/comp-cstr.el
+++ b/lisp/emacs-lisp/comp-cstr.el
@@ -288,6 +288,14 @@ Return them as multiple value."
((eq y '-) nil)
(t (< x y))))
+(defsubst comp-cstr-smallest-in-range (range)
+ "Smallest entry in RANGE."
+ (caar range))
+
+(defsubst comp-cstr-greatest-in-range (range)
+ "Greater entry in RANGE."
+ (cdar (last range)))
+
(defun comp-range-union (&rest ranges)
"Combine integer intervals RANGES by union set operation."
(cl-loop
@@ -687,7 +695,7 @@ SRC can be either a comp-cstr or an integer."
(if (integerp src)
`((,(1+ src) . +))
(when-let* ((range (range src))
- (low (cdar (last range)))
+ (low (comp-cstr-greatest-in-range range))
(okay (integerp low)))
`((,(1+ low) . +))))))
(comp-cstr-set-cmp-range dst old-dst ext-range))))
@@ -700,7 +708,7 @@ SRC can be either a comp-cstr or an integer."
(if (integerp src)
`((,src . +))
(when-let* ((range (range src))
- (low (cdar (last range)))
+ (low (comp-cstr-greatest-in-range range))
(okay (integerp low)))
`((,low . +))))))
(comp-cstr-set-cmp-range dst old-dst ext-range))))
@@ -713,7 +721,7 @@ SRC can be either a comp-cstr or an integer."
(if (integerp src)
`((- . ,(1- src)))
(when-let* ((range (range src))
- (low (caar (last range)))
+ (low (comp-cstr-smallest-in-range range))
(okay (integerp low)))
`((- . ,(1- low)))))))
(comp-cstr-set-cmp-range dst old-dst ext-range))))
@@ -726,7 +734,7 @@ SRC can be either a comp-cstr or an integer."
(if (integerp src)
`((- . ,src))
(when-let* ((range (range src))
- (low (caar (last range)))
+ (low (comp-cstr-smallest-in-range range))
(okay (integerp low)))
`((- . ,low))))))
(comp-cstr-set-cmp-range dst old-dst ext-range))))