anchor.diff:    (repl-reset-input)
     (lem.listener-mode:listener-mode t))
   
  -(defvar *read-string-thread-stack* nil) ;(1)
  -(defvar *read-string-tag-stack* nil) ;(1)
  +(defun read-string-thread-stack ()
  +  (buffer-value (current-buffer) 'read-string-thread-stack))
  +
  +(defun (setf read-string-thread-stack) (val)
  +  (setf (buffer-value (current-buffer) 'read-string-thread-stack) val))
  +
  +(defun read-string-tag-stack ()
  +  (buffer-value (current-buffer) 'read-string-tag-stack))
  +
  +(defun (setf read-string-tag-stack) (val)
  +  (setf (buffer-value (current-buffer) 'read-string-tag-stack) val))
   
   (define-key *lisp-repl-mode-keymap* "C-c C-c" 'lisp-repl-interrupt)
   
   (define-command lisp-repl-interrupt () ()
     (swank-protocol:send-message-string *connection*
                                         (format nil "(:emacs-interrupt ~(~S~))"
  -                                              (or (car *read-string-thread-stack*)
  +                                              (or (car (read-string-thread-stack))
                                                     :repl-thread))))
   
   (defun repl-buffer (&optional force)
  
positive.code: (defun repl-read-string (thread tag)
    (let ((buffer (repl-buffer)))
      (when buffer
        (push thread *read-string-thread-stack*)
        (push tag *read-string-tag-stack*)
        (let ((windows (get-buffer-windows buffer)))
          (setf (current-window)
                (if windows
  
negative.code: (in-package :lem-lisp-mode)
  
  (defparameter *default-port* 4005)
  
  (defvar *connection* nil)
  (defvar *write-string-function* 'write-string-to-output-buffer)
  