anchor.diff:         (log-request (channel "#lisp") nil (date "20160301T000000") (date "2016-03-31T00:00:00")))
         ("log #lisp from 20160601T000000"
          (log-request (channel "#lisp") nil (date "20160601T000000") nil))
  -      ("cancel all log on channel #lisp on server irc.freenode.org"
  -       (cancel-log-channel (channel "#lisp") (server "irc.freenode.org")))
  -      ("cancel all log on channel #lisp"
  -       (cancel-log-channel (channel "#lisp") nil))
  -      ("cancel all #lisp on irc.freenode.org"
  -       (cancel-log-channel (channel "#lisp") (server "irc.freenode.org")))
  -      ("cancel all #lisp"
  -       (cancel-log-channel (channel "#lisp") nil))
  -      ("cancel log 42"
  -       (cancel-log-id (id "42"))))))
  +      )))
   
   
   (define-test test/pathnames ()
  
positive.code:   `(let ((,nick (argument-old-user ,sender ,nick ,server)))
       ,@body))
  
  (defun list-channels (sender server user)
    ;; (list-channels (server "irc.freenode.org") (nick "pjb"))
    ;; (list-channels nil nil)
    (with-server (sender server)
      (with-user (sender user server)
        (if (has-user-credentials sender user)
            (let ((requests (requests user)))
              (if (endp requests)
                  (answer sender "~A has requested no logs." (name user))
                  (dolist (request (requests user))
                    (answer sender "~3D) ~15A ~A ~@[~A~]"
                            (id request)
                            (name (channel request))
                            (format-iso8601-time (start-date request))
                            (when (end-date request)
                              (format-iso8601-time (end-date request)))))))
            (answer sender "You are not authorized list the channels logged by the user ~A." (name user))))))
  
  (defun list-users (sender server)
    ;; (list-users (server "irc.freenode.org")) 
    ;; (list-users nil)
    (with-server (sender server)
      (dolist (user 
               (if  (has-server-credential sender server)
                    (mapcar (function pathname-name)
                            (directory (user-pathname :wild server)))
                    (progn (answer sender "You are not authorized to list the users other than you.")
                           (list (name sender)))))
        (let ((user (find-user server user)))
          (answer sender "~16A ~:[ ~;I~]~:[ ~;V~] ~@[~A~]"
                  (name user) (identified user) (verified user) (email user))))))
  
negative.code:     "identify <password>"
      "reset [<nick>]"
      "set password [nick] <nick> [key] <key> [password] <password>"
      "list (server|servers)"
      "list (user|users) [on [server] <server>]"
      "log [channel] <channel> (from <date> [to <date>])|(to <date>)"
      "list [all] my [log] requests [for [channel] <channel>]"
      "list all [log] requests [of [nick] <nick>] [for [channel] <channel>] [on [server] <server>]"
      "cancel all [log] requests [of [nick] <nick>] [for [channel] <channel>] [on [server] <server>]"
      "cancel log <id>"
      "help"
      "version"
  