Require ASDF or UIOP 3.0.3 for its new RUN-PROGRAM
authorFrancois-Rene Rideau <tunes@google.com>
Mon, 28 Oct 2013 20:42:19 +0000 (16:42 -0400)
committerFrancois-Rene Rideau <tunes@google.com>
Mon, 28 Oct 2013 20:42:19 +0000 (16:42 -0400)
inferior-shell.asd
pkgdcl.lisp
utilities.lisp

index 6aeb499..5389f9a 100644 (file)
@@ -1,8 +1,9 @@
 ;;; -*- Lisp -*-
 
 (defsystem :inferior-shell
-  :defsystem-depends-on (:asdf #-asdf3 :asdf-driver)
-  :depends-on (#-asdf3 :asdf-driver #+sbcl :sb-posix
+  :defsystem-depends-on (:asdf #-asdf3 :uiop)
+  :depends-on ((:version #+asdf3 :asdf #-asdf3 :uiop "3.0.3")
+               #+sbcl :sb-posix
                :alexandria :optima
                :fare-utils :fare-quasiquote-extras :fare-mop)
   :description "spawn local or remote processes and shell pipes"
index ab1f9d0..a4143a2 100644 (file)
@@ -1,9 +1,7 @@
 #+xcvb (module ())
 
-(in-package :cl)
-
-(asdf/package:define-package :inferior-shell
-  (:mix :fare-utils :alexandria :asdf/driver)
+(uiop/package:define-package :inferior-shell
+  (:mix :fare-utils :uiop :alexandria)
   (:use :cl :optima :named-readtables :fare-mop)
   (:export
    #:run #:run/s #:run/ss #:run/lines
index aa564a9..be8e0a2 100644 (file)
   (with-input-from-string (stream string)
     (do-stream-lines fun stream)))
 
-(defvar *cr* (coerce #(#\cr) 'string))
-(defvar *lf* (coerce #(#\newline) 'string))
-(defvar *crlf* (coerce #(#\cr #\newline) 'string))
-
-(defun stripln (x)
-  (check-type x string)
-  (let* ((len (length x))
-         (endlfp (equal (last-char x) #\linefeed))
-         (endcrlfp (and endlfp (<= 2 len) (eql (char x (- len 2)) #\return)))
-         (endcrp (equal (last-char x) #\return)))
-    (cond
-      (endlfp (values (subseq x 0 (- len 1)) *lf*))
-      (endcrp (values (subseq x 0 (- len 1)) *cr*))
-      (endcrlfp (values (subseq x 0 (- len 2)) *crlf*))
-      (t (values x nil)))))
-
 (defun read-line* (&optional (stream *standard-input*) eof-error-p eof-value recursive-p cr lf)
   "Similar to READ-LINE, this function also returns as additional values the state about
 whether CR or LF were read. CR, LF and CR+LF are accepted only.