0.8.3.18:
[sbcl.git] / src / code / run-program.lisp
index 95ebb73..0119d6c 100644 (file)
@@ -63,7 +63,7 @@
 (defun unix-environment-cmucl-from-sbcl (sbcl)
   (mapcan
    (lambda (string)
-     (declare (type simple-string string))
+     (declare (type simple-base-string string))
      (let ((=-pos (position #\= string :test #'equal)))
        (if =-pos
           (list
@@ -86,8 +86,8 @@
   (mapcar
    (lambda (cons)
      (destructuring-bind (key . val) cons
-       (declare (type keyword key) (type simple-string val))
-       (concatenate 'simple-string (symbol-name key) "=" val)))
+       (declare (type keyword key) (type simple-base-string val))
+       (concatenate 'simple-base-string (symbol-name key) "=" val)))
    cmucl))
 \f
 ;;;; Import wait3(2) from Unix.
             (values pid
                     (if (position signal
                                   #.(vector
-                                     (sb-unix:unix-signal-number :sigstop)
-                                     (sb-unix:unix-signal-number :sigtstp)
-                                     (sb-unix:unix-signal-number :sigttin)
-                                     (sb-unix:unix-signal-number :sigttou)))
+                                     sb-unix:sigstop
+                                     sb-unix:sigtstp
+                                     sb-unix:sigttin
+                                     sb-unix:sigttou))
                         :stopped
                         :signaled)
                     signal
           (sb-unix:unix-ioctl (sb-sys:fd-stream-fd (process-pty proc))
                               sb-unix:TIOCSIGSEND
                               (sb-sys:int-sap
-                               (sb-unix:unix-signal-number signal))))
+                               signal)))
          ((:process-group #-hpux :pty-process-group)
           (sb-unix:unix-killpg pid signal))
          (t
       (cond ((not okay)
             (values nil errno))
            ((and (eql pid (process-pid proc))
-                 (= (sb-unix:unix-signal-number signal)
-                    (sb-unix:unix-signal-number :sigcont)))
+                 (= signal sb-unix:sigcont))
             (setf (process-%status proc) :running)
             (setf (process-exit-code proc) nil)
             (when (process-status-hook proc)
        while start
        ;; <Krystof> the truename of a file naming a directory is the
        ;; directory, at least until pfdietz comes along and says why
-       ;; that's noncompliant
-       for fullpath = (merge-pathnames
-                       pathname (truename
-                                 (subseq search-path start end)))
-       when (unix-filename-is-executable-p (namestring fullpath))
+       ;; that's noncompliant  -- CSR, c. 2003-08-10
+       for truename = (probe-file (subseq search-path start end))
+       for fullpath = (when truename (merge-pathnames pathname truename))
+       when (and fullpath
+                 (unix-filename-is-executable-p (namestring fullpath)))
        return fullpath))
 
 ;;; FIXME: There shouldn't be two semiredundant versions of the
 
    The &KEY arguments have the following meanings:
      :ENVIRONMENT
-        a list of SIMPLE-STRINGs describing the new Unix environment (as
-        in \"man environ\"). The default is to copy the environment of
+        a list of SIMPLE-BASE-STRINGs describing the new Unix environment
+        (as in \"man environ\"). The default is to copy the environment of
         the current process.
      :ENV
         an alternative lossy representation of the new Unix environment,
   (when (and env-p environment-p)
     (error "can't specify :ENV and :ENVIRONMENT simultaneously"))
   ;; Make sure that the interrupt handler is installed.
-  (sb-sys:enable-interrupt :sigchld #'sigchld-handler)
+  (sb-sys:enable-interrupt sb-unix:sigchld #'sigchld-handler)
   ;; Prepend the program to the argument list.
   (push (namestring program) args)
   (let (;; Clear various specials used by GET-DESCRIPTOR-FOR to