Changeset 7211


Ignore:
Timestamp:
Sep 14, 2007, 1:32:23 AM (12 years ago)
Author:
palter
Message:

Add support for :element-type to ccl:run-program to allow for binary streams

Location:
trunk/ccl/level-1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/level-1/l1-streams.lisp

    r6944 r7211  
    54175417        'fd-binary-io-stream
    54185418        'fd-binary-input-stream)
    5419       'fd-character-output-stream)))
     5419      'fd-binary-output-stream)))
    54205420
    54215421(defstruct (input-selection (:include dll-node))
  • trunk/ccl/level-1/linux-files.lisp

    r6947 r7211  
    677677
    678678(defun get-descriptor-for (object proc close-in-parent close-on-error
    679                                   &rest keys &key direction
     679                                  &rest keys &key direction (element-type 'character)
    680680                                  &allow-other-keys)
    681681  (etypecase object
     
    697697                  (make-fd-stream write-pipe
    698698                                  :direction :output
     699                                  :element-type element-type
    699700                                  :interactive nil)
    700701                  (cons read-pipe close-in-parent)
     
    704705                  (make-fd-stream read-pipe
    705706                                  :direction :input
     707                                  :element-type element-type
    706708                                  :interactive nil)
    707709                  (cons write-pipe close-in-parent)
     
    859861                            output (if-output-exists :error)
    860862                            (error :output) (if-error-exists :error)
    861                             status-hook)
     863                            status-hook (element-type 'character))
    862864  "Invoke an external program as an OS subprocess of lisp."
    863865  (declare (ignore pty))
     
    888890           (multiple-value-setq (in-fd in-stream close-in-parent close-on-error)
    889891             (get-descriptor-for input proc  nil nil :direction :input
    890                                  :if-does-not-exist if-input-does-not-exist))
     892                                 :if-does-not-exist if-input-does-not-exist
     893                                 :element-type element-type))
    891894           (multiple-value-setq (out-fd out-stream close-in-parent close-on-error)
    892895             (get-descriptor-for output proc close-in-parent close-on-error
    893896                                 :direction :output
    894                                  :if-exists if-output-exists))
     897                                 :if-exists if-output-exists
     898                                 :element-type element-type))
    895899           (multiple-value-setq (error-fd error-stream close-in-parent close-on-error)
    896900             (if (eq error :output)
     
    898902               (get-descriptor-for error proc close-in-parent close-on-error
    899903                                   :direction :output
    900                                    :if-exists if-error-exists)))
     904                                   :if-exists if-error-exists
     905                                   :element-type element-type)))
    901906           (setf (external-process-input proc) in-stream
    902907                 (external-process-output proc) out-stream
Note: See TracChangeset for help on using the changeset viewer.