anchor.diff:                        (setq (options [backup-dir]) (backup-dir-pair 1))
                       (setq (options [backup-dir]) (join (rest lst) "=")))))
                 (cond
  +               ((matches-opt? "-no" curr) (setq (options [compact]) nil))
  +               ((matches-opt? "-no-output" curr) (setq (options [compact]) nil))
                  ((matches-opt? "-nc" curr) (setq (options [compact]) nil))
                  ((matches-opt? "-no-compact" curr) (setq (options [compact]) nil))
                  ((matches-opt? "-nb" curr) (setq (options [backup]) nil))
  
positive.code:                                 (matches-opt? "-backup-dir" curr))
                             (and (not (matches-opt? "-bd" prev))
                                  (matches-opt? "-bd" curr)))
                         ;; The "--backup-dir" string is at the end of the arg list
                         (list curr "")
                       (if (or (matches-opt? "-bd" prev)
                               (matches-opt? "-backup-dir" prev))
  
negative.code:          (option-arg?
            (lambda (arg)
              (or
               (matches-opt? "-o" arg)
               (matches-opt? "-output" arg)
               (matches-opt? "-dialect" arg)
               (matches-opt? "-bd" arg)
               (matches-opt? "-backup-dir" arg)
  