Merge slippers:src/lisp
authorMark Wooding <mdw@distorted.org.uk>
Fri, 15 Apr 2016 13:55:06 +0000 (14:55 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 15 Apr 2016 13:55:06 +0000 (14:55 +0100)
* slippers:src/lisp:
  sys-base.lisp: Support for newer `uiop'-based `cl-launch'.
  sys-base.lisp: Use not-deprecated function for quitting SBCL.

1  2 
sys-base.lisp

diff --combined sys-base.lisp
@@@ -1,5 -1,7 +1,5 @@@
  ;;; -*-lisp-*-
  ;;;
 -;;; $Id$
 -;;;
  ;;; Basic system-specific stuff
  ;;;
  ;;; (c) 2005 Mark Wooding
  (defun set-command-line-arguments ()
    (setf *command-line*
        (or (when (member :cl-launch *features*)
-             (let* ((cll-package (find-package :cl-launch))
-                    (name (funcall (intern "GETENV" cll-package)
-                                   "CL_LAUNCH_FILE"))
-                    (args (symbol-value (intern "*ARGUMENTS*"
-                                                cll-package))))
+             (let* ((uiop-package (find-package :uiop))
+                    (cll-package (find-package :cl-launch))
+                    (name (some (intern "GETENV"
+                                        (or uiop-package cll-package))
+                                (list "__CL_ARGV0" "CL_LAUNCH_FILE")))
+                    (args (symbol-value
+                           (if uiop-package
+                               (intern "*COMMAND-LINE-ARGUMENTS*"
+                                       uiop-package)
+                               (intern "*ARGUMENTS*" cll-package)))))
                (if name
                    (cons name args)
                    args)))
@@@ -51,7 -58,7 +56,7 @@@
            #+sbcl sb-ext:*posix-argv*
            #+ecl (loop from i below (ext:argc) collect (ext:argv i))
            #+clisp (loop with argv = (ext:argv)
 -                        for i from 7 below (length argv)
 +                        for i from 7 below (length argv)
                          collect (aref argv i))
            '("<unknown-lisp>" "--" "<unknown-script>")))
    (setf *program-name* (pathname-name (car *command-line*))))