Function: compat--string-lines

compat--string-lines is a byte-compiled function defined in compat-29.el.

Signature

(compat--string-lines STRING &optional OMIT-NULLS KEEP-NEWLINES)

Documentation

[Compatibility function for string-lines, defined in Emacs 29.1. See (compat)
Emacs 29.1' for more details.]

Handle additional KEEP-NEWLINES argument.

Source Code

;; Defined in ~/.emacs.d/elpa/compat-30.1.0.1/compat-29.el
(compat-defun string-lines (string &optional omit-nulls keep-newlines) ;; <compat-tests:string-lines>
  "Handle additional KEEP-NEWLINES argument."
  :extended "28.1"
  (if (equal string "")
      (if omit-nulls
          nil
        (list ""))
    (let ((lines nil)
          (start 0))
      (while (< 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)))
            (if (zerop start)
                (push string lines)
              (push (substring string start) lines))
            (setq start (length string)))))
      (nreverse lines))))