diff options
| author | Richard M. Stallman | 1998-05-19 03:45:57 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1998-05-19 03:45:57 +0000 |
| commit | a9f0a989a17f47f9d25b7a426b4e82a8ff684ee4 (patch) | |
| tree | d62b5592064177c684f1509989b223623db3f24c /lispref/objects.texi | |
| parent | c6d6572475603083762cb0155ae966de7710bb9c (diff) | |
| download | emacs-a9f0a989a17f47f9d25b7a426b4e82a8ff684ee4.tar.gz emacs-a9f0a989a17f47f9d25b7a426b4e82a8ff684ee4.zip | |
*** empty log message ***
Diffstat (limited to 'lispref/objects.texi')
| -rw-r--r-- | lispref/objects.texi | 77 |
1 files changed, 43 insertions, 34 deletions
diff --git a/lispref/objects.texi b/lispref/objects.texi index ea1e8fb1632..f2c082b56bc 100644 --- a/lispref/objects.texi +++ b/lispref/objects.texi | |||
| @@ -396,8 +396,9 @@ distinction to the computer in any way. | |||
| 396 | @cindex alt characters | 396 | @cindex alt characters |
| 397 | The X Window System defines three other modifier bits that can be set | 397 | The X Window System defines three other modifier bits that can be set |
| 398 | in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}. The syntaxes | 398 | in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}. The syntaxes |
| 399 | for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}. Thus, | 399 | for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}. (Case is |
| 400 | @samp{?\H-\M-\A-x} represents @kbd{Alt-Hyper-Meta-x}. | 400 | significant in these prefixes.) Thus, @samp{?\H-\M-\A-x} represents |
| 401 | @kbd{Alt-Hyper-Meta-x}. | ||
| 401 | @tex | 402 | @tex |
| 402 | Numerically, the | 403 | Numerically, the |
| 403 | bit values are $2^{22}$ for alt, $2^{23}$ for super and $2^{24}$ for hyper. | 404 | bit values are $2^{22}$ for alt, $2^{23}$ for super and $2^{24}$ for hyper. |
| @@ -882,9 +883,9 @@ character code, using a hex escape, @samp{\x@var{nnnnnnn}}, with as many | |||
| 882 | digits as necessary. (Multibyte non-@sc{ASCII} character codes are all | 883 | digits as necessary. (Multibyte non-@sc{ASCII} character codes are all |
| 883 | greater than 256.) Any character which is not a valid hex digit | 884 | greater than 256.) Any character which is not a valid hex digit |
| 884 | terminates this construct. If the character that would follow is a hex | 885 | terminates this construct. If the character that would follow is a hex |
| 885 | digit, write @samp{\ } to terminate the hex escape---for example, | 886 | digit, write @w{@samp{\ }} to terminate the hex escape---for example, |
| 886 | @samp{\x8c0\ } represents one character, @samp{a} with grave accent. | 887 | @w{@samp{\x8c0\ }} represents one character, @samp{a} with grave accent. |
| 887 | @samp{\ } in a string constant is just like backslash-newline; it does | 888 | @w{@samp{\ }} in a string constant is just like backslash-newline; it does |
| 888 | not contribute any character to the string, but it does terminate the | 889 | not contribute any character to the string, but it does terminate the |
| 889 | preceding hex escape. | 890 | preceding hex escape. |
| 890 | 891 | ||
| @@ -899,30 +900,35 @@ text representations. | |||
| 899 | @node Nonprinting Characters | 900 | @node Nonprinting Characters |
| 900 | @subsubsection Nonprinting Characters in Strings | 901 | @subsubsection Nonprinting Characters in Strings |
| 901 | 902 | ||
| 902 | Strings cannot hold characters that have the hyper, super, or alt | ||
| 903 | modifiers; the only control or meta characters they can hold are the | ||
| 904 | @sc{ASCII} control characters. Strings do not distinguish case in | ||
| 905 | @sc{ASCII} control characters. | ||
| 906 | |||
| 907 | You can use the same backslash escape-sequences in a string constant | 903 | You can use the same backslash escape-sequences in a string constant |
| 908 | as in character literals (but do not use the question mark that begins a | 904 | as in character literals (but do not use the question mark that begins a |
| 909 | character constant). For example, you can write a string containing the | 905 | character constant). For example, you can write a string containing the |
| 910 | nonprinting characters tab, @kbd{C-a} and @kbd{M-C-a}, with commas and | 906 | nonprinting characters tab and @kbd{C-a}, with commas and spaces between |
| 911 | spaces between them, like this: @code{"\t, \C-a, \M-\C-a"}. | 907 | them, like this: @code{"\t, \C-a"}. @xref{Character Type}, for a |
| 912 | @xref{Character Type}, for a description of the read syntax for | 908 | description of the read syntax for characters. |
| 913 | characters. | 909 | |
| 914 | 910 | However, not all of the characters you can write with backslash | |
| 915 | If you use the @samp{\M-} syntax to indicate a meta character in a | 911 | escape-sequences are valid in strings. The only control characters that |
| 916 | string constant, this sets the | 912 | a string can hold are the @sc{ASCII} control characters. Strings do not |
| 913 | distinguish case in @sc{ASCII} control characters. | ||
| 914 | |||
| 915 | Properly speaking, strings cannot hold meta characters; but when a | ||
| 916 | string is to be used as a key sequence, there is a special convention | ||
| 917 | that allows the meta versions of @sc{ASCII} characters to be put in a | ||
| 918 | string. If you use the @samp{\M-} syntax to indicate a meta character | ||
| 919 | in a string constant, this sets the | ||
| 917 | @tex | 920 | @tex |
| 918 | $2^{7}$ | 921 | $2^{7}$ |
| 919 | @end tex | 922 | @end tex |
| 920 | @ifinfo | 923 | @ifinfo |
| 921 | 2**7 | 924 | 2**7 |
| 922 | @end ifinfo | 925 | @end ifinfo |
| 923 | bit of the character in the string. This construct works only with | 926 | bit of the character in the string. If the string is used in |
| 924 | ASCII characters. Note that the same meta characters have a different | 927 | @code{define-key} or @code{lookup-key}, this numeric code is translated |
| 925 | representation when not in a string. @xref{Character Type}. | 928 | into the equivalent meta character. @xref{Character Type}. |
| 929 | |||
| 930 | Strings cannot hold characters that have the hyper, super, or alt | ||
| 931 | modifiers. | ||
| 926 | 932 | ||
| 927 | @node Text Props and Strings | 933 | @node Text Props and Strings |
| 928 | @subsubsection Text Properties in Strings | 934 | @subsubsection Text Properties in Strings |
| @@ -960,7 +966,9 @@ represents a string whose textual contents are @samp{foo bar}, in which | |||
| 960 | the first three characters have a @code{face} property with value | 966 | the first three characters have a @code{face} property with value |
| 961 | @code{bold}, and the last three have a @code{face} property with value | 967 | @code{bold}, and the last three have a @code{face} property with value |
| 962 | @code{italic}. (The fourth character has no text properties so its | 968 | @code{italic}. (The fourth character has no text properties so its |
| 963 | property list is @code{nil}.) | 969 | property list is @code{nil}. It is not actually necessary to mention |
| 970 | ranges with @code{nil} as the property list, since any characters not | ||
| 971 | mentioned in any range will default to having no properties.) | ||
| 964 | 972 | ||
| 965 | @node Vector Type | 973 | @node Vector Type |
| 966 | @subsection Vector Type | 974 | @subsection Vector Type |
| @@ -1024,17 +1032,18 @@ that it begins with @samp{#&} followed by the length. The string | |||
| 1024 | constant that follows actually specifies the contents of the bool-vector | 1032 | constant that follows actually specifies the contents of the bool-vector |
| 1025 | as a bitmap---each ``character'' in the string contains 8 bits, which | 1033 | as a bitmap---each ``character'' in the string contains 8 bits, which |
| 1026 | specify the next 8 elements of the bool-vector (1 stands for @code{t}, | 1034 | specify the next 8 elements of the bool-vector (1 stands for @code{t}, |
| 1027 | and 0 for @code{nil}). If the length is not a multiple of 8, the | 1035 | and 0 for @code{nil}). The least significant bits of the character are |
| 1028 | printed representation describes extra elements, but these really | 1036 | the lowest-numbered elements of the bool-vector. If the length is not a |
| 1029 | make no difference. | 1037 | multiple of 8, the printed representation shows extra elements, but |
| 1038 | these extras really make no difference. | ||
| 1030 | 1039 | ||
| 1031 | @example | 1040 | @example |
| 1032 | (make-bool-vector 3 t) | 1041 | (make-bool-vector 3 t) |
| 1033 | @result{} #&3"\377" | 1042 | @result{} #&3"\007" |
| 1034 | (make-bool-vector 3 nil) | 1043 | (make-bool-vector 3 nil) |
| 1035 | @result{} #&3"\0"" | 1044 | @result{} #&3"\0" |
| 1036 | ;; @r{These are equal since only the first 3 bits are used.} | 1045 | ;; @r{These are equal since only the first 3 bits are used.} |
| 1037 | (equal #&3"\377" #&3"\340") | 1046 | (equal #&3"\377" #&3"\007") |
| 1038 | @result{} t | 1047 | @result{} t |
| 1039 | @end example | 1048 | @end example |
| 1040 | 1049 | ||
| @@ -1151,7 +1160,7 @@ symbol. @xref{Autoload}, for more details. | |||
| 1151 | @section Editing Types | 1160 | @section Editing Types |
| 1152 | @cindex editing types | 1161 | @cindex editing types |
| 1153 | 1162 | ||
| 1154 | The types in the previous section used for general programming | 1163 | The types in the previous section are used for general programming |
| 1155 | purposes, and most of them are common to most Lisp dialects. Emacs Lisp | 1164 | purposes, and most of them are common to most Lisp dialects. Emacs Lisp |
| 1156 | provides several additional data types for purposes connected with | 1165 | provides several additional data types for purposes connected with |
| 1157 | editing. | 1166 | editing. |
| @@ -1288,7 +1297,7 @@ in any given window can change frequently. | |||
| 1288 | @node Frame Type | 1297 | @node Frame Type |
| 1289 | @subsection Frame Type | 1298 | @subsection Frame Type |
| 1290 | 1299 | ||
| 1291 | A @var{frame} is a rectangle on the screen that contains one or more | 1300 | A @dfn{frame} is a rectangle on the screen that contains one or more |
| 1292 | Emacs windows. A frame initially contains a single main window (plus | 1301 | Emacs windows. A frame initially contains a single main window (plus |
| 1293 | perhaps a minibuffer window) which you can subdivide vertically or | 1302 | perhaps a minibuffer window) which you can subdivide vertically or |
| 1294 | horizontally into smaller windows. | 1303 | horizontally into smaller windows. |
| @@ -1300,7 +1309,7 @@ uniquely). | |||
| 1300 | @example | 1309 | @example |
| 1301 | @group | 1310 | @group |
| 1302 | (selected-frame) | 1311 | (selected-frame) |
| 1303 | @result{} #<frame emacs@@mole.gnu.ai.mit.edu 0xdac80> | 1312 | @result{} #<frame emacs@@psilocin.gnu.org 0xdac80> |
| 1304 | @end group | 1313 | @end group |
| 1305 | @end example | 1314 | @end example |
| 1306 | 1315 | ||
| @@ -1668,10 +1677,10 @@ object. | |||
| 1668 | @end group | 1677 | @end group |
| 1669 | @end example | 1678 | @end example |
| 1670 | 1679 | ||
| 1671 | (The @code{make-symbol} function returns an uninterned symbol that is | 1680 | The @code{make-symbol} function returns an uninterned symbol, distinct |
| 1672 | not interned in the standard @code{obarray}. When uninterned symbols | 1681 | from the symbol that is used if you write the name in a Lisp expression. |
| 1673 | are in use, symbol names are no longer unique. Distinct symbols with | 1682 | Distinct symbols with the same name are not @code{eq}. @xref{Creating |
| 1674 | the same name are not @code{eq}. @xref{Creating Symbols}.) | 1683 | Symbols}. |
| 1675 | 1684 | ||
| 1676 | @example | 1685 | @example |
| 1677 | @group | 1686 | @group |