@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/objects.info
@c Copyright (C) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
@c See the file lispref.texi for copying conditions.
@setfilename ../../info/objects.info
-@node Lisp Data Types, Numbers, Introduction, Top
+@node Lisp Data Types, Numbers, Packaging, Top
@cindex char-int confoundance disease
In XEmacs version 19, and in all versions of FSF GNU Emacs, a
@cindex char-int confoundance disease
In XEmacs version 19, and in all versions of FSF GNU Emacs, a
vintage-1980 Lisps; modern versions of Lisp consider this equivalence
a bad idea, and have separate character types. In XEmacs version 20,
the modern convention is followed, and characters are their own
vintage-1980 Lisps; modern versions of Lisp consider this equivalence
a bad idea, and have separate character types. In XEmacs version 20,
the modern convention is followed, and characters are their own
i.e. Asian-language, support to be correctly implemented.)
Even in XEmacs version 20, remnants of the equivalence between
i.e. Asian-language, support to be correctly implemented.)
Even in XEmacs version 20, remnants of the equivalence between
are integers are the same. Byte code compiled under any version 19
Emacs will have all such functions mapped to their @code{old-} equivalents
when the byte code is read into XEmacs 20. This is to preserve
are integers are the same. Byte code compiled under any version 19
Emacs will have all such functions mapped to their @code{old-} equivalents
when the byte code is read into XEmacs 20. This is to preserve
integer during byte-compilation, and thus there is no other way to preserve
byte-code compatibility even if the code has specifically been written
with the distinction between characters and integers in mind.
Every character has an equivalent integer, called the @dfn{character
code}. For example, the character @kbd{A} is represented as the
integer during byte-compilation, and thus there is no other way to preserve
byte-code compatibility even if the code has specifically been written
with the distinction between characters and integers in mind.
Every character has an equivalent integer, called the @dfn{character
code}. For example, the character @kbd{A} is represented as the
-@w{integer 65}, following the standard @sc{ASCII} representation of
-characters. If XEmacs was not compiled with @sc{MULE} support, the
-range of this integer will always be 0 to 255 -- eight bits, or one
+@w{integer 65}, following the standard @sc{ascii} representation of
+characters. If XEmacs was not compiled with @sc{mule} support, the
+range of this integer will always be 0 to 255---eight bits, or one
byte. (Integers outside this range are accepted but silently truncated;
however, you should most decidedly @emph{not} rely on this, because it
byte. (Integers outside this range are accepted but silently truncated;
however, you should most decidedly @emph{not} rely on this, because it
support is present, the range of character codes is much
larger. (Currently, 19 bits are used.)
FSF GNU Emacs uses kludgy character codes above 255 to represent
support is present, the range of character codes is much
larger. (Currently, 19 bits are used.)
FSF GNU Emacs uses kludgy character codes above 255 to represent
Individual characters are not often used in programs. It is far more
common to work with @emph{strings}, which are sequences composed of
Individual characters are not often used in programs. It is far more
common to work with @emph{strings}, which are sequences composed of
syntax in your programs. It is a holdover of yet another confoundance
disease from earlier Emacsen. (This was used to represent keyboard input
with the @key{META} key set, thus the @samp{M}; however, it conflicts
syntax in your programs. It is a holdover of yet another confoundance
disease from earlier Emacsen. (This was used to represent keyboard input
with the @key{META} key set, thus the @samp{M}; however, it conflicts
@ignore @c None of this crap applies to XEmacs.
For use in strings and buffers, you are limited to the control
@ignore @c None of this crap applies to XEmacs.
For use in strings and buffers, you are limited to the control
followed by a backslash and the character code in octal (up to three
octal digits); thus, @samp{?\101} for the character @kbd{A},
@samp{?\001} for the character @kbd{C-a}, and @code{?\002} for the
followed by a backslash and the character code in octal (up to three
octal digits); thus, @samp{?\101} for the character @kbd{A},
@samp{?\001} for the character @kbd{C-a}, and @code{?\002} for the
A string can hold extents and properties of the text it contains, in
addition to the characters themselves. This enables programs that copy
text between strings and buffers to preserve the extents and properties
A string can hold extents and properties of the text it contains, in
addition to the characters themselves. This enables programs that copy
text between strings and buffers to preserve the extents and properties
Note that FSF GNU Emacs has a special read and print syntax for
strings with text properties, but XEmacs does not currently implement
Note that FSF GNU Emacs has a special read and print syntax for
strings with text properties, but XEmacs does not currently implement
than one if XEmacs is being run on a multi-headed display (e.g. an
X server with attached color and mono screens) or if XEmacs is
simultaneously driving frames attached to different consoles, e.g.
than one if XEmacs is being run on a multi-headed display (e.g. an
X server with attached color and mono screens) or if XEmacs is
simultaneously driving frames attached to different consoles, e.g.
Devices do not have a read syntax. They print in hash notation,
giving the device's type, connection name, and a unique number assigned
Devices do not have a read syntax. They print in hash notation,
giving the device's type, connection name, and a unique number assigned
(i.e. displays on which frames exist) are connected. Normally, there is
only one console object, but there may be more than one if XEmacs is
simultaneously driving frames attached to different X servers and/or
(i.e. displays on which frames exist) are connected. Normally, there is
only one console object, but there may be more than one if XEmacs is
simultaneously driving frames attached to different X servers and/or
-@sc{TTY} connections. (XEmacs is capable of driving multiple X and
-@sc{TTY} connections at the same time, and provides a robust mechanism
+@sc{tty} connections. (XEmacs is capable of driving multiple X and
+@sc{tty} connections at the same time, and provides a robust mechanism
for handling the differing display capabilities of such heterogeneous
environments. A buffer with embedded glyphs and multiple fonts and
colors, for example, will display reasonably if it simultaneously
appears on a frame on a color X display, a frame on a mono X display,
for handling the differing display capabilities of such heterogeneous
environments. A buffer with embedded glyphs and multiple fonts and
colors, for example, will display reasonably if it simultaneously
appears on a frame on a color X display, a frame on a mono X display,
Consoles do not have a read syntax. They print in hash notation,
giving the console's type, connection name, and a unique number assigned
Consoles do not have a read syntax. They print in hash notation,
giving the console's type, connection name, and a unique number assigned
This function exists under XEmacs 20 and is exactly like @code{eq}
except that it suffers from the char-int confoundance disease.
In other words, it returns @code{t} if given a character and the
This function exists under XEmacs 20 and is exactly like @code{eq}
except that it suffers from the char-int confoundance disease.
In other words, it returns @code{t} if given a character and the