Function: version-list-<=
version-list-<= is a byte-compiled function defined in subr.el.gz.
Signature
(version-list-<= L1 L2)
Documentation
Return t if L1, a list specification of a version, is lower or equal to L2.
Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0), etc. That is, the trailing zeroes are insignificant. Also, integer list (1) is greater than (1 -1) which is greater than (1 -2) which is greater than (1 -3).
Source Code
;; Defined in /usr/src/emacs/lisp/subr.el.gz
(defun version-list-<= (l1 l2)
"Return t if L1, a list specification of a version, is lower or equal to L2.
Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),
etc. That is, the trailing zeroes are insignificant. Also, integer
list (1) is greater than (1 -1) which is greater than (1 -2)
which is greater than (1 -3)."
(while (and l1 l2 (= (car l1) (car l2)))
(setq l1 (cdr l1)
l2 (cdr l2)))
(cond
;; l1 not null and l2 not null
((and l1 l2) (< (car l1) (car l2)))
;; l1 null and l2 null ==> l1 length = l2 length
((and (null l1) (null l2)))
;; l1 not null and l2 null ==> l1 length > l2 length
(l1 (<= (version-list-not-zero l1) 0))
;; l1 null and l2 not null ==> l2 length > l1 length
(t (<= 0 (version-list-not-zero l2)))))