aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref
diff options
context:
space:
mode:
authorPaul Eggert2016-02-21 13:25:24 -0800
committerPaul Eggert2016-02-21 13:27:40 -0800
commit1f7feecaee0ed3fb79758fe60020aefb30d9ff01 (patch)
treeb0476096aabea32658be041242caa74e7a5232cd /doc/lispref
parent3e67708d7239cde24b0988d4d1288bc75585cfea (diff)
downloademacs-1f7feecaee0ed3fb79758fe60020aefb30d9ff01.tar.gz
emacs-1f7feecaee0ed3fb79758fe60020aefb30d9ff01.zip
Use Gnulib filevercmp for version comparison
* admin/merge-gnulib (GNULIB_MODULES): Add filevercmp. * doc/lispref/strings.texi (Text Comparison): * etc/NEWS, src/fns.c: * test/src/fns-tests.el (fns-tests-string-version-lessp): Rename newly-introduced function to string-version-lessp, by analogy with strverscmp. * lib/filevercmp.c, lib/filevercmp.h: New files, copied from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * src/fns.c: Include <filevercmp.h>. (gather_number_from_string): Remove. (Fstring_version_lessp): Reimplement via filevercmp.
Diffstat (limited to 'doc/lispref')
-rw-r--r--doc/lispref/strings.texi20
1 files changed, 6 insertions, 14 deletions
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 19301de06fa..ce629aa8259 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -633,20 +633,12 @@ If your system does not support a locale environment, this function
633behaves like @code{string-lessp}. 633behaves like @code{string-lessp}.
634@end defun 634@end defun
635 635
636@defun string-numerical-lessp strin1 string2 636@defun string-version-lessp string1 string2
637This function behaves like @code{string-lessp} for stretches of 637This function compares strings lexicographically, except it treats
638consecutive non-numerical characters, but compares sequences of 638sequences of numerical characters as if they comprised a base-ten
639numerical characters as if they comprised a base-ten number, and then 639number, and then compares the numbers. So @samp{foo2.png} is
640compares the numbers. So @samp{foo2.png} is ``smaller'' than 640``smaller'' than @samp{foo12.png} according to this predicate, even if
641@samp{foo12.png} according to this predicate, even if @samp{12} is 641@samp{12} is lexicographically ``smaller'' than @samp{2}.
642lexicographically ``smaller'' than @samp{2}.
643
644If one string has a number in a position in the string, and the other
645doesn't, then lexicograpic comparison is done at that point, so
646@samp{foo.png} is ``smaller'' than @samp{foo2.png}. If any of the
647numbers in the strings are larger than can be represented as an
648integer number, the entire string is compared using
649@code{string-less}.
650@end defun 642@end defun
651 643
652@defun string-prefix-p string1 string2 &optional ignore-case 644@defun string-prefix-p string1 string2 &optional ignore-case