diff lispref/objects.texi @ 12098:a6eb5f12b0f3

*** empty log message ***
author Karl Heuer <kwzh@gnu.org>
date Tue, 06 Jun 1995 19:21:15 +0000
parents 73dc8205d259
children 586e3ea81792
line wrap: on
line diff
--- a/lispref/objects.texi	Tue Jun 06 03:11:10 1995 +0000
+++ b/lispref/objects.texi	Tue Jun 06 19:21:15 1995 +0000
@@ -115,6 +115,11 @@
 part of the Lisp objects which represent the program within the Lisp
 system.
 
+  The @samp{#@@@var{count}} construct, which skips the next @var{count}
+characters, is useful for program-generated comments containing binary
+data.  The Emacs Lisp byte compiler uses this in its output files
+(@pxref{Byte Compilation}).  It isn't meant for source files, however.
+
   @xref{Comment Tips}, for conventions for formatting comments.
 
 @node Programming Types
@@ -305,17 +310,30 @@
 characters that exist in @sc{ASCII}, but for keyboard input purposes,
 you can turn any character into a control character with @samp{C-}.  The
 character codes for these non-@sc{ASCII} control characters include the
-2**22 bit as well as the code for the corresponding non-control
+@iftex
+$2^{26}$
+@end iftex
+@ifinfo
+2**26
+@end ifinfo
+bit as well as the code for the corresponding non-control
 character.  Ordinary terminals have no way of generating non-@sc{ASCII}
 control characters, but you can generate them straightforwardly using an
 X terminal.
 
-  You can think of the @key{DEL} character as @kbd{Control-?}:
+  For historical reasons, Emacs treats the @key{DEL} character as
+the control equivalent of @kbd{?}:
 
 @example
 ?\^? @result{} 127     ?\C-? @result{} 127
 @end example
 
+@noindent
+As a result, it is currently not possible to represent the character
+@kbd{Control-?}, which is a meaningful input character under X.  It is
+not easy to change this as various Lisp files refer to @key{DEL} in this
+way.
+
   For representing control characters to be found in files or strings,
 we recommend the @samp{^} syntax; for control characters in keyboard
 input, we prefer the @samp{C-} syntax.  This does not affect the meaning
@@ -324,11 +342,24 @@
 @cindex meta characters
   A @dfn{meta character} is a character typed with the @key{META}
 modifier key.  The integer that represents such a character has the
-2**23 bit set (which on most machines makes it a negative number).  We
+@iftex
+$2^{27}$
+@end iftex
+@ifinfo
+2**27
+@end ifinfo
+bit set (which on most machines makes it a negative number).  We
 use high bits for this and other modifiers to make possible a wide range
 of basic character codes.
 
-  In a string, the 2**7 bit indicates a meta character, so the meta
+  In a string, the
+@iftex
+$2^{7}$
+@end iftex
+@ifinfo
+2**7
+@end ifinfo
+bit indicates a meta character, so the meta
 characters that can fit in a string have codes in the range from 128 to
 255, and are the meta versions of the ordinary @sc{ASCII} characters.
 (In Emacs versions 18 and older, this convention was used for characters
@@ -343,11 +374,17 @@
 
   The case of an ordinary letter is indicated by its character code as
 part of @sc{ASCII}, but @sc{ASCII} has no way to represent whether a
-control character is upper case or lower case.  Emacs uses the 2**21 bit
-to indicate that the shift key was used for typing a control character.
-This distinction is possible only when you use X terminals or other
-special terminals; ordinary terminals do not indicate the distinction to
-the computer in any way.
+control character is upper case or lower case.  Emacs uses the
+@iftex
+$2^{25}$
+@end iftex
+@ifinfo
+2**25
+@end ifinfo
+bit to indicate that the shift key was used for typing a control
+character.  This distinction is possible only when you use X terminals
+or other special terminals; ordinary terminals do not indicate the
+distinction to the computer in any way.
 
 @cindex hyper characters
 @cindex super characters
@@ -355,8 +392,15 @@
   The X Window System defines three other modifier bits that can be set
 in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}.  The syntaxes
 for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}.  Thus,
-@samp{?\H-\M-\A-x} represents @kbd{Alt-Hyper-Meta-x}.  Numerically, the
-bit values are 2**18 for alt, 2**19 for super and 2**20 for hyper.
+@samp{?\H-\M-\A-x} represents @kbd{Alt-Hyper-Meta-x}.
+@iftex
+Numerically, the
+bit values are $2^{22}$ for alt, $2^{23}$ for super and $2^{24}$ for hyper.
+@end iftex
+@ifinfo
+Numerically, the
+bit values are 2**22 for alt, 2**23 for super and 2**24 for hyper.
+@end ifinfo
 
 @cindex @samp{?} in character constant
 @cindex question mark in character constant
@@ -423,14 +467,13 @@
 @cindex CL note---case of letters
 @quotation
 @b{Common Lisp note:} In Common Lisp, lower case letters are always
-``folded'' to upper case, unless they are explicitly escaped.  This is
-in contrast to Emacs Lisp, in which upper case and lower case letters
-are distinct.
+``folded'' to upper case, unless they are explicitly escaped.  In Emacs
+Lisp, upper case and lower case letters are distinct.
 @end quotation
 
   Here are several examples of symbol names.  Note that the @samp{+} in
 the fifth example is escaped to prevent it from being read as a number.
-This is not necessary in the last example because the rest of the name
+This is not necessary in the sixth example because the rest of the name
 makes it invalid as a number.
 
 @example
@@ -762,7 +805,14 @@
 characters.)
 
   If you use the @samp{\M-} syntax to indicate a meta character in a
-string constant, this sets the 2**7 bit of the character in the string.
+string constant, this sets the
+@iftex
+$2^{7}$
+@end iftex
+@ifinfo
+2**7
+@end ifinfo
+bit of the character in the string.
 This is not the same representation that the meta modifier has in a
 character on its own (not inside a string).  @xref{Character Type}.
 
@@ -917,8 +967,9 @@
 function to be called.  @xref{Byte Compilation}, for information about
 the byte compiler.
 
-The printed representation for a byte-code function object is like that
-for a vector, with an additional @samp{#} before the opening @samp{[}.
+The printed representation and read syntax for a byte-code function
+object is like that for a vector, with an additional @samp{#} before the
+opening @samp{[}.
 
 @node Autoload Type
 @subsection Autoload Type
@@ -998,6 +1049,12 @@
 
 @item
 a local variable binding list (@pxref{Buffer-Local Variables}).
+
+@item
+a list of overlays (@pxref{Overlays}).
+
+@item
+text properties for the text in the buffer (@pxref{Text Properties}).
 @end itemize
 
 @noindent
@@ -1006,7 +1063,10 @@
 behavior of programs in different buffers, without actually changing the
 programs.
 
-  Buffers have no read syntax.  They print in hash notation with the
+  A buffer may be @dfn{indirect}, which means it shares the text
+of another buffer.  @xref{Indirect Buffers}.
+
+  Buffers have no read syntax.  They print in hash notation, showing the
 buffer name.
 
 @example
@@ -1187,7 +1247,7 @@
 
   A @dfn{display table} specifies how to display each character code.
 Each buffer and each window can have its own display table.  A display
-table is actually a vector of length 261.  @xref{Display Tables}.
+table is actually a vector of length 262.  @xref{Display Tables}.
 
 @node Overlay Type
 @subsection Overlay Type
@@ -1196,11 +1256,11 @@
 appearance of a part of a buffer.  It contains markers delimiting a
 range of the buffer, plus a property list (a list whose elements are
 alternating property names and values).  Overlays are used to present
-parts of the buffer temporarily in a different display style.
+parts of the buffer temporarily in a different display style.  They have
+no read syntax, and print in hash notation, giving the buffer name and
+range of positions.
 
-  @xref{Overlays}, for how to create and use overlays.  They have no
-read syntax, and print in hash notation, giving the buffer name and
-range of positions.
+  @xref{Overlays}, for how to create and use overlays.
 
 @node Type Predicates
 @section Type Predicates
@@ -1521,6 +1581,9 @@
      @result{} nil
 @end group
 @end example
+
+Two distinct buffers are never @code{equal}, even if their contents
+are the same.
 @end defun
 
   The test for equality is implemented recursively, and circular lists may