/[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.26 by emarsden, Tue Feb 25 17:22:06 2003 UTC revision 1.26.32.3 by rtoy, Sat May 31 01:23:14 2008 UTC
# Line 381  Line 381 
381          (let ((n (length s)))          (let ((n (length s)))
382            ;;            ;;
383            ;; Blast the string into place            ;; Blast the string into place
384              #-unicode
385            (kernel:copy-to-system-area (the simple-string s)            (kernel:copy-to-system-area (the simple-string s)
386                                        (* vm:vector-data-offset vm:word-bits)                                        (* vm:vector-data-offset vm:word-bits)
387                                        string-sap 0                                        string-sap 0
388                                        (* (1+ n) vm:byte-bits))                                        (* (1+ n) vm:byte-bits))
389              #+unicode
390              (progn
391                ;; FIXME: Do we need to apply some kind of transformation
392                ;; to convert Lisp unicode strings to C strings?  Utf-8?
393                (dotimes (k n)
394                  (setf (sap-ref-8 string-sap k)
395                        (logand #xff (char-code (aref s k)))))
396                (setf (sap-ref-8 string-sap n) 0))
397            ;;            ;;
398            ;; Blast the pointer to the string into place            ;; Blast the pointer to the string into place
399            (setf (sap-ref-sap vec-sap i) string-sap)            (setf (sap-ref-sap vec-sap i) string-sap)
# Line 625  Line 634 
634                               (error "Could not read input from sub-process: ~A"                               (error "Could not read input from sub-process: ~A"
635                                      (unix:get-unix-error-msg errno)))                                      (unix:get-unix-error-msg errno)))
636                              (t                              (t
637                                 #-unicode
638                               (kernel:copy-from-system-area                               (kernel:copy-from-system-area
639                                (alien-sap buf) 0                                (alien-sap buf) 0
640                                string (* vm:vector-data-offset vm:word-bits)                                string (* vm:vector-data-offset vm:word-bits)
641                                (* count vm:byte-bits))                                (* count vm:byte-bits))
642                                 #+unicode
643                                 (let ((sap (alien-sap buf)))
644                                   (dotimes (k count)
645                                     (setf (aref string k)
646                                           (code-char (sap-ref-8 sap k)))))
647                               (write-string string stream                               (write-string string stream
648                                             :end count)))))))))))                                             :end count)))))))))))
649    

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.26.32.3

  ViewVC Help
Powered by ViewVC 1.1.5