# HG changeset patch # User Steve Losh # Date 1639526998 18000 # Node ID 7a3907583b2d01ed320c59f12377c6fff41d5828 # Parent 0d62d291dfb18ef35ff953f3266e6ed0ca77214c Fix `:skip-origin t` in `within-radius` diff -r 0d62d291dfb1 -r 7a3907583b2d src/iterate.lisp --- a/src/iterate.lisp Tue Dec 14 19:09:04 2021 -0500 +++ b/src/iterate.lisp Tue Dec 14 19:09:58 2021 -0500 @@ -530,6 +530,7 @@ (with-gensyms (r control skip) `(progn (with ,r = ,radius) + (with ,skip = ,should-skip-origin) ,@(mapcar (lambda (ovar oval) `(with ,ovar = ,oval)) origin-vars origin-vals) @@ -538,13 +539,11 @@ (collect `(,var :from (- ,orig ,r) :to (+ ,orig ,r)))) :control-var ,control) (next ,control) - ,@(unless (null should-skip-origin) - `((with ,skip = ,should-skip-origin) - (when (and ,skip - ,@(iterate (for var :in (ensure-list delta-vars)) - (for ovar :in origin-vars) - (collect `(= ,ovar ,var)))) - (next ,control)))))))) + (when (and ,skip + ,@(iterate (for var :in (ensure-list delta-vars)) + (for ovar :in origin-vars) + (collect `(= ,ovar ,var)))) + (next ,control)))))) (defmacro-driver (FOR var EVERY-NTH n DO form)