X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fshebang.lisp;h=6d6a2cb22100bb217e8ddc03299fcc332422c7d3;hb=69ef68ba7393e3492c1b4a756d1140f71c2922bc;hp=626a3822dd7a12c368a5b875a5d11d691dd92cac;hpb=2481b0d0f223640c43032f75b689608f8fa332db;p=sbcl.git diff --git a/src/cold/shebang.lisp b/src/cold/shebang.lisp index 626a382..6d6a2cb 100644 --- a/src/cold/shebang.lisp +++ b/src/cold/shebang.lisp @@ -73,6 +73,17 @@ (declaim (type list *shebang-features*)) (defvar *shebang-backend-subfeatures*) +;;;; string checker, for catching non-portability early +(defun make-quote-reader (standard-quote-reader) + (lambda (stream char) + (let ((result (funcall standard-quote-reader stream char))) + (unless (every (lambda (x) (typep x 'standard-char)) result) + (warn "Found non-STANDARD-CHAR in ~S" result)) + result))) +(compile 'make-quote-reader) + +(set-macro-character #\" (make-quote-reader (get-macro-character #\" nil))) + ;;;; FIXME: Would it be worth implementing this? #| ;;;; readmacro syntax to remove spaces from FORMAT strings at compile time