                                java.lang.Integer (str (char obj#))
                                (str obj#))
                            term-height# (.getHeight term#)
-                           alternate-height# (@__cli4clj_options__ :alternate-height)]
+                           alternate-height# (~options :alternate-height)]
                        (binding [*out* stdout#]
                          (when @new-line#
                            (reset! x# 1)

  [opts]
  (add-args-info opts))

(defmacro with-alt-scroll-out
  [& body]
  `(let [stdout# *out*
         new-line# (atom true)
         term# (TerminalFactory/create)

   Please note that the configuration options can also be defined in a global or local var.
   However, in order to lookup arguments defined in anonymous functions, the configuration options have to be defined directly in the macro call."
  [user-options]
  (let []
    `(let [_tmp_options# (atom {})
           ~'with-alt-scroll-out (fn [& body#] (wrap-alt-scroll-writer @_tmp_options# body#))
           user-options# ~user-options
           options-with-args-info# (add-args-info user-options#)
           options# (assoc
                      (get-cli-opts options-with-args-info#)
                      :calling-ns ~*ns*)]
       (swap! _tmp_options# into options#)
       ((wrap-alt-scroll-writer
          options#
          (main/repl
            :eval ((options# :eval-factory) options#)
            :print (options# :print)
            :prompt (options# :prompt-fn)
            :read (*read-factory* options#)))))))

(defn create-embedded-read-fn
  "This creates a read fn intended for use in the embedded CLI."
