From 5d15818b94c1f6fd46f30154240942b3991492a4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Sat, 20 May 2023 12:06:46 +0200 Subject: [PATCH] Minor optimisation of string-trim-left and string-trim-right * lisp/subr.el (string-trim-left, string-trim-right): Use a constant string when no REGEXP argument is given. --- lisp/subr.el | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/subr.el b/lisp/subr.el index 5a641965659..8759c095f1a 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -6940,7 +6940,10 @@ returned list are in the same order as in TREE. "Trim STRING of leading string matching REGEXP. REGEXP defaults to \"[ \\t\\n\\r]+\"." - (if (string-match (concat "\\`\\(?:" (or regexp "[ \t\n\r]+") "\\)") string) + (if (string-match (if regexp + (concat "\\`\\(?:" regexp "\\)") + "\\`[ \t\n\r]+") + string) (substring string (match-end 0)) string)) @@ -6949,7 +6952,9 @@ REGEXP defaults to \"[ \\t\\n\\r]+\"." REGEXP defaults to \"[ \\t\\n\\r]+\"." (declare (side-effect-free t)) - (let ((i (string-match-p (concat "\\(?:" (or regexp "[ \t\n\r]+") "\\)\\'") + (let ((i (string-match-p (if regexp + (concat "\\(?:" regexp "\\)\\'") + "[ \t\n\r]+\\'") string))) (if i (substring string 0 i) string))) -- 2.39.2