/[cmucl]/src/code/run-program.lisp
ViewVC logotype

Diff of /src/code/run-program.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.27 by cshapiro, Wed Sep 24 09:42:25 2008 UTC revision 1.28 by rtoy, Thu Jun 11 16:03:59 2009 UTC
# Line 370  Line 370 
370          (let ((n (length s)))          (let ((n (length s)))
371            ;;            ;;
372            ;; Blast the string into place            ;; Blast the string into place
373              #-unicode
374            (kernel:copy-to-system-area (the simple-string s)            (kernel:copy-to-system-area (the simple-string s)
375                                        (* vm:vector-data-offset vm:word-bits)                                        (* vm:vector-data-offset vm:word-bits)
376                                        string-sap 0                                        string-sap 0
377                                        (* (1+ n) vm:byte-bits))                                        (* (1+ n) vm:byte-bits))
378              #+unicode
379              (progn
380                ;; FIXME: Do we need to apply some kind of transformation
381                ;; to convert Lisp unicode strings to C strings?  Utf-8?
382                (dotimes (k n)
383                  (setf (sap-ref-8 string-sap k)
384                        (logand #xff (char-code (aref s k)))))
385                (setf (sap-ref-8 string-sap n) 0))
386            ;;            ;;
387            ;; Blast the pointer to the string into place            ;; Blast the pointer to the string into place
388            (setf (sap-ref-sap vec-sap i) string-sap)            (setf (sap-ref-sap vec-sap i) string-sap)
# Line 614  Line 623 
623                               (error "Could not read input from sub-process: ~A"                               (error "Could not read input from sub-process: ~A"
624                                      (unix:get-unix-error-msg errno)))                                      (unix:get-unix-error-msg errno)))
625                              (t                              (t
626                                 #-unicode
627                               (kernel:copy-from-system-area                               (kernel:copy-from-system-area
628                                (alien-sap buf) 0                                (alien-sap buf) 0
629                                string (* vm:vector-data-offset vm:word-bits)                                string (* vm:vector-data-offset vm:word-bits)
630                                (* count vm:byte-bits))                                (* count vm:byte-bits))
631                                 #+unicode
632                                 (let ((sap (alien-sap buf)))
633                                   (dotimes (k count)
634                                     (setf (aref string k)
635                                           (code-char (sap-ref-8 sap k)))))
636                               (write-string string stream                               (write-string string stream
637                                             :end count)))))))))))                                             :end count)))))))))))
638    

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

  ViewVC Help
Powered by ViewVC 1.1.5