anchor.diff:                                          ;(format t "Received:~S~%" *reply*))
   
   (defun eval-input ()
  +  (format t "irc input: ~A~%" *reply*)
     (setq splited-input (split-string *reply* #\Space))
     (cond ((string-equal (first splited-input) "NOTICE") ;;NOTICE
  -         (format t "~S~%" *reply*))
  +         (format t "NOTICE: ~S~%" *reply*))
   
           ((string-equal (first splited-input) "PING") ;;PING?PONG!
            (format t "PING? PONG!~%")
  -         (send (concatenate 'string "PONG " (string (second splited-input))) *irc-socket*))
  +         (send (concatenate 'string "PONG "
  +                            (string (second splited-input)))
  +               *irc-socket*))
   
   
           ((string-equal (first splited-input) "ERROR") ;;ERROR
  
positive.code:   (format t "Parsing 372 command~%")
    (format t "MOTD: ~A~%" trailing))
  
  ;;FIXME: this is called every time somebody join
  (defparser "JOIN"
    (when (and (member middle *channels* :test #'equal)
               (equal *nick* (subseq prefix 1 (position #\! prefix))))
      (format t "Joined ~A~%" middle)
      (say middle *channel-join-msg*)))
  
  ;;parse an irc string into its three
  ;;parts
  (defun parse-irc (string)
    ;;prefix(optional) command middle trailing(optional)
    (let ((splited-msg (split-string *reply* #\Space)))
      (if (equal (char (first splited-msg) 0) #\:);try to find a prefix
          (setq prefix (first splited-msg)))
      (setq command (second splited-msg))         ;then the command
      (setq middle (third splited-msg))           ;then middle
      (setq trailing (cdddr splited-msg))         ;and the trailing part
      (setq nick (subseq prefix 1
                         (position #\! prefix)))  ;nick who send the message
      (format t "Prefix:~S~%" prefix)
      (format t "Command:~S~%" command)
      (format t "Middle:~S~%" middle)
  
negative.code: (in-package :lotzo)
  
  
  