diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-04-30 16:24:55 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-04-30 16:24:55 +0200 |
commit | 93549c2b28770a84e1d1b9478a0861e2050df602 (patch) | |
tree | 24aea2846bdf15e0a43693551e02fef34d1daa80 | |
parent | c1fa5bd8ee3c7f37a9b9304eab6b522cf8718472 (diff) | |
download | emacs-93549c2b28770a84e1d1b9478a0861e2050df602.tar.gz emacs-93549c2b28770a84e1d1b9478a0861e2050df602.tar.bz2 emacs-93549c2b28770a84e1d1b9478a0861e2050df602.zip |
Avoid using if-let in subr.el
* lisp/subr.el (string-lines): Avoid using if-let (from subr-x) in
subr (bug#55194).
-rw-r--r-- | lisp/subr.el | 45 |
1 files changed, 24 insertions, 21 deletions
diff --git a/lisp/subr.el b/lisp/subr.el index 14cab04d429..5fadac6e16c 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -6654,27 +6654,30 @@ lines." (let ((lines nil) (start 0)) (while (< start (length string)) - (if-let ((newline (string-search "\n" string start))) - (progn - (when (or (not omit-nulls) - (not (= start newline))) - (let ((line (substring string start - (if keep-newlines - (1+ newline) - newline)))) - (when (not (and keep-newlines omit-nulls - (equal line "\n"))) - (push line lines)))) - (setq start (1+ newline)) - ;; Include the final newline. - (when (and (= start (length string)) - (not omit-nulls) - (not keep-newlines)) - (push "" lines))) - (if (zerop start) - (push string lines) - (push (substring string start) lines)) - (setq start (length string)))) + (let ((newline (string-search "\n" string start))) + (if newline + (progn + (when (or (not omit-nulls) + (not (= start newline))) + (let ((line (substring string start + (if keep-newlines + (1+ newline) + newline)))) + (when (not (and keep-newlines omit-nulls + (equal line "\n"))) + (push line lines)))) + (setq start (1+ newline)) + ;; Include the final newline. + (when (and (= start (length string)) + (not omit-nulls) + (not keep-newlines)) + (push "" lines))) + ;; No newline in the remaining part. + (if (zerop start) + ;; Avoid a string copy if there are no newlines at all. + (push string lines) + (push (substring string start) lines)) + (setq start (length string))))) (nreverse lines))) (defun buffer-match-p (condition buffer-or-name &optional arg) |