(ferret): New proc.
authorThien-Thi Nguyen <ttn@gnuvola.org>
Thu, 29 Nov 2001 00:19:13 +0000 (00:19 +0000)
committerThien-Thi Nguyen <ttn@gnuvola.org>
Thu, 29 Nov 2001 00:19:13 +0000 (00:19 +0000)
(grok): Use `ferret'.

scripts/use2dot

index 6f29011..19091f2 100755 (executable)
@@ -97,7 +97,7 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
          (format #t "  \"~A\" -> \"~A\"~A;\n" module use etc-spec))))
 
 (define (header)
-  (format #t "digraph use2dot {")
+  (format #t "digraph use2dot {\n")
   (for-each (lambda (s) (format #t "  ~A;\n" s))
             (map vv `((label . ,(q "Guile Module Dependencies"))
                       ;(rankdir . LR)
@@ -106,6 +106,12 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
                       ;(nodesep . ,(q "0.05"))
                       ))))
 
+(define (ferret use)                    ; handle "((foo bar) :select ...)"
+  (let ((maybe (car use)))
+    (if (list? maybe)
+        maybe
+        use)))
+
 (define (grok filename)
   (let* ((p (open-file filename "r"))
          (next (lambda () (read p)))
@@ -121,7 +127,7 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
                          (or (null? ls)
                              (case (car ls)
                                ((:use-module)
-                                (spew module (cadr ls))
+                                (spew module (ferret (cadr ls)))
                                 (loop (cddr ls)))
                                ((:autoload)
                                 (spew module (cadr ls)
@@ -133,7 +139,8 @@ exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
                                (else (loop (cdr ls))))))))
                     ((use-modules)
                      (for-each (lambda (use)
-                                 (spew (or curmod default-module) use))
+                                 (spew (or curmod default-module)
+                                       (ferret use)))
                                (cdr form)))
                     ((load primitive-load)
                      (spew (or curmod default-module)