X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/fd897522d43b64650abd089ecb1b3a5569fbbd49..8f4300468bffc68d0ff04aa168333290d4870358:/lispref/streams.texi diff --git a/lispref/streams.texi b/lispref/streams.texi index efd905c9b2..599416fe67 100644 --- a/lispref/streams.texi +++ b/lispref/streams.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999 -@c Free Software Foundation, Inc. +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../info/streams @node Read and Print, Minibuffers, Debugging, Top @@ -125,7 +125,13 @@ came from''. In this case, it makes no difference what value @code{t} used as a stream means that the input is read from the minibuffer. In fact, the minibuffer is invoked once and the text given by the user is made into a string that is then used as the -input stream. +input stream. If Emacs is running in batch mode, standard input is used +instead of the minibuffer. For example, +@example +(message "%s" (read t)) +@end example +will read a Lisp expression from standard input and print the result +to standard output. @item @code{nil} @cindex @code{nil} input stream @@ -355,7 +361,9 @@ The output characters are inserted into the buffer that @var{marker} points into, at the marker position. The marker position advances as characters are inserted. The value of point in the buffer has no effect on printing when the stream is a marker, and this kind of printing -does not move point. +does not move point (except that if the marker points at or before the +position of point, point advances with the surrounding text, as +usual). @item @var{function} @cindex function output stream @@ -483,7 +491,7 @@ in reverse order. @group last-output - @result{} (10 34 116 117 112 116 117 111 32 101 104 + @result{} (10 34 116 117 112 116 117 111 32 101 104 116 32 115 105 32 115 105 104 84 34 10) @end group @end example @@ -560,13 +568,12 @@ characters are used. @code{print} returns @var{object}. For example: (progn (print 'The\ cat\ in) (print "the hat") (print " came back")) - @print{} + @print{} @print{} The\ cat\ in - @print{} + @print{} @print{} "the hat" - @print{} + @print{} @print{} " came back" - @print{} @result{} " came back" @end group @end example @@ -580,8 +587,8 @@ This function outputs the printed representation of @var{object} to @example @group -(progn (prin1 'The\ cat\ in) - (prin1 "the hat") +(progn (prin1 'The\ cat\ in) + (prin1 "the hat") (prin1 " came back")) @print{} The\ cat\ in"the hat"" came back" @result{} " came back" @@ -679,6 +686,13 @@ The value of this variable is the default output stream---the stream that print functions use when the @var{stream} argument is @code{nil}. @end defvar +@defvar print-quoted +If this is non-@code{nil}, that means to print quoted forms using +abbreviated reader syntax. @code{(quote foo)} prints as @code{'foo}, +@code{(function foo)} as @code{#'foo}, and backquoted forms print +using modern backquote syntax. +@end defvar + @defvar print-escape-newlines @cindex @samp{\n} in print @cindex escape characters @@ -715,24 +729,24 @@ In the second expression, the local binding of @end defvar @defvar print-escape-nonascii -If this variable is non-@code{nil}, then unibyte non-@sc{ascii} +If this variable is non-@code{nil}, then unibyte non-@acronym{ASCII} characters in strings are unconditionally printed as backslash sequences by the print functions @code{prin1} and @code{print} that print with quoting. -Those functions also use backslash sequences for unibyte non-@sc{ascii} +Those functions also use backslash sequences for unibyte non-@acronym{ASCII} characters, regardless of the value of this variable, when the output stream is a multibyte buffer or a marker pointing into one. @end defvar @defvar print-escape-multibyte -If this variable is non-@code{nil}, then multibyte non-@sc{ascii} +If this variable is non-@code{nil}, then multibyte non-@acronym{ASCII} characters in strings are unconditionally printed as backslash sequences by the print functions @code{prin1} and @code{print} that print with quoting. Those functions also use backslash sequences for multibyte -non-@sc{ascii} characters, regardless of the value of this variable, +non-@acronym{ASCII} characters, regardless of the value of this variable, when the output stream is a unibyte buffer or a marker pointing into one. @end defvar @@ -765,12 +779,20 @@ exceeding this limit is abbreviated with an ellipsis. A value of @code{nil} (which is the default) means no limit. @end defvar - These variables are used for detecting and reporting circular +@defopt eval-expression-print-length +@defoptx eval-expression-print-level +These are the values for @code{print-length} and @code{print-level} +used by @code{eval-expression}, and thus, indirectly, by many +interactive evaluation commands (@pxref{Lisp Eval,, Evaluating +Emacs-Lisp Expressions, emacs, The GNU Emacs Manual}). +@end defopt + + These variables are used for detecting and reporting circular and shared structure---but they are only defined in Emacs 21. @tindex print-circle @defvar print-circle -If non-@code{nil}, this variable enables detection of circular +If non-@code{nil}, this variable enables detection of circular and shared structure in printing. @end defvar @@ -781,3 +803,34 @@ If non-@code{nil}, this variable enables detection of uninterned symbols uninterned symbols print with the prefix @samp{#:}, which tells the Lisp reader to produce an uninterned symbol. @end defvar + +@defvar print-continuous-numbering +If non-@code{nil}, that means number continuously across print calls. +This affects the numbers printed for @samp{#@var{n}=} labels and +@samp{#@var{m}#} references. + +Don't set this variable with @code{setq}; you should only bind it +temporarily to @code{t} with @code{let}. When you do that, you should +also bind @code{print-number-table} to @code{nil}. +@end defvar + +@defvar print-number-table +This variable holds a vector used internally by printing to implement +the @code{print-circle} feature. You should not use it except +to bind it to @code{nil} when you bind @code{print-continuous-numbering}. +@end defvar + +@defvar float-output-format +This variable specifies how to print floating point numbers. Its +default value is @code{nil}, meaning use the shortest output +that represents the number without losing information. + +To control output format more precisely, you can put a string in this +variable. The string should hold a @samp{%}-specification to be used +in the C function @code{sprintf}. For further restrictions on what +you can use, see the variable's documentation string. +@end defvar + +@ignore + arch-tag: 07636b8c-c4e3-4735-9e06-2e864320b434 +@end ignore