anchor.diff:       (mudlog 'warning t "attempt to set cxn to state ~a" state)))
   
     ;;; send telnet DONT ECHO when the new state is a password state
  -  (when (password-state-p (cxn-state cxn))
  +  (when (password-state-p (state-of cxn))
   	(cxn-write cxn "~c~c~c"
   			   (code-char #xff)
   			   (code-char #xfb)
  
positive.code:     (cxn-write cxn "~%Press RETURN to reincarnate.~%"))
    (input (cxn line)
     ;; hitting return causes re-entry into the game
     (player-to-game (cxn-actor cxn))))
  
  (define-connection-state playing
    (prompt (cxn)
     (cond
       ((and (action (cxn-actor cxn))
             (send-action-prompt (action (cxn-actor cxn))))
        ;; if send-action-prompt returns t, we don't need to send the
        ;; standard prompt
        nil)
       ((not (or (display-hitp-p (prefs (cxn-actor cxn)))
                 (display-mana-p (prefs (cxn-actor cxn)))
                 (display-move-p (prefs (cxn-actor cxn)))))
        (cxn-write cxn "&W>&n "))
       (t
        (cxn-write cxn "&W< ~@[&G~a&YH ~]~@[&M~a&YM ~]~@[&C~a&YV ~]&W>&n "
                   (when (display-hitp-p (prefs (cxn-actor cxn)))
                     (hitp (cxn-actor cxn)))
                   (when (display-mana-p (prefs (cxn-actor cxn)))
                     (mana (cxn-actor cxn)))
                   (when (display-move-p (prefs (cxn-actor cxn)))
                     (move (cxn-actor cxn)))))))
    (input (cxn line)
     (unless (and (action (cxn-actor cxn))
                  (interpret (action (cxn-actor cxn)) line))
       (let ((trimmed-line (string-left-trim '(#\/ #\space #\tab) line)))
         (when (plusp (length trimmed-line))
           (interpret-command (cxn-actor cxn)
                              (expand-aliases (cxn-actor cxn)
                                              trimmed-line)))))))
  
  (defun send-menu (cxn state)
    (send-state-menu cxn state))
  
  (defun send-prompt (cxn)
    (send-state-prompt cxn (cxn-state cxn)))
  
  (defun cxn-do-command (cxn line)
    (restart-case
        (handle-state-input cxn (cxn-state cxn) line)
     (continue () nil)))
  
  (defun cxn-handle-commands ()
    (dolist (cxn *cxns*)
  	(when (cxn-commands cxn)
  	  (setf (cxn-need-prompt cxn) t)
  	  (let ((cmd (pop (cxn-commands cxn))))
  		(handler-bind ((error (lambda (str)
                                 (cxn-write cxn "You become mildly queasy as reality distorts momentarily.~%")
  
negative.code:   (input (cxn line)
     (setf (email-of (cxn-account cxn)) line)
     (save-account (cxn-account cxn))
     (setf (state-of cxn) 'new-account-password)))
  
  (define-connection-state new-account-password
    (menu (cxn)
  