all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Štěpán Němec" <stepnem@gmail.com>
To: 40570@debbugs.gnu.org
Cc: monnier@iro.umontreal.ca
Subject: bug#40570: [PATCH] Alias cl-subseq to seq-subseq, define gv-setter in the latter
Date: Sun, 12 Apr 2020 11:46:27 +0200	[thread overview]
Message-ID: <20200412094627.2494060-1-stepnem@gmail.com> (raw)

The definition was moved in

2019-10-27T13:25:00-04:00!monnier@iro.umontreal.ca
0e4dd67aae (* lisp/emacs-lisp/seq.el: Don't require cl-lib.)

already, but not the gv-setter declaration, so 'setf' worked with
'cl-subseq', but not with 'seq-subseq'.  Moving also the gv-setter to
seq-subseq and defining 'cl-subseq' as an alias of the former makes
'setf' work with both.

* lisp/emacs-lisp/cl-extra.el (cl-subseq): Redefine as an alias of
'seq-subseq'.

* lisp/emacs-lisp/seq.el (seq-subseq): Move gv-setter declaration here
from 'cl-subseq' so that 'setf' works.
---
 lisp/emacs-lisp/cl-extra.el | 12 +++---------
 lisp/emacs-lisp/seq.el      |  5 +++++
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
index 5bf74792c0..2583fdb19e 100644
--- a/lisp/emacs-lisp/cl-extra.el
+++ b/lisp/emacs-lisp/cl-extra.el
@@ -538,18 +538,12 @@ cl-float-limits
 ;;; Sequence functions.
 
 ;;;###autoload
-(defun cl-subseq (seq start &optional end)
-  "Return the subsequence of SEQ from START to END.
+(defalias 'cl-subseq #'seq-subseq
+  "Return the subsequence of SEQUENCE from START to END.
 If END is omitted, it defaults to the length of the sequence.
 If START or END is negative, it counts from the end.
 Signal an error if START or END are outside of the sequence (i.e
-too large if positive or too small if negative)."
-  (declare (gv-setter
-            (lambda (new)
-              (macroexp-let2 nil new new
-		`(progn (cl-replace ,seq ,new :start1 ,start :end1 ,end)
-			,new)))))
-  (seq-subseq seq start end))
+too large if positive or too small if negative).")
 
 ;;;###autoload
 (defalias 'cl-concatenate #'seq-concatenate
diff --git a/lisp/emacs-lisp/seq.el b/lisp/emacs-lisp/seq.el
index e3037a7190..936c38283e 100644
--- a/lisp/emacs-lisp/seq.el
+++ b/lisp/emacs-lisp/seq.el
@@ -154,6 +154,11 @@ seq-subseq
 START or END is negative, it counts from the end.  Signal an
 error if START or END are outside of the sequence (i.e too large
 if positive or too small if negative)."
+  (declare (gv-setter
+            (lambda (new)
+              (macroexp-let2 nil new new
+		`(progn (cl-replace ,sequence ,new :start1 ,start :end1 ,end)
+			,new)))))
   (cond
    ((or (stringp sequence) (vectorp sequence)) (substring sequence start end))
    ((listp sequence)
-- 
2.26.0






             reply	other threads:[~2020-04-12  9:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-12  9:46 Štěpán Němec [this message]
2020-04-12 16:18 ` bug#40570: [PATCH] Alias cl-subseq to seq-subseq, define gv-setter in the latter Stefan Monnier
2020-04-12 17:16   ` Štěpán Němec
2020-04-12 19:18     ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200412094627.2494060-1-stepnem@gmail.com \
    --to=stepnem@gmail.com \
    --cc=40570@debbugs.gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.