diff --git a/CHANGELOG b/CHANGELOG index 825d0fb49..134da75b1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -119,6 +119,9 @@ - Fix `listen' on streams when FILE_CNT isn't available (use read instad of fread) + - `FIND' compiled with C compiler didn't respect `START' nor `END' + arguments. Compiler macro is fixed now and should work as expected + * 16.0.0 changes since 15.3.7 ** API changes diff --git a/src/cmp/cmpopt-sequence.lsp b/src/cmp/cmpopt-sequence.lsp index c4ebcbf50..21ad2bd95 100644 --- a/src/cmp/cmpopt-sequence.lsp +++ b/src/cmp/cmpopt-sequence.lsp @@ -101,7 +101,9 @@ (nconc key-init test-init) key-flag test-flag - test)))))) + test + start + end)))))) #+(or) (define-compiler-macro si::make-seq-iterator (seq &optional (start 0)) @@ -275,7 +277,7 @@ (ext:with-unique-names (%value %elt) `(let ((,%value ,value) ,@init) - (do-in-seq (,%elt ,sequence) + (do-in-seq (,%elt ,sequence :start ,start :end ,end) (when ,(funcall test-function %value (funcall key-function %elt)) (return ,%elt))))))))