aboutsummaryrefslogtreecommitdiffstats
path: root/lispref/objects.texi
diff options
context:
space:
mode:
authorRichard M. Stallman1998-05-19 03:45:57 +0000
committerRichard M. Stallman1998-05-19 03:45:57 +0000
commita9f0a989a17f47f9d25b7a426b4e82a8ff684ee4 (patch)
treed62b5592064177c684f1509989b223623db3f24c /lispref/objects.texi
parentc6d6572475603083762cb0155ae966de7710bb9c (diff)
downloademacs-a9f0a989a17f47f9d25b7a426b4e82a8ff684ee4.tar.gz
emacs-a9f0a989a17f47f9d25b7a426b4e82a8ff684ee4.zip
*** empty log message ***
Diffstat (limited to 'lispref/objects.texi')
-rw-r--r--lispref/objects.texi77
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
398in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}. The syntaxes 398in a character: @dfn{hyper}, @dfn{super} and @dfn{alt}. The syntaxes
399for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}. Thus, 399for these bits are @samp{\H-}, @samp{\s-} and @samp{\A-}. (Case is
400@samp{?\H-\M-\A-x} represents @kbd{Alt-Hyper-Meta-x}. 400significant in these prefixes.) Thus, @samp{?\H-\M-\A-x} represents
401@kbd{Alt-Hyper-Meta-x}.
401@tex 402@tex
402Numerically, the 403Numerically, the
403bit values are $2^{22}$ for alt, $2^{23}$ for super and $2^{24}$ for hyper. 404bit 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
882digits as necessary. (Multibyte non-@sc{ASCII} character codes are all 883digits as necessary. (Multibyte non-@sc{ASCII} character codes are all
883greater than 256.) Any character which is not a valid hex digit 884greater than 256.) Any character which is not a valid hex digit
884terminates this construct. If the character that would follow is a hex 885terminates this construct. If the character that would follow is a hex
885digit, write @samp{\ } to terminate the hex escape---for example, 886digit, 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
888not contribute any character to the string, but it does terminate the 889not contribute any character to the string, but it does terminate the
889preceding hex escape. 890preceding 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
903modifiers; 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
908as in character literals (but do not use the question mark that begins a 904as in character literals (but do not use the question mark that begins a
909character constant). For example, you can write a string containing the 905character constant). For example, you can write a string containing the
910nonprinting characters tab, @kbd{C-a} and @kbd{M-C-a}, with commas and 906nonprinting characters tab and @kbd{C-a}, with commas and spaces between
911spaces between them, like this: @code{"\t, \C-a, \M-\C-a"}. 907them, like this: @code{"\t, \C-a"}. @xref{Character Type}, for a
912@xref{Character Type}, for a description of the read syntax for 908description of the read syntax for characters.
913characters. 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 911escape-sequences are valid in strings. The only control characters that
916string constant, this sets the 912a string can hold are the @sc{ASCII} control characters. Strings do not
913distinguish case in @sc{ASCII} control characters.
914
915 Properly speaking, strings cannot hold meta characters; but when a
916string is to be used as a key sequence, there is a special convention
917that allows the meta versions of @sc{ASCII} characters to be put in a
918string. If you use the @samp{\M-} syntax to indicate a meta character
919in 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
9212**7 9242**7
922@end ifinfo 925@end ifinfo
923bit of the character in the string. This construct works only with 926bit of the character in the string. If the string is used in
924ASCII characters. Note that the same meta characters have a different 927@code{define-key} or @code{lookup-key}, this numeric code is translated
925representation when not in a string. @xref{Character Type}. 928into the equivalent meta character. @xref{Character Type}.
929
930 Strings cannot hold characters that have the hyper, super, or alt
931modifiers.
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
960the first three characters have a @code{face} property with value 966the 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
963property list is @code{nil}.) 969property list is @code{nil}. It is not actually necessary to mention
970ranges with @code{nil} as the property list, since any characters not
971mentioned 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
1024constant that follows actually specifies the contents of the bool-vector 1032constant that follows actually specifies the contents of the bool-vector
1025as a bitmap---each ``character'' in the string contains 8 bits, which 1033as a bitmap---each ``character'' in the string contains 8 bits, which
1026specify the next 8 elements of the bool-vector (1 stands for @code{t}, 1034specify the next 8 elements of the bool-vector (1 stands for @code{t},
1027and 0 for @code{nil}). If the length is not a multiple of 8, the 1035and 0 for @code{nil}). The least significant bits of the character are
1028printed representation describes extra elements, but these really 1036the lowest-numbered elements of the bool-vector. If the length is not a
1029make no difference. 1037multiple of 8, the printed representation shows extra elements, but
1038these 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
1155purposes, and most of them are common to most Lisp dialects. Emacs Lisp 1164purposes, and most of them are common to most Lisp dialects. Emacs Lisp
1156provides several additional data types for purposes connected with 1165provides several additional data types for purposes connected with
1157editing. 1166editing.
@@ -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
1292Emacs windows. A frame initially contains a single main window (plus 1301Emacs windows. A frame initially contains a single main window (plus
1293perhaps a minibuffer window) which you can subdivide vertically or 1302perhaps a minibuffer window) which you can subdivide vertically or
1294horizontally into smaller windows. 1303horizontally 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 1680The @code{make-symbol} function returns an uninterned symbol, distinct
1672not interned in the standard @code{obarray}. When uninterned symbols 1681from the symbol that is used if you write the name in a Lisp expression.
1673are in use, symbol names are no longer unique. Distinct symbols with 1682Distinct symbols with the same name are not @code{eq}. @xref{Creating
1674the same name are not @code{eq}. @xref{Creating Symbols}.) 1683Symbols}.
1675 1684
1676@example 1685@example
1677@group 1686@group