41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
-
+
-
+
|
(let ((vals (string-split target "/")))
(if (eq? (length vals)(length keys))
(for-each (lambda (key val)
(setenv key val)
(if ht (hash-table-set! ht (conc ":" key) val)))
keys
vals)
(debug:print 0 "ERROR: wrong number of values in " target ", should match " keys))
(debug:print 0 #f "ERROR: wrong number of values in " target ", should match " keys))
vals)
(debug:print 4 "ERROR: keys:target-set-args called with no target.")))
(debug:print 4 #f "ERROR: keys:target-set-args called with no target.")))
;; given the keys (a list of vectors <key field> or a list of keys) and a target return a keyval list
;; keyval list ( (key1 val1) (key2 val2) ...)
(define (keys:target->keyval keys target)
(let* ((targlist (string-split target "/"))
(numkeys (length keys))
(numtarg (length targlist))
|