Function: string-version-lessp
string-version-lessp is a function defined in fns.c.
Signature
(string-version-lessp STRING1 STRING2)
Documentation
Return non-nil if S1 is less than S2, as version strings.
This function compares version strings S1 and S2:
1) By prefix lexicographically.
2) Then by version (similarly to version comparison of Debian's dpkg).
Leading zeros in version numbers are ignored.
3) If both prefix and version are equal, compare as ordinary strings.
For example, "foo2.png" compares less than "foo12.png". Case is significant. Symbols are also allowed; their print names are used instead.
Other relevant functions are documented in the comparison and string groups.
Probably introduced at or before Emacs version 26.1.
Shortdoc
;; string
(string-version-lessp "pic4.png" "pic32.png")
=> t
(string-version-lessp "1.9.3" "1.10.2")
=> t
;; comparison
(string-version-lessp "pic4.png" "pic32.png")
=> t
(string-version-lessp "1.9.3" "1.10.2")
=> t
Source Code
// Defined in /usr/src/emacs/src/fns.c
{
if (SYMBOLP (string1))
string1 = SYMBOL_NAME (string1);
if (SYMBOLP (string2))
string2 = SYMBOL_NAME (string2);
CHECK_STRING (string1);
CHECK_STRING (string2);
int cmp = filenvercmp (SSDATA (string1), SBYTES (string1),
SSDATA (string2), SBYTES (string2));
return cmp < 0 ? Qt : Qnil;
}