           "java -jar zprint-filter-"
           (second (clojure.string/split (:version (get-options)) #"-")))
      ""
-     " <options-map> is a Clojure map containing zprint options."
+     " <options-map> is a Clojure map containing zprint options. Must be first."
      "               Note that since it contains spaces, it must be"
      "               wrapped in quotes, for example:"
      "               '{:width 120}'"

  (let [before-last-switch (elements-before-last-switch args)
        last-switch-in-seq (when before-last-switch
                             (nthnext args before-last-switch))
        possible-write-switch (when before-last-switch
                                (first last-switch-in-seq))
        write? (#{"-w" "--write" "-lw" "-cw" "-lcw" "-clw"
                  "--list-changed-write" "--changed-list-write" "--list-write"
                  "--changed-write"}
                possible-write-switch)
        changed? (when write?
                   (clojure.string/includes? possible-write-switch "c"))
        list? (when write? (clojure.string/includes? possible-write-switch "l"))
        files (when write? (next last-switch-in-seq))
        args (if write? (take before-last-switch args) args)
        #_#_options?
          (and (first args)
               (clojure.string/starts-with? (clojure.string/trim (first args))
                                            "{"))
        #_#_write-switch (if options? (second args) (first args))
        #_#_write? (or (= "-w" write-switch) (= "--write" write-switch))
        #_#_files (when write? (if options? (nnext args) (next args)))
        ; Now that we have the --write/-w stuff out of the way, process
        ; switches and options, having first removed the --write/-w stuff,
        ; if any
        #_#_args (if write? (if options? (take 1 args) nil) args)
        options (first args)
        _ (prn "args:" args)
        _ (println)
        _ (prn "before-last-switch:" before-last-switch
               "possible-write-switch:" possible-write-switch
               "write?" write?
               "list?" list?
               "changed?" changed?
               "files:" files)
        ; Some people wanted a zprint that didn't take configuration.
        ; If you say "--default" or "-d", that is what you get.

                running-status
                ; Do we have a options, and if so, is that all?
                (if (and options
                         (not (clojure.string/starts-with? options "-"))
                         (not arg-count-ok?))
                  ; No, we have something that could be options, and other
                  ; stuff after it, which is not allowed.  If we had -w
