Commit graph

69 commits

Author SHA1 Message Date
Simen Heggestøyl
3d2e3dc1ca Change name of `seqp' argument (Bug#26411)
* lisp/emacs-lisp/seq.el (seqp): Change argument name.

* doc/lispref/sequences.texi: Update the documentation for seqp.
2018-06-21 20:27:35 -04:00
Paul Eggert
5c7dd8a783 Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 00:57:59 -08:00
Paul Eggert
bc511a64f6 Prefer HTTPS to FTP and HTTP in documentation
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November.  Change these FTP URLs to https://ftp.gnu.org
instead.  Make similar changes for URLs to other organizations moving
away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
2017-09-13 15:54:37 -07:00
Nicolas Petton
5c4dbbb745
* lisp/emacs-lisp/seq.el: Bump seq version. 2017-05-04 11:34:41 +02:00
Damien Cassou
88f96e69cf Add seq-set-equal-p to test for set equality
* lisp/emacs-lisp/seq.el (seq-set-equal-p): Add function to compare
  two lists as if they were sets.

* test/lisp/emacs-lisp/seq-tests.el (test-seq-set-equal-p): Add test
  for seq-set-equal-p.
2017-05-04 11:32:58 +02:00
Paul Eggert
55086ef651 Fix obsolete ‘test/automated’ references
* Makefile.in (mostlyclean, clean, maybeclean_dirs, distclean)
(bootstrap-clean, maintainer-clean):
Clean ‘test’, not ‘test/automated’.  Test for existence of
subdirectory only for ‘test’, not for directories that should
always exist.
* admin/MAINTAINERS, etc/TODO, lisp/emacs-lisp/bytecomp.el:
* lisp/emacs-lisp/seq.el, lisp/emacs-lisp/thunk.el:
* lisp/man.el (Man-parse-man-k):
* lisp/url/url-domsuf.el, make-dist:
* test/file-organization.org:
Fix obsolete references to test/automated.
2017-03-27 11:30:08 -07:00
Paul Eggert
bcf244ef9b Merge from origin/emacs-25
2e2a806 Fix copyright years by hand
5badc81 Update copyright year to 2017
2017-01-01 01:10:47 -08:00
Paul Eggert
5badc81c1c Update copyright year to 2017
Run admin/update-copyright.
2016-12-31 19:42:26 -08:00
Nicolas Petton
fb2fdb1435 Make seq-into return the sequence when no conversion needed
* lisp/emacs-lisp/seq.el (seq-into): Do not convert the sequence when
  no conversion is needed.
* test/lisp/emacs-lisp/seq-tests.el (test-seq-into-and-identity): Add
  a regression test checking for identity.
2016-12-16 11:22:00 +01:00
Nicolas Petton
09a66ceb5e Fix circular list handling in seq-mapn
* lisp/emacs-lisp/seq.el (seq-mapn): Do not copy list arguments.
* test/lisp/emacs-lisp/seq-tests.el (test-seq-mapn-circular-lists):
  Add a regression test.
2016-12-15 10:26:11 +01:00
Nicolas Petton
05e773a460
Docstring improvement for seq-some (bug#25129)
* lisp/emacs-lisp/seq.el (seq-some): Make the docstring less confusing
  regarding the returned value.
2016-12-07 13:32:46 +01:00
Nicolas Petton
b4f09b92bc * lisp/emacs-lisp/seq.el (seq-random-elt): Fix docstring. 2016-10-25 17:07:07 +02:00
Damien Cassou
bd22beb6e4 Add seq-random-elt to seq.el
* lisp/emacs-lisp/seq.el (seq-random-elt): Add function to return a
  random element from it's sequence parameter.

* test/lisp/emacs-lisp/seq-tests.el (test-seq-random-elt-take-all
  test-seq-random-elt-return-nil): Test the new function

* doc/lispref/sequences.texi: Document the new function
2016-10-25 12:32:57 +02:00
Nicolas Petton
524a05ac78
* lisp/emacs-lisp/seq.el (seq-let): Fix debug spec (Bug#24738) 2016-10-24 13:15:05 +02:00
Paul Eggert
dcd90f60eb Merge from origin/emacs-25
0ffc9ce Update admin/authors.el
0ad7410 Update Antinews in ELisp manual
ea0f750 Fix comments on window height macros
0bbdeed Fix 'url-http-create-request' when cookies are used
0045998 Fix cross reference in frames.texi
1392894 ; * etc/DEBUG: Minor copyedits.
304a5c8 ; * etc/DEBUG: Improve documentation of getting control to GDB.
56bf7d7 Fix regexp-opt documentation (bug #17862)
803ad6f ; Fix documentation of seq-subseq
ed4530d * lisp/emacs-lisp/gv.el (gv-ref): Fix example of PLACE in doc...
88ea396 ; Spelling fixes
17197d0 Fix tags-query-replace docstring
80a7f8b Clarify documentation of precision in format specs
88a5052 Improve and clarify documentation of subprocesses
89eb09f * etc/PROBLEMS: Mention gnutls-cli 3.5.3 (Bug#24247).

# Conflicts:
#	etc/PROBLEMS
#	src/process.c
2016-09-26 13:32:28 -07:00
Clément Pit--Claudel
803ad6f7e7 ; Fix documentation of seq-subseq 2016-09-02 09:53:31 -04:00
Nicolas Petton
ead28454b8 Fix seq-contains
Make sure seq-contains return the element of the sequence instead of t.

* lisp/emacs-lisp/seq.el (seq-contains): Fix the function.
* test/lisp/emacs-lisp/seq-tests.el: Add a regression test.
2016-06-18 10:10:00 +02:00
Nicolas Petton
9726856f29 Add seq-do-indexed
* lisp/emacs-lisp/seq.el (seq-do-indexed): New function.
* test/lisp/emacs-lisp/seq-tests.el: Add a unit test for seq-do-indexed.
2016-06-18 10:10:00 +02:00
Nicolas Petton
37f8a470d0
* lisp/emacs-lisp/seq.el (seq-drop): Better list implementation 2016-06-12 12:41:42 +02:00
Glenn Morris
b7d8abd7f0 * lisp/emacs-lisp/seq.el: Load cl-lib, not cl-extra.
; The various components of cl-lib are an internal implementation detail.
2016-04-07 16:24:25 -04:00
Nicolas Petton
6df158cf55 * lisp/emacs-lisp/seq.el: Require cl-lib instead of cl-extra 2016-03-29 12:43:13 +02:00
Nicolas Petton
2946344a23 New function seq-sort-by in seq.el
* lisp/emacs-lisp/seq.el (seq-sort-by): New function.
* test/lisp/emacs-lisp/seq-tests.el: New test for seq-sort-by.
* doc/lispref/sequences.texi: Add documentation for seq-sort-by.
2016-03-29 09:19:32 +02:00
Nicolas Petton
30fe90fa3c New function seq-map-indexed
* lisp/emacs-lisp/seq.el (seq-map-indexed): New function.
* test/lisp/emacs-lisp/seq-tests.el: Add tests for seq-map-indexed.
2016-02-14 10:25:10 +01:00
Paul Eggert
0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
Nicolas Petton
51d840a8a1 Rename seq-p and map-p to seqp and mapp
* lisp/emacs-lisp/seq.el (seqp): New name.
* lisp/emacs-lisp/map.el (mapp): New name.
* doc/lispref/sequences.texi: Update the documentation for seqp.
* test/automated/map-tests.el: Update the tests for mapp.
2015-11-11 18:20:03 +01:00
Artur Malabarba
7dfe247864 * lisp/emacs-lisp/seq.el (seq-mapn): New function
* doc/lispref/sequences.texi (Sequence Functions): Document seq-mapn
2015-10-28 15:40:23 +00:00
Nicolas Petton
5a9842c933 * lisp/emacs-lisp/seq.el: Better docstrings. 2015-10-26 22:17:41 +01:00
Nicolas Petton
7637849321 * lisp/emacs-lisp/seq.el: Rename all seq argumentss to sequence. 2015-10-26 22:17:41 +01:00
Nicolas Petton
04d604e055 New function seq-position
* lisp/emacs-lisp/seq.el (seq-position): New function.
* test/automated/seq-tests.el: New tests for seq-position.
* doc/lispref/sequences.texi: Add documentation for `seq-position'.
2015-10-20 00:39:27 +02:00
Nicolas Petton
17d4f60b55 Fix typos in docstrings
* lisp/emacs-lisp/map.el:
* lisp/emacs-lisp/seq.el: Fix typos in the docstrings of the pcase
  macros.
2015-10-14 17:57:32 +02:00
Nicolas Petton
b5e2d74950 Better docstrings in seq.el and map.el
* lisp/emacs-lisp/map.el:
* lisp/emacs-lisp/seq.el: Improve the docstring for the pcase patterns.
2015-10-14 09:40:10 +02:00
Nicolas Petton
f0b71429b9 Better documentation for seq-some
* doc/lispref/sequences.texi:
* lisp/emacs-lisp/seq.el: Update the documentation of seq-some to
guarantee that the returned value is the first non-nil value that
resulted from applying the predicate.
2015-09-28 21:15:58 +02:00
Nicolas Petton
0a893f0cfa Better docstring and parameter name for seq-find
* lisp/emacs-lisp/seq.el (seq-find): Improve the docstring and rename
the parameter `sentinel' to `default'.

* doc/lispref/sequences.texi (Sequence Functions): Update the
  documentation for `seq-find' accordingly.
2015-09-21 11:48:55 +02:00
Nicolas Petton
8aa0386420 Add seq-find
This function is similar to `seq-some' but returns the found element.
In the cases where nil can be the found element, a sentinel optional
argument can be provided to avoid ambiguities.

* lisp/emacs-lisp/seq.el (seq-find): New function.
* test/automated/seq-tests.el (test-seq-find): Add tests for `seq-find'.
* doc/lispref/sequences.texi (Sequence Functions): Add documentation for
seq-find.
2015-09-11 00:09:35 +02:00
Oleh Krehel
765dcc709c Remove redundant redefinition of seq-drop-while from seq.el
* lisp/emacs-lisp/seq.el (seq-drop-while): Define only once.
2015-09-09 15:10:15 +02:00
Nicolas Petton
aeb1d6bdd5 Improve the semantic of seq-some
Update seq-some to return non-nil if the predicate returns non-nil for
any element of the seq, in which case the returned value is the one
returned by the predicate.

* lisp/emacs-lisp/seq.el (seq-some): Update the function and its
  docstring.
* test/automated/seq-tests.el (test-seq-some): Add a regression test.
* doc/lispref/sequences.texi (Sequence Functions): Update the
  documentation for seq-some.
2015-09-06 00:44:39 +02:00
Nicolas Petton
c36663d866 Rename seq-some-p to seq-some and seq-contains-p to seq-contains
* lisp/emacs-lisp/seq.el (seq-some, seq-contains): Rename the functions
  without the "-p" prefix.
* test/automated/seq-tests.el (test-seq-some, test-seq-contains): Update
  the tests accordingly.
* doc/lispref/sequences.texi (Sequence Functions): Update the
  documentation for seq.el.
2015-09-06 00:05:52 +02:00
Nicolas Petton
259a643d7f Improve seq-concatenate for new sequence types
Use the new `seq-into-sequence' in seqs passed to `seq-concatenate' to
ensure that concatenation happens on sequences only.  This makes it
possible to use `seq-concatenate' for new types of seqs.

* lisp/emacs-lisp/seq.el (seq-into-sequence, seq-concatenate): New
function used in `seq-concatenate'.
* test/automated/seq-tests.el (test-seq-into-sequence): New unit test
for seq-into-sequence.
2015-08-27 00:29:22 +02:00
Paul Eggert
7f67cdb652 Spelling fixes 2015-08-25 00:43:01 -07:00
Nicolas Petton
291593a057 Fix cl-subseq and cl-concatenate
* lisp/emacs-lisp/cl-extra.el (cl-subseq, cl-concatenate): Do not use
seq functions.
* lisp/emacs-lisp/seq.el (seq-concatenate): Call cl-concatenate in
seq-concatenate.
2015-08-24 10:25:19 +02:00
Nicolas Petton
c13a4df51c Remove the calls to seq-into from seq-concatenate
Since most new types of seq would have to be defined as sequences (cons
cells or CL structs, mostly), there is no need to convert the seqs to
sequences (which can be a fairly expensive operation).

* lisp/emacs-lisp/seq.el (seq-concatenate): Do not ensure that seqs are
sequences.
2015-08-23 21:14:09 +02:00
Nicolas Petton
e7be986196 Make seq.el more extensible by using cl-defmethod
* lisp/emacs-lisp/seq.el: Define seq.el functions using cl-defmethod to
make it easier to extend seq.el with new "seq types".
* test/automated/seq-tests.el (test-setf-seq-elt): New test.
* lisp/emacs-lisp/cl-extra.el (cl-subseq): Move back the definition of
subseq in cl-extra.el, and use it in seq.el.
2015-08-23 19:50:26 +02:00
Phillip Lord
feadec307d Improve error signalling for seq-subseq.
The existing behaviour for seq-subseq is to error when indexes are too
large, but to silently ignore numbers which are too negative for lists.
String and vector handling errors in both cases. This has been
regularlised.

Error signalling behaviour has been explicitly added to the docstring of
seq-subseq, and also to cl-subseq which largely defers to
seq-subseq (and is therefore also impacted by this change).

Tests have been added for these exceptional cases, as well as one non
exceptional base case.
2015-08-07 22:12:59 +01:00
Nicolas Richard
145f28f814 * lisp/emacs-lisp/seq.el (seq-difference): Fix typo in docstring 2015-07-02 00:58:16 +02:00
Nicolas Petton
b1047c3b42 Add seq-min and seq-max
Bump version number.

* lisp/emacs-lisp/seq.el (seq-min, seq-max): New functions.
* test/automated/seq-tests.el: Add tests for seq-min and seq-max.
2015-06-30 18:40:19 +02:00
Nicolas Petton
70a567971a * lisp/emacs-lisp/seq.el: Fix a byte-compiler warnings related to pcase. 2015-06-16 23:49:35 +02:00
Stefan Monnier
37ab2245f2 * lisp/loadup.el ("emacs-lisp/cl-generic"): Preload
* src/lisp.mk (lisp): Add emacs-lisp/cl-generic.elc.
* lisp/emacs-lisp/cl-generic.el (cl-generic-define-method):
Avoid defalias for closures which are not immutable.
(cl--generic-prefill-dispatchers): New macro.  Use it to prefill the
dispatchers table with various entries.

* lisp/emacs-lisp/ert.el (emacs-lisp-mode-hook):
* lisp/emacs-lisp/seq.el (emacs-lisp-mode-hook): Use add-hook.
2015-05-13 18:39:49 -04:00
Nicolas Petton
f9ba8dc074 Improve the seq pcase pattern and the `seq-let' macro
* lisp/emacs-lisp/seq.el: The pcase pattern now matches only if the
object is a sequence, and binds each element of ARGS to the
corresponding element of the sequence.
2015-05-12 22:15:45 +02:00
Nicolas Petton
387e1e1943 New version of `seq-let' based on a pcase pattern
* lisp/emacs-lisp/seq.el (seq-let): Define the macro in terms of a
pcase pattern if `pcase-defmacro' is defined (Emacs>=25.1).
2015-05-10 20:19:38 +02:00
Nicolas Petton
4ac426a1b9 Merge branch 'seq-let' 2015-05-05 22:10:32 +02:00