X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fcoverage.scm;h=0f1ae319ad627bf2f79eee457b13785d3ba41646;hb=HEAD;hp=5ca40f90299768c2c8923a62ca3827d927cc57ed;hpb=e1cf796adb1b15362b7f7c7525549decdf18044d;p=lilypond.git diff --git a/scm/coverage.scm b/scm/coverage.scm index 5ca40f9029..0f1ae319ad 100644 --- a/scm/coverage.scm +++ b/scm/coverage.scm @@ -1,37 +1,38 @@ +;;;; coverage.scm + (define-module (scm coverage)) (use-modules (lily) - (ice-9 rdelim) - (ice-9 regex) - (ice-9 format)) + (ice-9 rdelim) + (ice-9 regex) + (ice-9 format) ;; needed for ~8@ + ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-public (coverage:show-all filter?) - - (newline) - (hash-fold - (lambda (key val acc) - (if (filter? key) - (begin - (format #t - " -Coverage for file: ~a -" - key) - (display-coverage key val - (format #f "~a.cov" (basename key)) - ))) - #t) - #t - coverage-table)) + (let* + ((keys + (filter filter? + (sort (map car (hash-table->alist coverage-table)) string= line (vector-length vec))) - (set! vec - (hash-set! coverage-table name - (if vec - (veccopy vec (make-vector (1+ line) #f)) - (make-vector (1+ line) #f))))) - - (vector-set! vec line #t)) - ))) - - - - - + (begin + (if (or (not vec) (>= line (vector-length vec))) + (set! vec + (hash-set! coverage-table name + (if vec + (veccopy vec (make-vector (1+ line) #f)) + (make-vector (1+ line) #f))))) + + (vector-set! vec line #t)) + )))