summary refs log tree commit diff
diff options
context:
space:
mode:
authorArun Isaac2021-06-28 19:39:21 +0530
committerArun Isaac2021-06-29 00:08:14 +0530
commit5ba0ef3dc28c17a8873d5588b4ce8552a88abe8b (patch)
treea6cf0c5d831583c990f15c0549dac4a08229e517
parent9e374f38ab9bc508cce5c0644265cff381edc2a4 (diff)
downloadccwl-5ba0ef3dc28c17a8873d5588b4ce8552a88abe8b.tar.gz
ccwl-5ba0ef3dc28c17a8873d5588b4ce8552a88abe8b.tar.lz
ccwl-5ba0ef3dc28c17a8873d5588b4ce8552a88abe8b.zip
ccwl: Return #f if alist is empty after filtering.
This way, filter-alist composes better with other invocations of
filter-alist.

* ccwl/ccwl.scm (filter-alist): Return #f if alist is empty after
filtering.
(command->cwl): Remove FIXME note about the inputBinding dictionary
being empty.
-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)))))))