anchor.diff:                                        (getf elem prop)))
                                  '(:oneline :twoline :time :file :file2)))
                         *default-patterns*)))
  -    (let ((pat (getf (or pat (first *default-patterns*)) :pattern)))
  -      ;; handle pretty, ndc and thread
  -      (flet ((s/ (x y)
  -               (setq pat (replace-in-string pat x y)))) 
  +    (let ((pat (getf (or pat (first *default-patterns*)) :pattern))
  +          w1 w2
  +          thread-width-fmt
  +          ndc-width-fmt)
  +      (flet (
  +             ;; search replace once in pattern
  +             (s/ (x y)
  +               (setq pat (replace-in-string pat x y)))
  +             ;; generate %<min.max> part of pattern if field width was
  +             ;; used with :thread or :ndc
  +             (figure-width (x)
  +               (if (consp x)
  +                   (destructuring-bind (&optional min max) x
  +                     (format nil "~@[~d~]~@[.~d~]" min max)) 
  +                   "")))
           (cond ((getf args :pretty)
                  (s/ "%<" "%<{pretty}"))
                 ((getf args :nopretty) 
  
positive.code:           ((:twoline :two-line :2line) (setq oneline nil twoline t))
            ((:oneline :one-line :1line) (setq oneline t twoline nil))
            (:console (setq console t global-console t))
            (:thread (setq thread t))
            (:ndc (setq ndc t))
            (:pretty (setq pretty t nopretty nil))
            (:nopretty (setq nopretty t pretty nil))
            (:package (setq package t nopackage nil))
  
negative.code:  :NOFILE       | :NOFILE does not show the file
  ---------------|---------------------------------------------------------------
   :THREAD       | Include thread name into default pattern, it will be after the
    [<n>[<n2>]]  | time, in [%t] format. If :THERAD argument is followed by one
                 | or two numbers, they will be used as min/max field width.
  ---------------|---------------------------------------------------------------
   :NDC          | Include NDC context into default pattern, with optional min/max
    [<n>[<n2>]]  | field width flags. When used together with :THREAD NDC will be
                 | printed after the thread name, separated by dash, like this
                 | example: \"[threadname-ndc]\"; it will not be shown if unbound
                 |
                 | Without :THREAD, its shown in its own square brackets, with
                 | entire construct not shown if unbound.
  ---------------|---------------------------------------------------------------
   :NOPACKAGE    | Add {nopackage} option to the pattern (binds orig package at
   :PACKAGE      | the site of the log statement. PACKAGE binds keyword package,
  