[price-quotes] compact gnc:fq-check-sources

improve locality of vars.
This commit is contained in:
Christopher Lam 2019-08-09 22:49:04 +08:00
parent fab1c8db3e
commit d5122c97ea

View File

@ -68,35 +68,28 @@
(string-append (gnc-path-get-bindir) "/gnc-fq-check")) (string-append (gnc-path-get-bindir) "/gnc-fq-check"))
(define (gnc:fq-check-sources) (define (gnc:fq-check-sources)
(let ((program '()) (let ((program #f))
(from-child #f))
(define (start-program) (define (start-program)
(if (not (string-null? gnc:*finance-quote-check*)) (set! program
(set! program (gnc-spawn-process-async (gnc-spawn-process-async
(list "perl" "-w" gnc:*finance-quote-check*) #t)))) (list "perl" "-w" gnc:*finance-quote-check*) #t)))
(define (get-sources) (define (get-sources)
(if (not (null? program)) (when program
(let ((results #f)) (catch #t
(set! from-child (fdes->inport (gnc-process-get-fd program 1)))
(catch
#t
(lambda () (lambda ()
(set! results (read from-child)) (let ((results (read (fdes->inport (gnc-process-get-fd program 1)))))
(gnc:debug "results: " results) (gnc:debug "gnc:fq-check-sources results: " results)
results) results))
(lambda (key . args) (lambda (key . args) key))))
key)))))
(define (kill-program) (define (kill-program)
(if (not (null? program)) (when program
(gnc-detach-process program #t))) (gnc-detach-process program #t)
(set! program #f)))
(dynamic-wind (dynamic-wind start-program get-sources kill-program)))
start-program
get-sources
kill-program)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;