fiddling
[rrq/newlisp/packnl.git] / incore.lsp
index 8f24187ef6b449daeaf2f27e404c40c80ed4aef4..6b0a02f5c73b82d0f834302140a67cd99e818894 100644 (file)
@@ -47,7 +47,7 @@
          )))
 
 ;; Read a member of an external archive
          )))
 
 ;; Read a member of an external archive
-(define (get-stdin CMD)
+(define (get-stdout CMD)
   (let ((I (pipe)) (O (pipe)) (DATA "") (ALL "")
         (SUB (fn (I O)
                (map close (list (I 1) (O 0) 0))
   (let ((I (pipe)) (O (pipe)) (DATA "") (ALL "")
         (SUB (fn (I O)
                (map close (list (I 1) (O 0) 0))
@@ -64,8 +64,8 @@
 (define (get PATH MEMBER)
   (if (list? PATH) ((PATH 0) (PATH 1) core)
     (directory? PATH) (read-file (format "%s/%s" PATH MEMBER))
 (define (get PATH MEMBER)
   (if (list? PATH) ((PATH 0) (PATH 1) core)
     (directory? PATH) (read-file (format "%s/%s" PATH MEMBER))
-    (ends-with PATH ".a") (get-stdin (format "%s p %s %s" AR PATH MEMBER))
-    (tar-able PATH) (get-stdin (format "%s xOf %s %s" TAR PATH MEMBER))
+    (ends-with PATH ".a") (get-stdout (format "%s p %s %s" AR PATH MEMBER))
+    (tar-able PATH) (get-stdout (format "%s xOf %s %s" TAR PATH MEMBER))
     ))
 
 ;; Discover and load an in-core archive by means of a marker row of 40
     ))
 
 ;; Discover and load an in-core archive by means of a marker row of 40
 
 (constant
    'load
 
 (constant
    'load
-   (letex ((LOAD load) (CTX '(or (and (1 (args)) (args 1)) MAIN)))
+   (letex ((LOAD load) (CTX '(if (1 (args)) (args 1) MAIN)))
      (fn () (if (archives (args 0))
                 (eval-string (archive:get $it (args 0)) CTX)
      (fn () (if (archives (args 0))
                 (eval-string (archive:get $it (args 0)) CTX)
-              (LOAD (args 0) CTX))))
+              (LOAD (args 0) (eval CTX)))))
    'read-file
    'read-file
-   (letex (READ-FILE read-file)
+   (letex ((READ-FILE read-file) (CTX '(if (1 (args)) (args 1) MAIN)))
      (fn ()
      (fn ()
-       (if (archives (args 0)) (archive:get $it (args 0))
+       (if (archives (args 0)) (archive:get $it (args 0) CTX)
          (READ-FILE (args 0)))))
    'file?
          (READ-FILE (args 0)))))
    'file?
-   (letex (FILE? file?)
+   (letex ((FILE? file?))
      (fn () (if (archives (args 0)) true (FILE? (args 0)))))
    )
 
      (fn () (if (archives (args 0)) true (FILE? (args 0)))))
    )