The value of this variable is the default output stream—the stream that print functions use when the stream argument is
nil.
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
prin1andprinc. Here is an example usingprin1:(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-newlinesis in effect during the call toprin1, but not during the printing of the result.
If non-
nil, then all objects will be printed in a readable form. If an object has no readable representation, then an error is signalled. Whenprint-readablyis 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.
If non-
nil, then uninterned symbols will be printed specially. Uninterned symbols are those which are not present inobarray, that is, those which were made withmake-symbolor by callinginternwith a second argument.When
print-gensymis 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,readwill 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
printfin 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’.
- Use ‘e’ for exponential notation ‘dig.digitseexpt’.
- Use ‘f’ for decimal point notation ‘DIGITS.DIGITS’.
- Use ‘g’ to choose the shorter of those two formats for the number at hand.
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
nilmeans 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.