diff options
author | Stephen C. Gilardi <squeegee@squeegee-mbp.scgilardi.selfip.net> | 2009-07-06 07:53:40 -0400 |
---|---|---|
committer | Stephen C. Gilardi <squeegee@squeegee-mbp.scgilardi.selfip.net> | 2009-07-06 07:53:40 -0400 |
commit | c73ef9faa5258ab38cc03e19b00a9df019dd6680 (patch) | |
tree | 0e8ddb27e7d0183cd059f7c3dc4597fbfa872596 /src/clojure/contrib/pprint/cl-format.clj | |
parent | 8ffc90fc7d5b2e24054e9ecbe81366005e211aa4 (diff) | |
parent | 72ab9cee502eabbff71f1e60e9a1ae44daf9bab7 (diff) |
Merge branch 'master' of git@github.com:richhickey/clojure-contrib
Diffstat (limited to 'src/clojure/contrib/pprint/cl-format.clj')
-rw-r--r-- | src/clojure/contrib/pprint/cl-format.clj | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/clojure/contrib/pprint/cl-format.clj b/src/clojure/contrib/pprint/cl-format.clj index f7bb623c..de547e43 100644 --- a/src/clojure/contrib/pprint/cl-format.clj +++ b/src/clojure/contrib/pprint/cl-format.clj @@ -202,18 +202,21 @@ http://www.lispworks.com/documentation/HyperSpec/Body/22_c.htm [nil nil]) val)))) +;;; TODO: xlated-val does not seem to be used here. (defn- base-str "Return val as a string in the given base" [base val] - (let [xlated-val (cond - (float? val) (bigdec val) - (ratio? val) (let [#^clojure.lang.Ratio r val] - (/ (.numerator r) (.denominator r))) - :else val)] - (apply str - (map - #(if (< % 10) (char (+ (int \0) %)) (char (+ (int \a) (- % 10)))) - (remainders base val))))) + (if (zero? val) + "0" + (let [xlated-val (cond + (float? val) (bigdec val) + (ratio? val) (let [#^clojure.lang.Ratio r val] + (/ (.numerator r) (.denominator r))) + :else val)] + (apply str + (map + #(if (< % 10) (char (+ (int \0) %)) (char (+ (int \a) (- % 10)))) + (remainders base val)))))) (def #^{:private true} java-base-formats {8 "%o", 10 "%d", 16 "%x"}) |