[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/relint 2d1f488 32/44: mapcar on non-list sequence
From: |
Mattias Engdegård |
Subject: |
[elpa] externals/relint 2d1f488 32/44: mapcar on non-list sequence |
Date: |
Tue, 26 Mar 2019 12:57:29 -0400 (EDT) |
branch: externals/relint
commit 2d1f488de40c027f4b5a20caaba5b559cb413970
Author: Mattias Engdegård <address@hidden>
Commit: Mattias Engdegård <address@hidden>
mapcar on non-list sequence
Allow mapcar and mapcan to be run on any sequence that we can evaluate
statically, not just lists. In particular, mapcar on strings to
produce a regexp has been observed in the wild, and relint crashed
without this change.
---
relint.el | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/relint.el b/relint.el
index 3d67093..e1d9c27 100644
--- a/relint.el
+++ b/relint.el
@@ -399,8 +399,11 @@
;; The sequence argument may be missing a few arguments that we cannot
;; evaluate.
((memq (car form) '(mapcar mapcan))
- (let ((fun (relint--safe-function (relint--eval (cadr form)) nil))
- (seq (remq nil (relint--eval-list (caddr form)))))
+ (let* ((fun (relint--safe-function (relint--eval (cadr form)) nil))
+ (arg (relint--eval-list (caddr form)))
+ (seq (if (listp arg)
+ (delq nil arg)
+ arg)))
(if fun
(condition-case err
(funcall (car form) fun seq)
- [elpa] externals/relint e882b71 42/44: Detect regexps spliced into [...], (continued)
- [elpa] externals/relint e882b71 42/44: Detect regexps spliced into [...], Mattias Engdegård, 2019/03/26
- [elpa] externals/relint c1b92cc 36/44: Wrap and evaluate defined functions passed as parameters, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint d4a6d46 37/44: Evaluate some more functions, macros and special forms, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 019f4cf 10/44: Rewrite the partial evaluator and extend coverage, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 365dc91 41/44: Check bad skip-set provenance, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint a1829d7 39/44: Refactor the file scanning and linting code, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 0f76132 40/44: Add README.org, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint e824db0 38/44: Expand locally defined macros, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint c215d54 34/44: More careful evaluation of if, when, unless, and, or, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 15c799e 35/44: Evaluate calls to functions defined in the same file., Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 2d1f488 32/44: mapcar on non-list sequence,
Mattias Engdegård <=
- [elpa] externals/relint af745bb 30/44: Update the package description. Increment version to 1.4, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint e1b1ef9 22/44: Run in two phases on each file, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 7a1b632 33/44: Add wildcard-to-regexp as 'pure' function, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint f6fb8e6 31/44: Sundry cosmetic fixes, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 151dbb8 23/44: Handle some destructive list functions, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 187d586 27/44: Scan arguments to `skip-chars-{forward, backward}', Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 5af5466 26/44: Scan string-trim arguments, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 4dbcad9 24/44: Increment version to 1.2, Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 104e66c 15/44: Fix bugs in evaluation of `rx' and `rx-to-strings', Mattias Engdegård, 2019/03/26
- [elpa] externals/relint 3f8509a 13/44: Add more functions to check for regexp arguments, Mattias Engdegård, 2019/03/26