anchor.diff:    (declare (ignore at arguments))
     (multiple-value-bind (se mi ho da mo ye) (decode-universal-time date)
       (if colon
  -     (cond
  -       ((< (- *today* date) (* 24 60 60))
  -        (format stream  "~2,'0D:~2,'0D:~2,'0D   " ho mi se))
  -       ((< (- *today* date) (* 6 30 24 60 60))
  -        (format stream "~2,'0D-~2,'0D ~2,'0D:~2,'0D" mo da ho mi))
  -       (t
  -        (format stream "~4,'0D-~2,'0D-~2,'0D " ye mo da)))
  -     (cond
  -       ((< (- *today* date) (* 6 30 24 60 60))
  -        (format stream "~3A ~2D ~2,'0D:~2,'0D"
  -                (aref *short-month-names* (1- mo)) da ho mi))
  -       (t
  -        (format stream "~3A ~2D ~5D"
  -                (aref *short-month-names* (1- mo)) da ye))))))
  +        (cond
  +          ((< (- *today* date) (* 24 60 60))
  +           (format stream  "~2,'0D:~2,'0D:~2,'0D   " ho mi se))
  +          ((< (- *today* date) (* 6 30 24 60 60))
  +           (format stream "~2,'0D-~2,'0D ~2,'0D:~2,'0D" mo da ho mi))
  +          (t
  +           (format stream "~4,'0D-~2,'0D-~2,'0D " ye mo da)))
  +        (cond
  +          ((< (- *today* date) (* 6 30 24 60 60))
  +           (format stream "~3A ~2D ~2,'0D:~2,'0D"
  +                   (aref *short-month-names* (1- mo)) da ho mi))
  +          (t
  +           (format stream "~3A ~2D ~5D"
  +                   (aref *short-month-names* (1- mo)) da ye))))))
   
   
   (defun shorter-date (universal-time)
  
positive.code:                :directory t))))
  
  
  
  (defun ls (&rest args)
    "COMMAND
  DO:         List the files or directories.
  OPTIONS:    -L long listing: item kind, size, date, name; otherwise only name.
  ARGUMENTS:  A list of paths possibly containing wildcards.
              If none is given, then \"*\" is used.
  "
    (setf *today* (get-universal-time))
    (multiple-value-bind (opts args) (split-options args)
      (let ((opt-long nil))
        (dolist (opt opts)
          (cond ((string-equal  "-l" opt) (setf opt-long t))
                (t (error "Invalid option ~A" opt))))
        (dolist (entry
                  (sort
                   (delete-duplicates
                    ;; SBCL RETURNS DIRECTORIES FOR "*" AS WELL AS FOR "*/".
                    (mapcan
                     (lambda (path) (handler-case (directory path) (error () nil)))
                     (mapcar
                      (lambda (path) (resolve path :directory nil))
                      (or (delete-duplicates
                           (mapcan (function wilder-path) args)
                           :key (function namestring)
                           :test (function string=))
                          '("*/" "*"))))
                    :key (function namestring)
                    :test (function string=))
                   (function string<) :key (function namestring)))
          (if opt-long
              (format t "~1A ~10A ~11A ~A~%"
                      (if (pathname-name entry) "-" "d")
                      (handler-case
                          (with-open-file (file entry :direction :input)
                            (format nil "~10D" (file-length file)))
                        (error () ""))
                      (handler-case (shorter-date (file-write-date entry))
                        (error () ""))
                      (namestring (relativize entry (working-directory))))
              (format t "~A~%"
                      (namestring (relativize entry (working-directory))))))))
    (values))
  
  
  
negative.code: 
  (defun parse-short-month (short-month-name)
    (let ((pos (position short-month-name *short-month-names*
                         :test (function string-equal))))
      (and pos (1+ pos))))
  
  
  