From 5c158d1320c55ce7fcb01532ad9911f89930ba81 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 16 Feb 2019 10:17:33 -0800 Subject: [PATCH] * src/lread.c (readevalloop): Simplify via suffix_p. --- src/lread.c | 9 ++++----- 1 file 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. */ -- 2.39.5