diff lispref/streams.texi @ 25751:467b88fab665

*** empty log message ***
author Richard M. Stallman <rms@gnu.org>
date Fri, 17 Sep 1999 06:59:04 +0000
parents 6323b7754a76
children 6a17c48b52ef
line wrap: on
line diff
--- a/lispref/streams.texi	Fri Sep 17 06:53:20 1999 +0000
+++ b/lispref/streams.texi	Fri Sep 17 06:59:04 1999 +0000
@@ -716,25 +716,25 @@
 
 @tindex print-escape-nonascii
 @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-@sc{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-@sc{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
 
 @tindex print-escape-multibyte
 @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-@sc{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-@sc{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
@@ -766,3 +766,48 @@
 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 
+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 
+and shared structure in printing.
+@end defvar
+
+@tindex print-gensym
+@defvar print-gensym
+If non-@code{nil}, this variable enables detection of uninterned symbols
+(@pxref{Creating Symbols}) in printing.  When this is enabled,
+uninterned symbols print with the prefix @samp{#:}, which tells the Lisp
+reader to produce an uninterned symbol.
+@end defvar
+
+@tindex print-continuous-numbering
+@defvar print-continuous-numbering
+To print several objects with shared structure in common, you should
+bind @code{print-continuous-numbering} to @code{t} around them all.
+That tells @code{print} not to reinitialize @code{print-number-table}
+each time.
+@end defvar
+
+@tindex print-number-table
+@defvar print-number-table
+This variable holds the table used as the basis of outputting
+@samp{#@var{n}=} and @samp{#@var{n}#} constructs for circular and shared
+structure.  When you want to print several objects with shared structure
+in common, you should bind @code{print-number-table} to @code{nil}
+around them all.
+@end defvar
+
+  Here is an example of printing two objects with a common
+set of shared substructure:
+
+@example
+(let ((print-circle t)
+      (print-continuous-numbering t)
+      print-number-table)
+  (print1 x)
+  (print1 y))
+@end example