Mercurial > hg > xemacs-beta
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 |