[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master c3c5e50ba4 4/9: Use filenvercmp instead of doing it by hand
From: |
Paul Eggert |
Subject: |
master c3c5e50ba4 4/9: Use filenvercmp instead of doing it by hand |
Date: |
Sat, 19 Mar 2022 15:49:04 -0400 (EDT) |
branch: master
commit c3c5e50ba484eb849b9476ea9dba96a1a669be82
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>
Use filenvercmp instead of doing it by hand
* src/fns.c (Fstring_version_lessp): Use filenvercmp,
not string_version_cmp.
(string_version_cmp): Remove; no longer used.
---
src/fns.c | 34 +++-------------------------------
src/lisp.h | 1 -
2 files changed, 3 insertions(+), 32 deletions(-)
diff --git a/src/fns.c b/src/fns.c
index 6e89fe3ca5..4caf8448f1 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -485,37 +485,9 @@ Symbols are also allowed; their print names are used
instead. */)
string2 = SYMBOL_NAME (string2);
CHECK_STRING (string1);
CHECK_STRING (string2);
- return string_version_cmp (string1, string2) < 0 ? Qt : Qnil;
-}
-
-/* Return negative, 0, positive if STRING1 is <, =, > STRING2 as per
- string-version-lessp. */
-int
-string_version_cmp (Lisp_Object string1, Lisp_Object string2)
-{
- char *p1 = SSDATA (string1);
- char *p2 = SSDATA (string2);
- char *lim1 = p1 + SBYTES (string1);
- char *lim2 = p2 + SBYTES (string2);
- int cmp;
-
- while ((cmp = filevercmp (p1, p2)) == 0)
- {
- /* If the strings are identical through their first null bytes,
- skip past identical prefixes and try again. */
- ptrdiff_t size = strlen (p1) + 1;
- eassert (size == strlen (p2) + 1);
- p1 += size;
- p2 += size;
- bool more1 = p1 <= lim1;
- bool more2 = p2 <= lim2;
- if (!more1)
- return more2;
- if (!more2)
- return -1;
- }
-
- return cmp;
+ int cmp = filenvercmp (SSDATA (string1), SBYTES (string1),
+ SSDATA (string2), SBYTES (string2));
+ return cmp < 0 ? Qt : Qnil;
}
DEFUN ("string-collate-lessp", Fstring_collate_lessp, Sstring_collate_lessp,
2, 4, 0,
diff --git a/src/lisp.h b/src/lisp.h
index c5045d72ee..bd3cdd5307 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3927,7 +3927,6 @@ extern Lisp_Object substring_both (Lisp_Object,
ptrdiff_t, ptrdiff_t,
extern Lisp_Object merge (Lisp_Object, Lisp_Object, Lisp_Object);
extern Lisp_Object merge_c (Lisp_Object, Lisp_Object, bool (*) (Lisp_Object,
Lisp_Object));
extern Lisp_Object do_yes_or_no_p (Lisp_Object);
-extern int string_version_cmp (Lisp_Object, Lisp_Object);
extern Lisp_Object concat2 (Lisp_Object, Lisp_Object);
extern Lisp_Object concat3 (Lisp_Object, Lisp_Object, Lisp_Object);
extern bool equal_no_quit (Lisp_Object, Lisp_Object);
- master updated (71b8f1fc63 -> ccf4a4fa48), Paul Eggert, 2022/03/19
- master c3c5e50ba4 4/9: Use filenvercmp instead of doing it by hand,
Paul Eggert <=
- master abfb76732c 2/9: Remove internal_condition_case_[345], Paul Eggert, 2022/03/19
- master a5cbd98376 3/9: Omit unnecessary code when !HAVE_NATIVE_COMP, Paul Eggert, 2022/03/19
- master 035e8e4d45 1/9: Remove sanitize_window_sizes, Paul Eggert, 2022/03/19
- master 0fed561042 5/9: Remove unused fns/data and make fns static, Paul Eggert, 2022/03/19
- master 495d8519ca 7/9: Simplify alloc.c static function decls, Paul Eggert, 2022/03/19
- master c11b4758b7 8/9: valid_sp inline fix, Paul Eggert, 2022/03/19
- master c386f7e825 6/9: Make native helper functions static, Paul Eggert, 2022/03/19
- master ccf4a4fa48 9/9: Port to gcc -D EMACS_EXTERN_INLINE, Paul Eggert, 2022/03/19