summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ccwl/ccwl.scm15
1 files changed, 9 insertions, 6 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm
index 9da805e..9c24a1b 100644
--- a/ccwl/ccwl.scm
+++ b/ccwl/ccwl.scm
@@ -72,11 +72,15 @@
   (make-output id type binding source other))
 
 (define (filter-alist alist)
-  "Filter ALIST removing entries with #f as the value."
-  (filter (match-lambda
-            ((_ . #f) #f)
-            (_ #t))
-          alist))
+  "Filter ALIST removing entries with #f as the value. If the
+resulting association list is empty, return #f. Else, return that
+association list."
+  (match (filter (match-lambda
+                   ((_ . #f) #f)
+                   (_ #t))
+                 alist)
+    (() #f)
+    (result result)))
 
 (define-immutable-record-type <step>
   (make-step id run in out)
@@ -245,7 +249,6 @@
                              (label . ,(input-label input))
                              (default . ,(and (not (unspecified-default? (input-default input)))
                                               (input-default input)))
-                             ;; FIXME: inputBinding can be an empty dictionary.
                              (inputBinding . ,(filter-alist
                                                `((position . ,(input-position input))
                                                  (prefix . ,(input-prefix input)))))))