xdump package
[eow] / empire.lisp
index 062c0fe960964ed642936ee318c853135efe133a..9f28084bbf82bc8dad8939a1adb2cf911069ba96 100644 (file)
       (:kill-sent (send-message-one connection "play")
                  (setf phase :play-sent)))))
 
+(defmethod handle-data ((m init-mode) message)
+  (declare (ignorable message))
+  t)
+
 (defmethod handle-exit ((m play-mode) message)
   (declare (ignorable message))
   (quit (connection m)))
              (send-message-one c message)
              (set-new-mode c mode))))))
 
+(defun read-no-eval (stream)
+  (let ((*read-eval* nil))
+    (read stream)))
+
 (defmethod handle-prompt ((m play-mode) message)
   (let* ((c (connection m)))
     (with-input-from-string (s message)
-      (let* ((minutes (read s)) ;;FIXME DANGEROUS
-            (btus (read s)))
+      (let* ((minutes (read-no-eval s))
+            (btus (read-no-eval s)))
        (empire-web:prompt (session c)
                           (format nil "[~a,~a]: " minutes btus))))
     (send-next-line c)))
                (error 'no-handler :mode mode :type type))))
        line)
     (sb-int:closed-stream-error () nil)
+    (sb-int:simple-stream-error () nil)
     (end-of-file () nil)))
 
 (defun raw-send-message (s message)