gpgscm: Generalize 'for-each-p'.
authorJustus Winter <justus@g10code.com>
Thu, 8 Dec 2016 14:39:05 +0000 (15:39 +0100)
committerJustus Winter <justus@g10code.com>
Thu, 8 Dec 2016 14:39:05 +0000 (15:39 +0100)
* tests/gpgscm/tests.scm (for-each-p): Generalize to N lists like
for-each.
(for-each-p'): Likewise.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgscm/tests.scm

index e2b38f5..bd51819 100644 (file)
        (flush-stdio)))
   (set! *progress-nesting* (- *progress-nesting* 1)))
 
-(define (for-each-p msg proc lst)
-  (for-each-p' msg proc (lambda (x) x) lst))
+(define (for-each-p msg proc lst . lsts)
+  (apply for-each-p' `(,msg ,proc ,(lambda (x . xs) x) ,lst ,@lsts)))
 
-(define (for-each-p' msg proc fmt lst)
+(define (for-each-p' msg proc fmt lst . lsts)
   (call-with-progress
    msg
    (lambda (progress)
-     (for-each (lambda (a)
-                (progress (fmt a))
-                (proc a))
-              lst))))
+     (apply for-each
+           `(,(lambda args
+                (progress (apply fmt args))
+                (apply proc args))
+             ,lst ,@lsts)))))
 
 ;; Process management.
 (define CLOSED_FD -1)