From 252ddedd4b3af9a1b947258994e0ae1aa4fa81d3 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 19 Jan 2016 18:01:07 -0600 Subject: [PATCH] build-system/haskell: Fix package.conf parsing. * guix/build/haskell-build-system.scm (register)[conf-depends]: Properly react to EOF while reading GHC package conf files. --- guix/build/haskell-build-system.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm index 8e2aee381d..3afc37e16d 100644 --- a/guix/build/haskell-build-system.scm +++ b/guix/build/haskell-build-system.scm @@ -192,7 +192,8 @@ given Haskell package." (let loop ((collecting #f) (deps '())) (let* ((line (read-line port)) - (field (and=> (regexp-exec field-rx line) + (field (and=> (and (not (eof-object? line)) + (regexp-exec field-rx line)) (cut match:substring <> 1)))) (cond ((and=> field (cut string=? <> "depends")) @@ -200,7 +201,7 @@ given Haskell package." ;; so drop those characters. A line may list more than one .conf. (let ((d (string-tokenize (string-drop line 8)))) (loop #t (append d deps)))) - ((and collecting field) + ((or (eof-object? line) (and collecting field)) (begin (close-port port) (reverse! deps)))