blob: 003bd9544de9bd69a3c20323f52cdeeda2f80fef [file] [log] [blame]
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +00001\section{\module{curses.ascii} ---
Fred Drake5ccd4b22000-06-28 22:03:29 +00002 Utilities for ASCII characters}
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +00003
4\declaremodule{standard}{curses.ascii}
Fred Drake5ccd4b22000-06-28 22:03:29 +00005\modulesynopsis{Constants and set-membership functions for
Fred Drakec116b822001-05-09 15:50:17 +00006 \ASCII\ characters.}
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +00007\moduleauthor{Eric S. Raymond}{esr@thyrsus.com}
8\sectionauthor{Eric S. Raymond}{esr@thyrsus.com}
9
Fred Drakefc1f9222000-08-09 14:36:11 +000010\versionadded{1.6}
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000011
Fred Drake5ccd4b22000-06-28 22:03:29 +000012The \module{curses.ascii} module supplies name constants for
13\ASCII{} characters and functions to test membership in various
14\ASCII{} character classes. The constants supplied are names for
15control characters as follows:
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000016
Fred Drake5ccd4b22000-06-28 22:03:29 +000017\begin{tableii}{l|l}{constant}{Name}{Meaning}
18 \lineii{NUL}{}
19 \lineii{SOH}{Start of heading, console interrupt}
20 \lineii{STX}{Start of text}
Thomas Woutersf8316632000-07-16 19:01:10 +000021 \lineii{ETX}{End of text}
Fred Drake5ccd4b22000-06-28 22:03:29 +000022 \lineii{EOT}{End of transmission}
23 \lineii{ENQ}{Enquiry, goes with \constant{ACK} flow control}
24 \lineii{ACK}{Acknowledgement}
25 \lineii{BEL}{Bell}
26 \lineii{BS}{Backspace}
27 \lineii{TAB}{Tab}
28 \lineii{HT}{Alias for \constant{TAB}: ``Horizontal tab''}
29 \lineii{LF}{Line feed}
30 \lineii{NL}{Alias for \constant{LF}: ``New line''}
31 \lineii{VT}{Vertical tab}
32 \lineii{FF}{Form feed}
33 \lineii{CR}{Carriage return}
34 \lineii{SO}{Shift-out, begin alternate character set}
35 \lineii{SI}{Shift-in, resume default character set}
36 \lineii{DLE}{Data-link escape}
37 \lineii{DC1}{XON, for flow control}
38 \lineii{DC2}{Device control 2, block-mode flow control}
39 \lineii{DC3}{XOFF, for flow control}
40 \lineii{DC4}{Device control 4}
41 \lineii{NAK}{Negative acknowledgement}
42 \lineii{SYN}{Synchronous idle}
43 \lineii{ETB}{End transmission block}
44 \lineii{CAN}{Cancel}
45 \lineii{EM}{End of medium}
46 \lineii{SUB}{Substitute}
47 \lineii{ESC}{Escape}
48 \lineii{FS}{File separator}
49 \lineii{GS}{Group separator}
50 \lineii{RS}{Record separator, block-mode terminator}
51 \lineii{US}{Unit separator}
52 \lineii{SP}{Space}
53 \lineii{DEL}{Delete}
54\end{tableii}
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000055
Eric S. Raymond83210262001-01-10 19:34:52 +000056Note that many of these have little practical significance in modern
57usage. The mnemonics derive from teleprinter conventions that predate
58digital computers.
Fred Drake5ccd4b22000-06-28 22:03:29 +000059
60The module supplies the following functions, patterned on those in the
61standard C library:
62
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000063
64\begin{funcdesc}{isalnum}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000065Checks for an \ASCII{} alphanumeric character; it is equivalent to
66\samp{isalpha(\var{c}) or isdigit(\var{c})}.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000067\end{funcdesc}
68
69\begin{funcdesc}{isalpha}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000070Checks for an \ASCII{} alphabetic character; it is equivalent to
71\samp{isupper(\var{c}) or islower(\var{c})}.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000072\end{funcdesc}
73
74\begin{funcdesc}{isascii}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000075Checks for a character value that fits in the 7-bit \ASCII{} set.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000076\end{funcdesc}
77
78\begin{funcdesc}{isblank}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000079Checks for an \ASCII{} whitespace character.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000080\end{funcdesc}
81
82\begin{funcdesc}{iscntrl}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000083Checks for an \ASCII{} control character (in the range 0x00 to 0x1f).
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000084\end{funcdesc}
85
86\begin{funcdesc}{isdigit}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000087Checks for an \ASCII{} decimal digit, \character{0} through
88\character{9}. This is equivalent to \samp{\var{c} in string.digits}.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000089\end{funcdesc}
90
91\begin{funcdesc}{isgraph}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000092Checks for \ASCII{} any printable character except space.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000093\end{funcdesc}
94
95\begin{funcdesc}{islower}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +000096Checks for an \ASCII{} lower-case character.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +000097\end{funcdesc}
98
99\begin{funcdesc}{isprint}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000100Checks for any \ASCII{} printable character including space.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000101\end{funcdesc}
102
103\begin{funcdesc}{ispunct}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000104Checks for any printable \ASCII{} character which is not a space or an
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000105alphanumeric character.
106\end{funcdesc}
107
108\begin{funcdesc}{isspace}{c}
Andrew M. Kuchling8694cc42000-12-26 16:09:37 +0000109Checks for \ASCII{} white-space characters; space, line feed,
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000110carriage return, form feed, horizontal tab, vertical tab.
111\end{funcdesc}
112
113\begin{funcdesc}{isupper}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000114Checks for an \ASCII{} uppercase letter.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000115\end{funcdesc}
116
117\begin{funcdesc}{isxdigit}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000118Checks for an \ASCII{} hexadecimal digit. This is equivalent to
119\samp{\var{c} in string.hexdigits}.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000120\end{funcdesc}
121
122\begin{funcdesc}{isctrl}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000123Checks for an \ASCII{} control character (ordinal values 0 to 31).
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000124\end{funcdesc}
125
126\begin{funcdesc}{ismeta}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000127Checks for a non-\ASCII{} character (ordinal values 0x80 and above).
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000128\end{funcdesc}
129
130These functions accept either integers or strings; when the argument
Fred Drake5ccd4b22000-06-28 22:03:29 +0000131is a string, it is first converted using the built-in function
132\function{ord()}.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000133
134Note that all these functions check ordinal bit values derived from the
135first character of the string you pass in; they do not actually know
136anything about the host machine's character encoding. For functions
137that know about the character encoding (and handle
Fred Drake5ccd4b22000-06-28 22:03:29 +0000138internationalization properly) see the \refmodule{string} module.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000139
140The following two functions take either a single-character string or
141integer byte value; they return a value of the same type.
142
143\begin{funcdesc}{ascii}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000144Return the ASCII value corresponding to the low 7 bits of \var{c}.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000145\end{funcdesc}
146
147\begin{funcdesc}{ctrl}{c}
148Return the control character corresponding to the given character
Fred Drake5ccd4b22000-06-28 22:03:29 +0000149(the character bit value is bitwise-anded with 0x1f).
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000150\end{funcdesc}
151
152\begin{funcdesc}{alt}{c}
153Return the 8-bit character corresponding to the given ASCII character
Fred Drake5ccd4b22000-06-28 22:03:29 +0000154(the character bit value is bitwise-ored with 0x80).
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000155\end{funcdesc}
156
157The following function takes either a single-character string or
Fred Drake5ccd4b22000-06-28 22:03:29 +0000158integer value; it returns a string.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000159
160\begin{funcdesc}{unctrl}{c}
Fred Drake5ccd4b22000-06-28 22:03:29 +0000161Return a string representation of the \ASCII{} character \var{c}. If
162\var{c} is printable, this string is the character itself. If the
163character is a control character (0x00-0x1f) the string consists of a
164caret (\character{\^}) followed by the corresponding uppercase letter.
165If the character is an \ASCII{} delete (0x7f) the string is
166\code{'\^{}?'}. If the character has its meta bit (0x80) set, the meta
167bit is stripped, the preceding rules applied, and
168\character{!} prepended to the result.
Andrew M. Kuchlingf57d7b92000-06-26 23:59:24 +0000169\end{funcdesc}
170
Fred Drake5ccd4b22000-06-28 22:03:29 +0000171\begin{datadesc}{controlnames}
172A 33-element string array that contains the \ASCII{} mnemonics for the
173thirty-two \ASCII{} control characters from 0 (NUL) to 0x1f (US), in
174order, plus the mnemonic \samp{SP} for the space character.
175\end{datadesc}