The value of this variable is the default output stream—the stream
that print functions use when the stream argument is
If this variable is non-
nil, then newline characters in strings
are printed as ‘\n’ and formfeeds are printed as ‘\f’.
Normally these characters are printed as actual newlines and formfeeds.
This variable affects the print functions
Here is an example using
(prin1 "a\nb") -| "a -| b" ⇒ "a b"
(let ((print-escape-newlines t)) (prin1 "a\nb")) -| "a\nb" ⇒ "a b"
In the second expression, the local binding of
print-escape-newlines is in effect during the call to
prin1, but not during the printing of the result.
nil, then all objects will be printed in a readable form.
If an object has no readable representation, then an error is signalled.
print-readably is true, compiled-function objects will be
written in ‘#[...]’ form instead of in ‘#<compiled-function
[...]>’ form, and two-element lists of the form ‘(quote object)’
will be written as the equivalent ‘'object’. Do not set
this variable; bind it instead.
The value of this variable is the maximum number of elements of a list that will be printed. If a list being printed has more than this many elements, it is abbreviated with an ellipsis.
If the value is
nil (the default), then there is no limit.
(setq print-length 2) ⇒ 2
(print '(1 2 3 4 5)) -| (1 2 ...) ⇒ (1 2 ...)
The value of this variable is the maximum depth of nesting of
parentheses and brackets when printed. Any list or vector at a depth
exceeding this limit is abbreviated with an ellipsis. A value of
nil (which is the default) means no limit.
This variable exists in version 19 and later versions.
The value of this variable is the maximum number of characters of a string that will be printed. If a string being printed has more than this many characters, it is abbreviated with an ellipsis.
nil, then uninterned symbols will be printed specially.
Uninterned symbols are those which are not present in
that is, those which were made with
make-symbol or by calling
intern with a second argument.
print-gensym is true, such symbols will be preceded by
‘#:’, which causes the reader to create a new symbol instead of
interning and returning an existing one. Beware: The ‘#:’ syntax
creates a new symbol each time it is seen, so if you print an object
which contains two pointers to the same uninterned symbol,
will not duplicate that structure.
Also, since SXEmacs has no real notion of packages, there is no way for the printer to distinguish between symbols interned in no obarray, and symbols interned in an alternate obarray.
This variable holds the format descriptor string that Lisp uses to print
floats. This is a ‘%’-spec like those accepted by
C, but with some restrictions. It must start with the two characters
‘%.’. After that comes an integer precision specification, and
then a letter which controls the format. The letters allowed are
‘e’, ‘f’ and ‘g’.
The precision in any of these cases is the number of digits following the decimal point. With ‘f’, a precision of 0 means to omit the decimal point. 0 is not allowed with ‘f’ or ‘g’.
A value of
nil means to use ‘%.16g’.
Regardless of the value of
float-output-format, a floating point
number will never be printed in such a way that it is ambiguous with an
integer; that is, a floating-point number will always be printed with a
decimal point and/or an exponent, even if the digits following the
decimal point are all zero. This is to preserve read-equivalence.