|
267 | 267 | "Returns true if x is not nil, false otherwise."
|
268 | 268 | [x] (not (nil? x)))
|
269 | 269 |
|
| 270 | +(defn- pr-opts-fnl [opts] |
| 271 | + (if-not (nil? opts) |
| 272 | + (:flush-on-newline opts) |
| 273 | + *flush-on-newline*)) |
| 274 | + |
| 275 | +(defn- pr-opts-readably [opts] |
| 276 | + (if-not (nil? opts) |
| 277 | + (:readably opts) |
| 278 | + *print-readably*)) |
| 279 | + |
| 280 | +(defn- pr-opts-meta [opts] |
| 281 | + (if-not (nil? opts) |
| 282 | + (:meta opts) |
| 283 | + *print-meta*)) |
| 284 | + |
| 285 | +(defn- pr-opts-dup [opts] |
| 286 | + (if-not (nil? opts) |
| 287 | + (:dup opts) |
| 288 | + *print-dup*)) |
| 289 | + |
| 290 | +(defn- pr-opts-len [opts] |
| 291 | + (if-not (nil? opts) |
| 292 | + (:print-length opts) |
| 293 | + *print-length*)) |
| 294 | + |
270 | 295 | (defn object?
|
271 | 296 | "Returns true if x's constructor is Object"
|
272 | 297 | [x]
|
|
907 | 932 | [^not-native obj]
|
908 | 933 | (let [sb (StringBuffer.)
|
909 | 934 | writer (StringBufferWriter. sb)]
|
910 |
| - (-pr-writer obj writer (pr-opts)) |
| 935 | + (-pr-writer obj writer nil) |
911 | 936 | (-flush writer)
|
912 | 937 | (.toString sb)))
|
913 | 938 |
|
@@ -10441,13 +10466,13 @@ reduces them without incurring seq initialization"
|
10441 | 10466 | (-write writer "#")
|
10442 | 10467 | (do
|
10443 | 10468 | (-write writer begin)
|
10444 |
| - (if (zero? (:print-length opts)) |
| 10469 | + (if (zero? (pr-opts-len opts)) |
10445 | 10470 | (when (seq coll)
|
10446 | 10471 | (-write writer (or (:more-marker opts) "...")))
|
10447 | 10472 | (do
|
10448 | 10473 | (when (seq coll)
|
10449 | 10474 | (print-one (first coll) writer opts))
|
10450 |
| - (loop [coll (next coll) n (dec (:print-length opts))] |
| 10475 | + (loop [coll (next coll) n (dec (pr-opts-len opts))] |
10451 | 10476 | (if (and coll (or (nil? n) (not (zero? n))))
|
10452 | 10477 | (do
|
10453 | 10478 | (-write writer sep)
|
@@ -10491,7 +10516,7 @@ reduces them without incurring seq initialization"
|
10491 | 10516 | (declare print-map)
|
10492 | 10517 |
|
10493 | 10518 | (defn print-meta? [opts obj]
|
10494 |
| - (and (boolean (get opts :meta)) |
| 10519 | + (and (boolean (pr-opts-meta opts)) |
10495 | 10520 | (implements? IMeta obj)
|
10496 | 10521 | (not (nil? (meta obj)))))
|
10497 | 10522 |
|
@@ -10544,7 +10569,7 @@ reduces them without incurring seq initialization"
|
10544 | 10569 | (pr-sequential-writer writer pr-writer "#js [" " " "]" opts obj)
|
10545 | 10570 |
|
10546 | 10571 | (string? obj)
|
10547 |
| - (if (:readably opts) |
| 10572 | + (if (pr-opts-readably opts) |
10548 | 10573 | (-write writer (quote-string obj))
|
10549 | 10574 | (-write writer obj))
|
10550 | 10575 |
|
@@ -10643,57 +10668,61 @@ reduces them without incurring seq initialization"
|
10643 | 10668 | ([] (newline nil))
|
10644 | 10669 | ([opts]
|
10645 | 10670 | (string-print "\n")
|
10646 |
| - (when (get opts :flush-on-newline) |
| 10671 | + (when (pr-opts-fnl opts) |
10647 | 10672 | (flush))))
|
10648 | 10673 |
|
10649 | 10674 | (defn pr-str
|
10650 | 10675 | "pr to a string, returning it. Fundamental entrypoint to IPrintWithWriter."
|
10651 | 10676 | [& objs]
|
10652 |
| - (pr-str-with-opts objs (pr-opts))) |
| 10677 | + (pr-str-with-opts objs nil)) |
10653 | 10678 |
|
10654 | 10679 | (defn prn-str
|
10655 | 10680 | "Same as pr-str followed by (newline)"
|
10656 | 10681 | [& objs]
|
10657 |
| - (prn-str-with-opts objs (pr-opts))) |
| 10682 | + (prn-str-with-opts objs nil)) |
10658 | 10683 |
|
10659 | 10684 | (defn pr
|
10660 | 10685 | "Prints the object(s) using string-print. Prints the
|
10661 | 10686 | object(s), separated by spaces if there is more than one.
|
10662 | 10687 | By default, pr and prn print in a way that objects can be
|
10663 | 10688 | read by the reader"
|
10664 | 10689 | [& objs]
|
10665 |
| - (pr-with-opts objs (pr-opts))) |
| 10690 | + (pr-with-opts objs nil)) |
10666 | 10691 |
|
10667 | 10692 | (def ^{:doc
|
10668 | 10693 | "Prints the object(s) using string-print.
|
10669 | 10694 | print and println produce output for human consumption."}
|
10670 | 10695 | print
|
10671 | 10696 | (fn cljs-core-print [& objs]
|
10672 |
| - (pr-with-opts objs (assoc (pr-opts) :readably false)))) |
| 10697 | + (binding [*print-readably* false] |
| 10698 | + (pr-with-opts objs nil)))) |
10673 | 10699 |
|
10674 | 10700 | (defn print-str
|
10675 | 10701 | "print to a string, returning it"
|
10676 | 10702 | [& objs]
|
10677 |
| - (pr-str-with-opts objs (assoc (pr-opts) :readably false))) |
| 10703 | + (binding [*print-readably* false] |
| 10704 | + (pr-str-with-opts objs nil))) |
10678 | 10705 |
|
10679 | 10706 | (defn println
|
10680 | 10707 | "Same as print followed by (newline)"
|
10681 | 10708 | [& objs]
|
10682 |
| - (pr-with-opts objs (assoc (pr-opts) :readably false)) |
| 10709 | + (binding [*print-readably* false] |
| 10710 | + (pr-with-opts objs nil)) |
10683 | 10711 | (when *print-newline*
|
10684 |
| - (newline (pr-opts)))) |
| 10712 | + (newline nil))) |
10685 | 10713 |
|
10686 | 10714 | (defn println-str
|
10687 | 10715 | "println to a string, returning it"
|
10688 | 10716 | [& objs]
|
10689 |
| - (prn-str-with-opts objs (assoc (pr-opts) :readably false))) |
| 10717 | + (binding [*print-readably* false] |
| 10718 | + (prn-str-with-opts objs nil))) |
10690 | 10719 |
|
10691 | 10720 | (defn prn
|
10692 | 10721 | "Same as pr followed by (newline)."
|
10693 | 10722 | [& objs]
|
10694 |
| - (pr-with-opts objs (pr-opts)) |
| 10723 | + (pr-with-opts objs nil) |
10695 | 10724 | (when *print-newline*
|
10696 |
| - (newline (pr-opts)))) |
| 10725 | + (newline nil))) |
10697 | 10726 |
|
10698 | 10727 | (defn- strip-ns
|
10699 | 10728 | [named]
|
|
0 commit comments