anchor.diff:  
   (defvar *connection*)
   (defvar *nickname* "")
  +(defvar *channels* nil)
   
   (defun shut-up ()
     (setf (irc:client-stream *connection*) (make-broadcast-stream)))
  
positive.code:                     (pathname-directory
                       *base-path*))))
  
  (defvar *last-communication-time* nil)
  (defvar *ping-sent* nil)
  (defvar *thread* nil)
  
  (defun start-handler (connection)
    (flet ((select-handler (fd)
             (declare (ignore fd))
             (if (listen (network-stream connection))
                 (handler-bind
                     ;; install sensible recovery: nobody can wrap the
                     ;; handler...
                     ((no-such-reply
                        #'(lambda (c)
                            (declare (ignore c))
                            (invoke-restart 'continue))))
                   (setf *last-communication-time* (get-universal-time))
                   (read-message connection))
                 ;; select() returns with no
                 ;; available data if the stream
                 ;; has been closed on the other
                 ;; end (EPIPE)
                 (sb-sys:invalidate-descriptor
                  (sb-sys:fd-stream-fd
                   (network-stream connection))))))
      (sb-sys:add-fd-handler (sb-sys:fd-stream-fd
                              (network-stream connection))
                             :input #'select-handler)))
  
  (defvar *ping-timeout* 30)
  
  (defun stop-specbot ()
    (usocket:socket-close (irc::socket *connection*))
  
negative.code:               (sleep 5))))
  
  (defun setup-connection (nick server channels)
    (setf *nickname* nick
          *channels* channels)
    (loop always
          (eql :restart
               (catch 'connection
                 (setf *nick-retry-count* 0)
                 (try-connecting nick server)
                 (add-hook *connection* 'irc-privmsg-message 'msg-hook)
                 (add-hook *connection* 'irc-notice-message 'notice-hook)
                 (add-hook *connection* 'irc-err_nicknameinuse-message 'in-use-hook)
                 (add-hook *connection* 'irc-pong-message 'pong-hook)
                 (start-bot-loop *connection*)))
          do
          (usocket:socket-close (irc::socket *connection*))
          (setf *channels* (alexandria:hash-table-keys (channels *connection*)))))
  
  (defvar *password* "l1sp")
  (defvar *nick-retry-count* 0)
  