comparison man/lispref/objects.texi @ 5791:9fae6227ede5

Silence texinfo 5.2 warnings, primarily by adding next, prev, and up pointers to all nodes. See xemacs-patches message with ID <5315f7bf.sHpFD7lXYR05GH6E%james@xemacs.org>.
author Jerry James <james@xemacs.org>
date Thu, 27 Mar 2014 08:59:03 -0600
parents d967d96ca043
children
comparison
equal deleted inserted replaced
5790:dcf9067f26bb 5791:9fae6227ede5
58 * Window-System Types:: Types specific to windowing systems. 58 * Window-System Types:: Types specific to windowing systems.
59 * Type Predicates:: Tests related to types. 59 * Type Predicates:: Tests related to types.
60 * Equality Predicates:: Tests of equality between any two objects. 60 * Equality Predicates:: Tests of equality between any two objects.
61 @end menu 61 @end menu
62 62
63 @node Printed Representation 63 @node Printed Representation, Comments, Lisp Data Types, Lisp Data Types
64 @section Printed Representation and Read Syntax 64 @section Printed Representation and Read Syntax
65 @cindex printed representation 65 @cindex printed representation
66 @cindex read syntax 66 @cindex read syntax
67 67
68 The @dfn{printed representation} of an object is the format of the 68 The @dfn{printed representation} of an object is the format of the
102 evaluation and reading are separate activities. Reading returns the 102 evaluation and reading are separate activities. Reading returns the
103 Lisp object represented by the text that is read; the object may or may 103 Lisp object represented by the text that is read; the object may or may
104 not be evaluated later. @xref{Input Functions}, for a description of 104 not be evaluated later. @xref{Input Functions}, for a description of
105 @code{read}, the basic function for reading objects. 105 @code{read}, the basic function for reading objects.
106 106
107 @node Comments 107 @node Comments, Primitive Types, Printed Representation, Lisp Data Types
108 @section Comments 108 @section Comments
109 @cindex comments 109 @cindex comments
110 @cindex @samp{;} in comment 110 @cindex @samp{;} in comment
111 111
112 A @dfn{comment} is text that is written in a program only for the sake 112 A @dfn{comment} is text that is written in a program only for the sake
122 data. The XEmacs Lisp byte compiler uses this in its output files 122 data. The XEmacs Lisp byte compiler uses this in its output files
123 (@pxref{Byte Compilation}). It isn't meant for source files, however. 123 (@pxref{Byte Compilation}). It isn't meant for source files, however.
124 124
125 @xref{Comment Tips}, for conventions for formatting comments. 125 @xref{Comment Tips}, for conventions for formatting comments.
126 126
127 @node Primitive Types 127 @node Primitive Types, Programming Types, Comments, Lisp Data Types
128 @section Primitive Types 128 @section Primitive Types
129 @cindex primitive types 129 @cindex primitive types
130 130
131 For reference, here is a list of all the primitive types that may 131 For reference, here is a list of all the primitive types that may
132 exist in XEmacs. Note that some of these types may not exist 132 exist in XEmacs. Note that some of these types may not exist
250 symbol-value-varalias 250 symbol-value-varalias
251 @item 251 @item
252 toolbar-data 252 toolbar-data
253 @end itemize 253 @end itemize
254 254
255 @node Programming Types 255 @node Programming Types, Editing Types, Primitive Types, Lisp Data Types
256 @section Programming Types 256 @section Programming Types
257 @cindex programming types 257 @cindex programming types
258 258
259 There are two general categories of types in XEmacs Lisp: those having 259 There are two general categories of types in XEmacs Lisp: those having
260 to do with Lisp programming, and those having to do with editing. The 260 to do with Lisp programming, and those having to do with editing. The
285 * Hash Table Type:: A fast mapping between Lisp objects. 285 * Hash Table Type:: A fast mapping between Lisp objects.
286 * Range Table Type:: A mapping from ranges of integers to Lisp objects. 286 * Range Table Type:: A mapping from ranges of integers to Lisp objects.
287 * Weak List Type:: A list with special garbage-collection properties. 287 * Weak List Type:: A list with special garbage-collection properties.
288 @end menu 288 @end menu
289 289
290 @node Integer Type 290 @node Integer Type, Floating Point Type, Programming Types, Programming Types
291 @subsection Integer Type 291 @subsection Integer Type
292 292
293 In XEmacs Lisp, integers can be fixnums (that is, fixed-precision 293 In XEmacs Lisp, integers can be fixnums (that is, fixed-precision
294 integers) or bignums (arbitrary-precision integers), if compile-time 294 integers) or bignums (arbitrary-precision integers), if compile-time
295 configuration supports this. The read syntax for the two types is the 295 configuration supports this. The read syntax for the two types is the
319 @end group 319 @end group
320 @end example 320 @end example
321 321
322 @xref{Numbers}, for more information. 322 @xref{Numbers}, for more information.
323 323
324 @node Floating Point Type 324 @node Floating Point Type, Character Type, Integer Type, Programming Types
325 @subsection Floating Point Type 325 @subsection Floating Point Type
326 326
327 XEmacs supports floating point numbers. The precise range of floating 327 XEmacs supports floating point numbers. The precise range of floating
328 point numbers is machine-specific. 328 point numbers is machine-specific.
329 329
333 @samp{1.5e3}, and @samp{.15e4} are five ways of writing a floating point 333 @samp{1.5e3}, and @samp{.15e4} are five ways of writing a floating point
334 number whose value is 1500. They are all equivalent. 334 number whose value is 1500. They are all equivalent.
335 335
336 @xref{Numbers}, for more information. 336 @xref{Numbers}, for more information.
337 337
338 @node Character Type 338 @node Character Type, Symbol Type, Floating Point Type, Programming Types
339 @subsection Character Type 339 @subsection Character Type
340 @cindex @sc{ascii} character codes 340 @cindex @sc{ascii} character codes
341 @cindex char-int confoundance disease 341 @cindex char-int confoundance disease
342 342
343 In XEmacs version 19, and in all versions of FSF GNU Emacs, a 343 In XEmacs version 19, and in all versions of FSF GNU Emacs, a
671 Lisp code. Also add a backslash before whitespace characters such as 671 Lisp code. Also add a backslash before whitespace characters such as
672 space, tab, newline and formfeed. However, it is cleaner to use one of 672 space, tab, newline and formfeed. However, it is cleaner to use one of
673 the easily readable escape sequences, such as @samp{\t}, instead of an 673 the easily readable escape sequences, such as @samp{\t}, instead of an
674 actual whitespace character such as a tab. 674 actual whitespace character such as a tab.
675 675
676 @node Symbol Type 676 @node Symbol Type, Sequence Type, Character Type, Programming Types
677 @subsection Symbol Type 677 @subsection Symbol Type
678 678
679 A @dfn{symbol} in XEmacs Lisp is an object with a name. The symbol 679 A @dfn{symbol} in XEmacs Lisp is an object with a name. The symbol
680 name serves as the printed representation of the symbol. In ordinary 680 name serves as the printed representation of the symbol. In ordinary
681 use, the name is unique---no two symbols have the same name. 681 use, the name is unique---no two symbols have the same name.
738 +-*/_~!@@$%^&=:<>@{@} ; @r{A symbol named @samp{+-*/_~!@@$%^&=:<>@{@}}.} 738 +-*/_~!@@$%^&=:<>@{@} ; @r{A symbol named @samp{+-*/_~!@@$%^&=:<>@{@}}.}
739 ; @r{These characters need not be escaped.} 739 ; @r{These characters need not be escaped.}
740 @end group 740 @end group
741 @end example 741 @end example
742 742
743 @node Sequence Type 743 @node Sequence Type, Cons Cell Type, Symbol Type, Programming Types
744 @subsection Sequence Types 744 @subsection Sequence Types
745 745
746 A @dfn{sequence} is a Lisp object that represents an ordered set of 746 A @dfn{sequence} is a Lisp object that represents an ordered set of
747 elements. There are two kinds of sequence in XEmacs Lisp, lists and 747 elements. There are two kinds of sequence in XEmacs Lisp, lists and
748 arrays. Thus, an object of type list or of type array is also 748 arrays. Thus, an object of type list or of type array is also
768 always created anew upon reading. If you read the read syntax for a 768 always created anew upon reading. If you read the read syntax for a
769 sequence twice, you get two sequences with equal contents. There is one 769 sequence twice, you get two sequences with equal contents. There is one
770 exception: the empty list @code{()} always stands for the same object, 770 exception: the empty list @code{()} always stands for the same object,
771 @code{nil}. 771 @code{nil}.
772 772
773 @node Cons Cell Type 773 @node Cons Cell Type, Array Type, Sequence Type, Programming Types
774 @subsection Cons Cell and List Types 774 @subsection Cons Cell and List Types
775 @cindex address field of register 775 @cindex address field of register
776 @cindex decrement field of register 776 @cindex decrement field of register
777 777
778 A @dfn{cons cell} is an object comprising two pointers named the 778 A @dfn{cons cell} is an object comprising two pointers named the
888 @menu 888 @menu
889 * Dotted Pair Notation:: An alternative syntax for lists. 889 * Dotted Pair Notation:: An alternative syntax for lists.
890 * Association List Type:: A specially constructed list. 890 * Association List Type:: A specially constructed list.
891 @end menu 891 @end menu
892 892
893 @node Dotted Pair Notation 893 @node Dotted Pair Notation, Association List Type, Cons Cell Type, Cons Cell Type
894 @subsubsection Dotted Pair Notation 894 @subsubsection Dotted Pair Notation
895 @cindex dotted pair notation 895 @cindex dotted pair notation
896 @cindex @samp{.} in lists 896 @cindex @samp{.} in lists
897 897
898 @dfn{Dotted pair notation} is an alternative syntax for cons cells 898 @dfn{Dotted pair notation} is an alternative syntax for cons cells
965 --> rose --> violet --> buttercup 965 --> rose --> violet --> buttercup
966 @end group 966 @end group
967 @end example 967 @end example
968 @end ifinfo 968 @end ifinfo
969 969
970 @node Association List Type 970 @node Association List Type, , Dotted Pair Notation, Cons Cell Type
971 @subsubsection Association List Type 971 @subsubsection Association List Type
972 972
973 An @dfn{association list} or @dfn{alist} is a specially-constructed 973 An @dfn{association list} or @dfn{alist} is a specially-constructed
974 list whose elements are cons cells. In each element, the @sc{car} is 974 list whose elements are cons cells. In each element, the @sc{car} is
975 considered a @dfn{key}, and the @sc{cdr} is considered an 975 considered a @dfn{key}, and the @sc{cdr} is considered an
990 first element, @code{rose} is the key and @code{red} is the value. 990 first element, @code{rose} is the key and @code{red} is the value.
991 991
992 @xref{Association Lists}, for a further explanation of alists and for 992 @xref{Association Lists}, for a further explanation of alists and for
993 functions that work on alists. 993 functions that work on alists.
994 994
995 @node Array Type 995 @node Array Type, String Type, Cons Cell Type, Programming Types
996 @subsection Array Type 996 @subsection Array Type
997 997
998 An @dfn{array} is composed of an arbitrary number of slots for 998 An @dfn{array} is composed of an arbitrary number of slots for
999 referring to other Lisp objects, arranged in a contiguous block of 999 referring to other Lisp objects, arranged in a contiguous block of
1000 memory. Accessing any element of an array takes the same amount of 1000 memory. Accessing any element of an array takes the same amount of
1019 indices 0, 1, 2, @w{and 3}. 1019 indices 0, 1, 2, @w{and 3}.
1020 1020
1021 The array type is contained in the sequence type and contains the 1021 The array type is contained in the sequence type and contains the
1022 string type, the vector type, and the bit vector type. 1022 string type, the vector type, and the bit vector type.
1023 1023
1024 @node String Type 1024 @node String Type, Vector Type, Array Type, Programming Types
1025 @subsection String Type 1025 @subsection String Type
1026 1026
1027 A @dfn{string} is an array of characters. Strings are used for many 1027 A @dfn{string} is an array of characters. Strings are used for many
1028 purposes in XEmacs, as can be expected in a text editor; for example, as 1028 purposes in XEmacs, as can be expected in a text editor; for example, as
1029 the names of Lisp symbols, as messages for the user, and to represent 1029 the names of Lisp symbols, as messages for the user, and to represent
1132 that range. 1132 that range.
1133 @end ignore 1133 @end ignore
1134 1134
1135 @xref{Strings and Characters}, for functions that work on strings. 1135 @xref{Strings and Characters}, for functions that work on strings.
1136 1136
1137 @node Vector Type 1137 @node Vector Type, Bit Vector Type, String Type, Programming Types
1138 @subsection Vector Type 1138 @subsection Vector Type
1139 1139
1140 A @dfn{vector} is a one-dimensional array of elements of any type. It 1140 A @dfn{vector} is a one-dimensional array of elements of any type. It
1141 takes a constant amount of time to access any element of a vector. (In 1141 takes a constant amount of time to access any element of a vector. (In
1142 a list, the access time of an element is proportional to the distance of 1142 a list, the access time of an element is proportional to the distance of
1152 @result{} [1 "two" (three)] 1152 @result{} [1 "two" (three)]
1153 @end example 1153 @end example
1154 1154
1155 @xref{Vectors}, for functions that work with vectors. 1155 @xref{Vectors}, for functions that work with vectors.
1156 1156
1157 @node Bit Vector Type 1157 @node Bit Vector Type, Function Type, Vector Type, Programming Types
1158 @subsection Bit Vector Type 1158 @subsection Bit Vector Type
1159 1159
1160 A @dfn{bit vector} is a one-dimensional array of 1's and 0's. It 1160 A @dfn{bit vector} is a one-dimensional array of 1's and 0's. It
1161 takes a constant amount of time to access any element of a bit vector, 1161 takes a constant amount of time to access any element of a bit vector,
1162 as for vectors. Bit vectors have an extremely compact internal 1162 as for vectors. Bit vectors have an extremely compact internal
1174 @result{} #*00101000 1174 @result{} #*00101000
1175 @end example 1175 @end example
1176 1176
1177 @xref{Bit Vectors}, for functions that work with bit vectors. 1177 @xref{Bit Vectors}, for functions that work with bit vectors.
1178 1178
1179 @node Function Type 1179 @node Function Type, Macro Type, Bit Vector Type, Programming Types
1180 @subsection Function Type 1180 @subsection Function Type
1181 1181
1182 Just as functions in other programming languages are executable, 1182 Just as functions in other programming languages are executable,
1183 @dfn{Lisp function} objects are pieces of executable code. However, 1183 @dfn{Lisp function} objects are pieces of executable code. However,
1184 functions in Lisp are primarily Lisp objects, and only secondarily the 1184 functions in Lisp are primarily Lisp objects, and only secondarily the
1195 Most of the time, functions are called when their names are written in 1195 Most of the time, functions are called when their names are written in
1196 Lisp expressions in Lisp programs. However, you can construct or obtain 1196 Lisp expressions in Lisp programs. However, you can construct or obtain
1197 a function object at run time and then call it with the primitive 1197 a function object at run time and then call it with the primitive
1198 functions @code{funcall} and @code{apply}. @xref{Calling Functions}. 1198 functions @code{funcall} and @code{apply}. @xref{Calling Functions}.
1199 1199
1200 @node Macro Type 1200 @node Macro Type, Primitive Function Type, Function Type, Programming Types
1201 @subsection Macro Type 1201 @subsection Macro Type
1202 1202
1203 A @dfn{Lisp macro} is a user-defined construct that extends the Lisp 1203 A @dfn{Lisp macro} is a user-defined construct that extends the Lisp
1204 language. It is represented as an object much like a function, but with 1204 language. It is represented as an object much like a function, but with
1205 different parameter-passing semantics. A Lisp macro has the form of a 1205 different parameter-passing semantics. A Lisp macro has the form of a
1209 Lisp macro objects are usually defined with the built-in 1209 Lisp macro objects are usually defined with the built-in
1210 @code{defmacro} function, but any list that begins with @code{macro} is 1210 @code{defmacro} function, but any list that begins with @code{macro} is
1211 a macro as far as XEmacs is concerned. @xref{Macros}, for an explanation 1211 a macro as far as XEmacs is concerned. @xref{Macros}, for an explanation
1212 of how to write a macro. 1212 of how to write a macro.
1213 1213
1214 @node Primitive Function Type 1214 @node Primitive Function Type, Compiled-Function Type, Macro Type, Programming Types
1215 @subsection Primitive Function Type 1215 @subsection Primitive Function Type
1216 @cindex special operators 1216 @cindex special operators
1217 1217
1218 A @dfn{primitive function} is a function callable from Lisp but 1218 A @dfn{primitive function} is a function callable from Lisp but
1219 written in the C programming language. Primitive functions are also 1219 written in the C programming language. Primitive functions are also
1245 (subrp (symbol-function 'car)) ; @r{Is this a primitive function?} 1245 (subrp (symbol-function 'car)) ; @r{Is this a primitive function?}
1246 @result{} t ; @r{Yes.} 1246 @result{} t ; @r{Yes.}
1247 @end group 1247 @end group
1248 @end example 1248 @end example
1249 1249
1250 @node Compiled-Function Type 1250 @node Compiled-Function Type, Autoload Type, Primitive Function Type, Programming Types
1251 @subsection Compiled-Function Type 1251 @subsection Compiled-Function Type
1252 1252
1253 The byte compiler produces @dfn{compiled-function objects}. The 1253 The byte compiler produces @dfn{compiled-function objects}. The
1254 evaluator handles this data type specially when it appears as a function 1254 evaluator handles this data type specially when it appears as a function
1255 to be called. @xref{Byte Compilation}, for information about the byte 1255 to be called. @xref{Byte Compilation}, for information about the byte
1257 1257
1258 The printed representation for a compiled-function object is normally 1258 The printed representation for a compiled-function object is normally
1259 @samp{#<compiled-function...>}. If @code{print-readably} is true, 1259 @samp{#<compiled-function...>}. If @code{print-readably} is true,
1260 however, it is @samp{#[...]}. 1260 however, it is @samp{#[...]}.
1261 1261
1262 @node Autoload Type 1262 @node Autoload Type, Char Table Type, Compiled-Function Type, Programming Types
1263 @subsection Autoload Type 1263 @subsection Autoload Type
1264 1264
1265 An @dfn{autoload object} is a list whose first element is the symbol 1265 An @dfn{autoload object} is a list whose first element is the symbol
1266 @code{autoload}. It is stored as the function definition of a symbol as 1266 @code{autoload}. It is stored as the function definition of a symbol as
1267 a placeholder for the real definition; it says that the real definition 1267 a placeholder for the real definition; it says that the real definition
1277 1277
1278 An autoload object is usually created with the function 1278 An autoload object is usually created with the function
1279 @code{autoload}, which stores the object in the function cell of a 1279 @code{autoload}, which stores the object in the function cell of a
1280 symbol. @xref{Autoload}, for more details. 1280 symbol. @xref{Autoload}, for more details.
1281 1281
1282 @node Char Table Type 1282 @node Char Table Type, Hash Table Type, Autoload Type, Programming Types
1283 @subsection Char Table Type 1283 @subsection Char Table Type
1284 @cindex char table type 1284 @cindex char table type
1285 1285
1286 (not yet documented) 1286 (not yet documented)
1287 1287
1288 @node Hash Table Type 1288 @node Hash Table Type, Range Table Type, Char Table Type, Programming Types
1289 @subsection Hash Table Type 1289 @subsection Hash Table Type
1290 @cindex hash table type 1290 @cindex hash table type
1291 1291
1292 A @dfn{hash table} is a table providing an arbitrary mapping from 1292 A @dfn{hash table} is a table providing an arbitrary mapping from
1293 one Lisp object to another, using an internal indexing method 1293 one Lisp object to another, using an internal indexing method
1315 @end example 1315 @end example
1316 1316
1317 @xref{Hash Tables}, for information on how to create and work with hash 1317 @xref{Hash Tables}, for information on how to create and work with hash
1318 tables. 1318 tables.
1319 1319
1320 @node Range Table Type 1320 @node Range Table Type, Weak List Type, Hash Table Type, Programming Types
1321 @subsection Range Table Type 1321 @subsection Range Table Type
1322 @cindex range table type 1322 @cindex range table type
1323 1323
1324 A @dfn{range table} is a table that maps from ranges of fixnums to 1324 A @dfn{range table} is a table that maps from ranges of fixnums to
1325 arbitrary Lisp objects. Range tables automatically combine overlapping 1325 arbitrary Lisp objects. Range tables automatically combine overlapping
1341 @end example 1341 @end example
1342 1342
1343 @xref{Range Tables}, for information on how to create and work with range 1343 @xref{Range Tables}, for information on how to create and work with range
1344 tables. 1344 tables.
1345 1345
1346 @node Weak List Type 1346 @node Weak List Type, , Range Table Type, Programming Types
1347 @subsection Weak List Type 1347 @subsection Weak List Type
1348 @cindex weak list type 1348 @cindex weak list type
1349 1349
1350 (not yet documented) 1350 (not yet documented)
1351 1351
1352 @node Editing Types 1352 @node Editing Types, Window-System Types, Programming Types, Lisp Data Types
1353 @section Editing Types 1353 @section Editing Types
1354 @cindex editing types 1354 @cindex editing types
1355 1355
1356 The types in the previous section are common to many Lisp dialects. 1356 The types in the previous section are common to many Lisp dialects.
1357 XEmacs Lisp provides several additional data types for purposes connected 1357 XEmacs Lisp provides several additional data types for purposes connected
1379 different textual encodings, under XEmacs/MULE. 1379 different textual encodings, under XEmacs/MULE.
1380 * ToolTalk Message Type:: A message, in the ToolTalk IPC protocol. 1380 * ToolTalk Message Type:: A message, in the ToolTalk IPC protocol.
1381 * ToolTalk Pattern Type:: A pattern, in the ToolTalk IPC protocol. 1381 * ToolTalk Pattern Type:: A pattern, in the ToolTalk IPC protocol.
1382 @end menu 1382 @end menu
1383 1383
1384 @node Buffer Type 1384 @node Buffer Type, Marker Type, Editing Types, Editing Types
1385 @subsection Buffer Type 1385 @subsection Buffer Type
1386 1386
1387 A @dfn{buffer} is an object that holds text that can be edited 1387 A @dfn{buffer} is an object that holds text that can be edited
1388 (@pxref{Buffers}). Most buffers hold the contents of a disk file 1388 (@pxref{Buffers}). Most buffers hold the contents of a disk file
1389 (@pxref{Files}) so they can be edited, but some are used for other 1389 (@pxref{Files}) so they can be edited, but some are used for other
1442 (current-buffer) 1442 (current-buffer)
1443 @result{} #<buffer "objects.texi"> 1443 @result{} #<buffer "objects.texi">
1444 @end group 1444 @end group
1445 @end example 1445 @end example
1446 1446
1447 @node Marker Type 1447 @node Marker Type, Extent Type, Buffer Type, Editing Types
1448 @subsection Marker Type 1448 @subsection Marker Type
1449 1449
1450 A @dfn{marker} denotes a position in a specific buffer. Markers 1450 A @dfn{marker} denotes a position in a specific buffer. Markers
1451 therefore have two components: one for the buffer, and one for the 1451 therefore have two components: one for the buffer, and one for the
1452 position. Changes in the buffer's text automatically relocate the 1452 position. Changes in the buffer's text automatically relocate the
1464 @end example 1464 @end example
1465 1465
1466 @xref{Markers}, for information on how to test, create, copy, and move 1466 @xref{Markers}, for information on how to test, create, copy, and move
1467 markers. 1467 markers.
1468 1468
1469 @node Extent Type 1469 @node Extent Type, Window Type, Marker Type, Editing Types
1470 @subsection Extent Type 1470 @subsection Extent Type
1471 1471
1472 An @dfn{extent} specifies temporary alteration of the display 1472 An @dfn{extent} specifies temporary alteration of the display
1473 appearance of a part of a buffer (or string). It contains markers 1473 appearance of a part of a buffer (or string). It contains markers
1474 delimiting a range of the buffer, plus a property list (a list whose 1474 delimiting a range of the buffer, plus a property list (a list whose
1496 1496
1497 @xref{Extents}, for how to create and use extents. 1497 @xref{Extents}, for how to create and use extents.
1498 1498
1499 Extents are used to implement text properties. @xref{Text Properties}. 1499 Extents are used to implement text properties. @xref{Text Properties}.
1500 1500
1501 @node Window Type 1501 @node Window Type, Frame Type, Extent Type, Editing Types
1502 @subsection Window Type 1502 @subsection Window Type
1503 1503
1504 A @dfn{window} describes the portion of the frame that XEmacs uses to 1504 A @dfn{window} describes the portion of the frame that XEmacs uses to
1505 display a buffer. (In standard window-system usage, a @dfn{window} is 1505 display a buffer. (In standard window-system usage, a @dfn{window} is
1506 what XEmacs calls a @dfn{frame}; XEmacs confusingly uses the term 1506 what XEmacs calls a @dfn{frame}; XEmacs confusingly uses the term
1530 @end group 1530 @end group
1531 @end example 1531 @end example
1532 1532
1533 @xref{Windows}, for a description of the functions that work on windows. 1533 @xref{Windows}, for a description of the functions that work on windows.
1534 1534
1535 @node Frame Type 1535 @node Frame Type, Device Type, Window Type, Editing Types
1536 @subsection Frame Type 1536 @subsection Frame Type
1537 1537
1538 A @var{frame} is a rectangle on the screen (a @dfn{window} in standard 1538 A @var{frame} is a rectangle on the screen (a @dfn{window} in standard
1539 window-system terminology) that contains one or more non-overlapping 1539 window-system terminology) that contains one or more non-overlapping
1540 Emacs windows (@dfn{panes} in standard window-system terminology). A 1540 Emacs windows (@dfn{panes} in standard window-system terminology). A
1553 @end group 1553 @end group
1554 @end example 1554 @end example
1555 1555
1556 @xref{Frames}, for a description of the functions that work on frames. 1556 @xref{Frames}, for a description of the functions that work on frames.
1557 1557
1558 @node Device Type 1558 @node Device Type, Console Type, Frame Type, Editing Types
1559 @subsection Device Type 1559 @subsection Device Type
1560 1560
1561 A @dfn{device} represents a single display on which frames exist. 1561 A @dfn{device} represents a single display on which frames exist.
1562 Normally, there is only one device object, but there may be more 1562 Normally, there is only one device object, but there may be more
1563 than one if XEmacs is being run on a multi-headed display (e.g. an 1563 than one if XEmacs is being run on a multi-headed display (e.g. an
1577 @end example 1577 @end example
1578 1578
1579 @xref{Consoles and Devices}, for a description of several functions 1579 @xref{Consoles and Devices}, for a description of several functions
1580 related to devices. 1580 related to devices.
1581 1581
1582 @node Console Type 1582 @node Console Type, Window Configuration Type, Device Type, Editing Types
1583 @subsection Console Type 1583 @subsection Console Type
1584 1584
1585 A @dfn{console} represents a single keyboard to which devices 1585 A @dfn{console} represents a single keyboard to which devices
1586 (i.e. displays on which frames exist) are connected. Normally, there is 1586 (i.e. displays on which frames exist) are connected. Normally, there is
1587 only one console object, but there may be more than one if XEmacs is 1587 only one console object, but there may be more than one if XEmacs is
1606 @end example 1606 @end example
1607 1607
1608 @xref{Consoles and Devices}, for a description of several functions 1608 @xref{Consoles and Devices}, for a description of several functions
1609 related to consoles. 1609 related to consoles.
1610 1610
1611 @node Window Configuration Type 1611 @node Window Configuration Type, Event Type, Console Type, Editing Types
1612 @subsection Window Configuration Type 1612 @subsection Window Configuration Type
1613 @cindex screen layout 1613 @cindex screen layout
1614 1614
1615 A @dfn{window configuration} stores information about the positions, 1615 A @dfn{window configuration} stores information about the positions,
1616 sizes, and contents of the windows in a frame, so you can recreate the 1616 sizes, and contents of the windows in a frame, so you can recreate the
1628 @end example 1628 @end example
1629 1629
1630 @xref{Window Configurations}, for a description of several functions 1630 @xref{Window Configurations}, for a description of several functions
1631 related to window configurations. 1631 related to window configurations.
1632 1632
1633 @node Event Type 1633 @node Event Type, Process Type, Window Configuration Type, Editing Types
1634 @subsection Event Type 1634 @subsection Event Type
1635 1635
1636 (not yet documented) 1636 (not yet documented)
1637 1637
1638 @node Process Type 1638 @node Process Type, Stream Type, Event Type, Editing Types
1639 @subsection Process Type 1639 @subsection Process Type
1640 1640
1641 The word @dfn{process} usually means a running program. XEmacs itself 1641 The word @dfn{process} usually means a running program. XEmacs itself
1642 runs in a process of this sort. However, in XEmacs Lisp, a process is a 1642 runs in a process of this sort. However, in XEmacs Lisp, a process is a
1643 Lisp object that designates a subprocess created by the XEmacs process. 1643 Lisp object that designates a subprocess created by the XEmacs process.
1661 1661
1662 @xref{Processes}, for information about functions that create, delete, 1662 @xref{Processes}, for information about functions that create, delete,
1663 return information about, send input or signals to, and receive output 1663 return information about, send input or signals to, and receive output
1664 from processes. 1664 from processes.
1665 1665
1666 @node Stream Type 1666 @node Stream Type, Keymap Type, Process Type, Editing Types
1667 @subsection Stream Type 1667 @subsection Stream Type
1668 1668
1669 A @dfn{stream} is an object that can be used as a source or sink for 1669 A @dfn{stream} is an object that can be used as a source or sink for
1670 characters---either to supply characters for input or to accept them as 1670 characters---either to supply characters for input or to accept them as
1671 output. Many different types can be used this way: markers, buffers, 1671 output. Many different types can be used this way: markers, buffers,
1685 print as whatever primitive type they are. 1685 print as whatever primitive type they are.
1686 1686
1687 @xref{Read and Print}, for a description of functions 1687 @xref{Read and Print}, for a description of functions
1688 related to streams, including parsing and printing functions. 1688 related to streams, including parsing and printing functions.
1689 1689
1690 @node Keymap Type 1690 @node Keymap Type, Syntax Table Type, Stream Type, Editing Types
1691 @subsection Keymap Type 1691 @subsection Keymap Type
1692 1692
1693 A @dfn{keymap} maps keys typed by the user to commands. This mapping 1693 A @dfn{keymap} maps keys typed by the user to commands. This mapping
1694 controls how the user's command input is executed. 1694 controls how the user's command input is executed.
1695 1695
1698 @code{keymap}. 1698 @code{keymap}.
1699 1699
1700 @xref{Keymaps}, for information about creating keymaps, handling prefix 1700 @xref{Keymaps}, for information about creating keymaps, handling prefix
1701 keys, local as well as global keymaps, and changing key bindings. 1701 keys, local as well as global keymaps, and changing key bindings.
1702 1702
1703 @node Syntax Table Type 1703 @node Syntax Table Type, Display Table Type, Keymap Type, Editing Types
1704 @subsection Syntax Table Type 1704 @subsection Syntax Table Type
1705 1705
1706 Under XEmacs 20, a @dfn{syntax table} is a particular type of char 1706 Under XEmacs 20, a @dfn{syntax table} is a particular type of char
1707 table. Under XEmacs 19, a syntax table is a vector of 256 integers. In 1707 table. Under XEmacs 19, a syntax table is a vector of 256 integers. In
1708 both cases, each element defines how one character is interpreted when it 1708 both cases, each element defines how one character is interpreted when it
1718 instead of @samp{(} and @samp{)} would be impossible. 1718 instead of @samp{(} and @samp{)} would be impossible.
1719 1719
1720 @xref{Syntax Tables}, for details about syntax classes and how to make 1720 @xref{Syntax Tables}, for details about syntax classes and how to make
1721 and modify syntax tables. 1721 and modify syntax tables.
1722 1722
1723 @node Display Table Type 1723 @node Display Table Type, Database Type, Syntax Table Type, Editing Types
1724 @subsection Display Table Type 1724 @subsection Display Table Type
1725 1725
1726 A @dfn{display table} specifies how to display each character code. 1726 A @dfn{display table} specifies how to display each character code.
1727 Each buffer and each window can have its own display table. A display 1727 Each buffer and each window can have its own display table. A display
1728 table is actually a vector of length 256, although in XEmacs 20 this may 1728 table is actually a vector of length 256, although in XEmacs 20 this may
1729 change to be a particular type of char table. @xref{Display Tables}. 1729 change to be a particular type of char table. @xref{Display Tables}.
1730 1730
1731 @node Database Type 1731 @node Database Type, Charset Type, Display Table Type, Editing Types
1732 @subsection Database Type 1732 @subsection Database Type
1733 @cindex database type 1733 @cindex database type
1734 1734
1735 (not yet documented) 1735 (not yet documented)
1736 1736
1737 @node Charset Type 1737 @node Charset Type, Coding System Type, Database Type, Editing Types
1738 @subsection Charset Type 1738 @subsection Charset Type
1739 @cindex charset type 1739 @cindex charset type
1740 1740
1741 (not yet documented) 1741 (not yet documented)
1742 1742
1743 @node Coding System Type 1743 @node Coding System Type, ToolTalk Message Type, Charset Type, Editing Types
1744 @subsection Coding System Type 1744 @subsection Coding System Type
1745 @cindex coding system type 1745 @cindex coding system type
1746 1746
1747 (not yet documented) 1747 (not yet documented)
1748 1748
1749 @node ToolTalk Message Type 1749 @node ToolTalk Message Type, ToolTalk Pattern Type, Coding System Type, Editing Types
1750 @subsection ToolTalk Message Type 1750 @subsection ToolTalk Message Type
1751 1751
1752 (not yet documented) 1752 (not yet documented)
1753 1753
1754 @node ToolTalk Pattern Type 1754 @node ToolTalk Pattern Type, , ToolTalk Message Type, Editing Types
1755 @subsection ToolTalk Pattern Type 1755 @subsection ToolTalk Pattern Type
1756 1756
1757 (not yet documented) 1757 (not yet documented)
1758 1758
1759 @node Window-System Types 1759 @node Window-System Types, Type Predicates, Editing Types, Lisp Data Types
1760 @section Window-System Types 1760 @section Window-System Types
1761 @cindex window system types 1761 @cindex window system types
1762 1762
1763 XEmacs also has some types that represent objects such as faces 1763 XEmacs also has some types that represent objects such as faces
1764 (collections of display characters), fonts, and pixmaps that are 1764 (collections of display characters), fonts, and pixmaps that are
1777 appearing in a buffer. 1777 appearing in a buffer.
1778 * X Resource Type:: A miscellaneous X resource, if Epoch support was 1778 * X Resource Type:: A miscellaneous X resource, if Epoch support was
1779 compiled into XEmacs. 1779 compiled into XEmacs.
1780 @end menu 1780 @end menu
1781 1781
1782 @node Face Type 1782 @node Face Type, Glyph Type, Window-System Types, Window-System Types
1783 @subsection Face Type 1783 @subsection Face Type
1784 @cindex face type 1784 @cindex face type
1785 1785
1786 (not yet documented) 1786 (not yet documented)
1787 1787
1788 @node Glyph Type 1788 @node Glyph Type, Specifier Type, Face Type, Window-System Types
1789 @subsection Glyph Type 1789 @subsection Glyph Type
1790 @cindex glyph type 1790 @cindex glyph type
1791 1791
1792 (not yet documented) 1792 (not yet documented)
1793 1793
1794 @node Specifier Type 1794 @node Specifier Type, Font Instance Type, Glyph Type, Window-System Types
1795 @subsection Specifier Type 1795 @subsection Specifier Type
1796 @cindex specifier type 1796 @cindex specifier type
1797 1797
1798 (not yet documented) 1798 (not yet documented)
1799 1799
1800 @node Font Instance Type 1800 @node Font Instance Type, Color Instance Type, Specifier Type, Window-System Types
1801 @subsection Font Instance Type 1801 @subsection Font Instance Type
1802 @cindex font instance type 1802 @cindex font instance type
1803 1803
1804 (not yet documented) 1804 (not yet documented)
1805 1805
1806 @node Color Instance Type 1806 @node Color Instance Type, Image Instance Type, Font Instance Type, Window-System Types
1807 @subsection Color Instance Type 1807 @subsection Color Instance Type
1808 @cindex color instance type 1808 @cindex color instance type
1809 1809
1810 (not yet documented) 1810 (not yet documented)
1811 1811
1812 @node Image Instance Type 1812 @node Image Instance Type, Toolbar Button Type, Color Instance Type, Window-System Types
1813 @subsection Image Instance Type 1813 @subsection Image Instance Type
1814 @cindex image instance type 1814 @cindex image instance type
1815 1815
1816 (not yet documented) 1816 (not yet documented)
1817 1817
1818 @node Toolbar Button Type 1818 @node Toolbar Button Type, Subwindow Type, Image Instance Type, Window-System Types
1819 @subsection Toolbar Button Type 1819 @subsection Toolbar Button Type
1820 @cindex toolbar button type 1820 @cindex toolbar button type
1821 1821
1822 (not yet documented) 1822 (not yet documented)
1823 1823
1824 @node Subwindow Type 1824 @node Subwindow Type, X Resource Type, Toolbar Button Type, Window-System Types
1825 @subsection Subwindow Type 1825 @subsection Subwindow Type
1826 @cindex subwindow type 1826 @cindex subwindow type
1827 1827
1828 (not yet documented) 1828 (not yet documented)
1829 1829
1830 @node X Resource Type 1830 @node X Resource Type, , Subwindow Type, Window-System Types
1831 @subsection X Resource Type 1831 @subsection X Resource Type
1832 @cindex X resource type 1832 @cindex X resource type
1833 1833
1834 (not yet documented) 1834 (not yet documented)
1835 1835
1836 @node Type Predicates 1836 @node Type Predicates, Equality Predicates, Window-System Types, Lisp Data Types
1837 @section Type Predicates 1837 @section Type Predicates
1838 @cindex predicates 1838 @cindex predicates
1839 @cindex type checking 1839 @cindex type checking
1840 @kindex wrong-type-argument 1840 @kindex wrong-type-argument
1841 1841
2218 (type-of '(x)) 2218 (type-of '(x))
2219 @result{} cons 2219 @result{} cons
2220 @end example 2220 @end example
2221 @end defun 2221 @end defun
2222 2222
2223 @node Equality Predicates 2223 @node Equality Predicates, , Type Predicates, Lisp Data Types
2224 @section Equality Predicates 2224 @section Equality Predicates
2225 @cindex equality 2225 @cindex equality
2226 2226
2227 Here we describe functions that test for equality between any two 2227 Here we describe functions that test for equality between any two
2228 objects. Other functions test equality between objects of specific 2228 objects. Other functions test equality between objects of specific