]> code.delx.au - gnu-emacs/blobdiff - doc/lispref/objects.texi
(Terminal I/O Encoding): `keyboard-coding-system' and
[gnu-emacs] / doc / lispref / objects.texi
index ea9800944a2675c1b00d29ff664e193465c6821b..dd200328453fb2ce620572d6bab5362dcb59243d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c   2002, 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../../info/objects
 @node Lisp Data Types, Numbers, Introduction, Top
@@ -231,13 +231,12 @@ example, the character @kbd{A} is represented as the @w{integer 65}.
 more common to work with @emph{strings}, which are sequences composed
 of characters.  @xref{String Type}.
 
-  Characters in strings, buffers, and files are currently limited to
-the range of 0 to 524287---nineteen bits.  But not all values in that
-range are valid character codes.  Codes 0 through 127 are
-@acronym{ASCII} codes; the rest are non-@acronym{ASCII}
-(@pxref{Non-ASCII Characters}).  Characters that represent keyboard
-input have a much wider range, to encode modifier keys such as
-Control, Meta and Shift.
+  Characters in strings and buffers are currently limited to the range
+of 0 to 4194303---twenty two bits (@pxref{Character Codes}).  Codes 0
+through 127 are @acronym{ASCII} codes; the rest are
+non-@acronym{ASCII} (@pxref{Non-ASCII Characters}).  Characters that
+represent keyboard input have a much wider range, to encode modifier
+keys such as Control, Meta and Shift.
 
   There are special functions for producing a human-readable textual
 description of a character for the sake of messages.  @xref{Describing
@@ -346,7 +345,7 @@ following text.)
 @node General Escape Syntax
 @subsubsection General Escape Syntax
 
-  In addition to the specific excape sequences for special important
+  In addition to the specific escape sequences for special important
 control characters, Emacs provides general categories of escape syntax
 that you can use to specify non-ASCII text characters.
 
@@ -362,7 +361,7 @@ an error.
 
   This peculiar and inconvenient syntax was adopted for compatibility
 with other programming languages.  Unlike some other languages, Emacs
-Lisp supports this syntax in only character literals and strings.
+Lisp supports this syntax only in character literals and strings.
 
 @cindex @samp{\} in character constant
 @cindex backslash in character constant
@@ -1087,6 +1086,8 @@ modifiers.
 @node Text Props and Strings
 @subsubsection Text Properties in Strings
 
+@cindex @samp{#(} read syntax
+@cindex text properties, read syntax
   A string can hold properties for the characters it contains, in
 addition to the characters themselves.  This enables programs that copy
 text between strings and buffers to copy the text's properties with no
@@ -1265,7 +1266,7 @@ without qualification, we mean a Lisp macro, not a keyboard macro.
 
 @node Primitive Function Type
 @subsection Primitive Function Type
-@cindex special forms
+@cindex primitive function
 
   A @dfn{primitive function} is a function callable from Lisp but
 written in the C programming language.  Primitive functions are also
@@ -1346,10 +1347,11 @@ editing.
 * Buffer Type::         The basic object of editing.
 * Marker Type::         A position in a buffer.
 * Window Type::         Buffers are displayed in windows.
-* Frame Type::         Windows subdivide frames.
+* Frame Type::          Windows subdivide frames.
+* Terminal Type::       A terminal device displays frames.
 * Window Configuration Type::   Recording the way a frame is subdivided.
 * Frame Configuration Type::    Recording the status of all frames.
-* Process Type::        A process running on the underlying OS.
+* Process Type::        A subprocess of Emacs running on the underlying OS.
 * Stream Type::         Receive or send characters.
 * Keymap Type::         What function a keystroke invokes.
 * Overlay Type::        How an overlay is represented.
@@ -1491,6 +1493,25 @@ uniquely).
 
   @xref{Frames}, for a description of the functions that work on frames.
 
+@node Terminal Type
+@subsection Terminal Type
+@cindex terminal type
+
+  A @dfn{terminal} is a device capable of displaying one or more
+Emacs frames (@pxref{Frame Type}).
+
+  Terminals have no read syntax.  They print in hash notation giving
+the terminal's ordinal number and its TTY device file name.
+
+@example
+@group
+(get-device-terminal nil)
+     @result{} #<terminal 1 on /dev/tty>
+@end group
+@end example
+
+@c FIXME: add an xref to where terminal-related primitives are described.
+
 @node Window Configuration Type
 @subsection Window Configuration Type
 @cindex window layout in a frame