(in-package #:safer-lisp) (defvar *safer-readtable* (copy-readtable nil) "*readtable* for use with safer-read functions.") (defun |#.-reader| (stream subchar arg) (declare (ignore subchar arg)) (safer-eval (safer-read stream t nil t))) (eval-when (:load-toplevel) (set-dispatch-macro-character #\# #\. #'|#.-reader| *safer-readtable*)) (defun safer-read (&optional input-stream (eof-error-p t) eof-value recursive-p) (let ((*readtable* *safer-readtable*)) (read input-stream eof-error-p eof-value recursive-p)))