Change "stdin" to "stdout". Allow optional archive argument to load
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Sun, 23 Apr 2023 05:25:44 +0000 (15:25 +1000)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Sun, 23 Apr 2023 05:25:44 +0000 (15:25 +1000)
amd read-file.

incore.lsp

index 8f24187ef6b449daeaf2f27e404c40c80ed4aef4..2847b54fb101dae94412b1c0504cbf18c54cd204 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)
               (LOAD (args 0) CTX))))
    'read-file
      (fn () (if (archives (args 0))
                 (eval-string (archive:get $it (args 0)) CTX)
               (LOAD (args 0) CTX))))
    '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)))))
    )