anchor.diff:  (define-command connect (irc text)
     "CONNECT <server or address>
     Connect to a server. Addresses use the address:port format, with port defaulting to 6667."
  -  (cond ((not (nickname irc))
  +  (cond ((zerop (length text))
  +         (format (display-pane irc) "~&Known servers:")
  +         (loop for (name address port) in *known-servers*
  +            do (format (display-pane irc) "~&  ~:(~A~)  ~A:~D" name address port)))
  +        ((not (nickname irc))
            (error "No nickname set. Use /nick to set a nickname before connecting."))
           ((irc-connection irc)
            (error "Already connected to ~S." (irc-connection irc)))
  -        ((zerop (length text))
  -         (format (display-pane irc) "~&Known servers:")
  -         (loop for (name address port) in *known-servers*
  -            do (format (display-pane irc) "~&  ~:(~A~)  ~A:~D" name address port)))
           (t (multiple-value-bind (address port)
                  (resolve-server-name text)
                (format (display-pane irc) "~&Connecting to ~A (~A:~A)." text address port)
  
positive.code:   (format (display-pane irc) "~&Available commands:")
    (maphash (lambda (name help)
               (declare (ignore name))
               (format (display-pane irc) "~&/~:(~A~)" help))
             *top-level-command-doc*)
    (format (display-pane irc) "~&To connect, first set your nickname with the NICK command, then connect to a server with CONNECT."))
  
  (defclass irc-client ()
    ((%fifo :initarg :fifo :reader fifo)
  
negative.code:                                                 (mezzano.gui.compositor:width window)
                                                  (mezzano.gui.compositor:height window))
            (unwind-protect
                 (progn
                   (funcall (gethash "HELP" *top-level-commands*) irc "")
                   (loop
                      (handler-case
                          (progn
                            (reset-input irc)
                            (let ((line (read-line (input-pane irc))))
                              (multiple-value-bind (command rest)
                                  (parse-command line)
                                (let ((fn (gethash (string-upcase command) *top-level-commands*)))
                                  (if fn
                                      (funcall fn irc rest)
                                      (error "Unknown command ~S." command))))))
                        (error (c)
                          (format (display-pane irc) "~&Error: ~A" c)))))
              (when (irc-connection irc)
                (close (irc-connection irc)))))))))
  
  