diff options
author | Tom Faulhaber <git_com@infolace.com> | 2010-11-04 21:21:12 -0700 |
---|---|---|
committer | Stuart Halloway <stu@thinkrelevance.com> | 2010-12-17 17:08:46 -0500 |
commit | c7c7c01edd7e88fc41a5bf644fa8f9b67cc9cb11 (patch) | |
tree | 46be3e2553abe7c35129c7d07fa48266ee8eb77a | |
parent | 84022ed9fff9f495132038f6e279f4f7b148f422 (diff) |
Convert the pretty printer to emit platform-specific newlines when it breaks lines
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
-rw-r--r-- | src/clj/clojure/pprint/pprint_base.clj | 2 | ||||
-rw-r--r-- | src/clj/clojure/pprint/pretty_writer.clj | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/clj/clojure/pprint/pprint_base.clj b/src/clj/clojure/pprint/pprint_base.clj index 9c82fa69..4be9ac51 100644 --- a/src/clj/clojure/pprint/pprint_base.clj +++ b/src/clj/clojure/pprint/pprint_base.clj @@ -249,7 +249,7 @@ print the object to the currently bound value of *out*." (binding-map (if (or (not (= *print-base* 10)) *print-radix*) {#'pr pr-with-base} {}) (write-out object))) (if (not (= 0 (get-column *out*))) - (.write *out* (int \newline)))))) + (prn))))) (defmacro pp "A convenience macro that pretty prints the last thing output. This is diff --git a/src/clj/clojure/pprint/pretty_writer.clj b/src/clj/clojure/pprint/pretty_writer.clj index 551e668a..8b6aba4c 100644 --- a/src/clj/clojure/pprint/pretty_writer.clj +++ b/src/clj/clojure/pprint/pretty_writer.clj @@ -96,6 +96,8 @@ ;;; Functions to write tokens in the output buffer ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(def ^:private pp-newline (memoize #(System/getProperty "line.separator"))) + (declare emit-nl) (defmulti ^{:private true} write-token #(:type-tag %2)) @@ -223,7 +225,7 @@ (recur (:parent lb))))))) (defn- emit-nl [^Writer this nl] - (.write (getf :base) (int \newline)) + (.write (getf :base) (pp-newline)) (dosync (setf :trailing-white-space nil)) (let [lb (:logical-block nl) ^String prefix (:per-line-prefix lb)] @@ -339,7 +341,7 @@ (.write (getf :base) (int \newline)) (doseq [^String l (next (butlast lines))] (.write (getf :base) l) - (.write (getf :base) (int \newline)) + (.write (getf :base) (pp-newline)) (if prefix (.write (getf :base) prefix))) (setf :buffering :writing) |