summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2019-02-16 10:17:33 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2019-02-16 10:18:07 -0800
commit5c158d1320c55ce7fcb01532ad9911f89930ba81 (patch)
treec87e62e5a8b827844c99253df6b2a865e31901e1
parent2208c01264cb9fe95c857eb57dafa9ea8570b325 (diff)
downloademacs-5c158d1320c55ce7fcb01532ad9911f89930ba81.tar.gz
* src/lread.c (readevalloop): Simplify via suffix_p.
-rw-r--r--src/lread.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/lread.c b/src/lread.c
index ddef135687f..6389e3ed48e 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1070,14 +1070,15 @@ This uses the variables `load-suffixes' and `load-file-rep-suffixes'. */)
return Fnreverse (lst);
}
-/* Returns true if STRING ends with SUFFIX */
+/* Return true if STRING ends with SUFFIX. */
static bool
suffix_p (Lisp_Object string, const char *suffix)
{
ptrdiff_t suffix_len = strlen (suffix);
ptrdiff_t string_len = SBYTES (string);
- return string_len >= suffix_len && !strcmp (SSDATA (string) + string_len - suffix_len, suffix);
+ return (suffix_len <= string_len
+ && strcmp (SSDATA (string) + string_len - suffix_len, suffix) == 0);
}
static void
@@ -1932,9 +1933,7 @@ readevalloop (Lisp_Object readcharfun,
Lisp_Object macroexpand = intern ("internal-macroexpand-for-load");
if (NILP (Ffboundp (macroexpand))
- || (STRINGP (sourcename)
- && SBYTES (sourcename) >= 4
- && !strcmp (".elc", SSDATA (sourcename) + SBYTES (sourcename) - 4)))
+ || (STRINGP (sourcename) && suffix_p (sourcename, ".elc")))
/* Don't macroexpand before the corresponding function is defined
and don't bother macroexpanding in .elc files, since it should have
been done already. */