summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-extra.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2019-10-27 13:25:00 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2019-10-27 13:25:00 -0400
commit0e4dd67aae8b10032317a29a6bd99d2d4a64c897 (patch)
tree829c1831b9aa97cb8ab2819d5587d4b2fb10b846 /lisp/emacs-lisp/cl-extra.el
parent2aaced16866f8b17ee109a0c5682b3896e713f5c (diff)
downloademacs-0e4dd67aae8b10032317a29a6bd99d2d4a64c897.tar.gz
* lisp/emacs-lisp/seq.el: Don't require cl-lib.
(seq-subseq): Move cl-subseq's code here instyead of calling it. * lisp/emacs-lisp/cl-extra.el (cl-subseq): Use seq-subseq.
Diffstat (limited to 'lisp/emacs-lisp/cl-extra.el')
-rw-r--r--lisp/emacs-lisp/cl-extra.el22
1 files changed, 2 insertions, 20 deletions
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 3a6def733f3..91034de5396 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -38,6 +38,7 @@
;;; Code:
(require 'cl-lib)
+(require 'seq)
;;; Type coercion.
@@ -549,26 +550,7 @@ too large if positive or too small if negative)."
(macroexp-let2 nil new new
`(progn (cl-replace ,seq ,new :start1 ,start :end1 ,end)
,new)))))
- (cond ((or (stringp seq) (vectorp seq)) (substring seq start end))
- ((listp seq)
- (let (len
- (errtext (format "Bad bounding indices: %s, %s" start end)))
- (and end (< end 0) (setq end (+ end (setq len (length seq)))))
- (if (< start 0) (setq start (+ start (or len (setq len (length seq))))))
- (unless (>= start 0)
- (error "%s" errtext))
- (when (> start 0)
- (setq seq (nthcdr (1- start) seq))
- (or seq (error "%s" errtext))
- (setq seq (cdr seq)))
- (if end
- (let ((res nil))
- (while (and (>= (setq end (1- end)) start) seq)
- (push (pop seq) res))
- (or (= (1+ end) start) (error "%s" errtext))
- (nreverse res))
- (copy-sequence seq))))
- (t (error "Unsupported sequence: %s" seq))))
+ (seq-subseq seq start end))
;;;###autoload
(defun cl-concatenate (type &rest sequences)