annotate readline/chardefs.h @ 2369:5ece30fb2af6

[project @ 1996-10-11 23:47:45 by jwe]
author jwe
date Fri, 11 Oct 1996 23:47:46 +0000
parents 6548bc27329b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1432
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
1 /* chardefs.h -- Character definitions for readline. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
2
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
3 /* Copyright (C) 1994 Free Software Foundation, Inc.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
4
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
5 This file is part of the GNU Readline Library, a library for
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
6 reading lines of text with interactive input and history editing.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
7
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
8 The GNU Readline Library is free software; you can redistribute it
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
9 and/or modify it under the terms of the GNU General Public License
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
10 as published by the Free Software Foundation; either version 1, or
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
11 (at your option) any later version.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
12
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
13 The GNU Readline Library is distributed in the hope that it will be
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
14 useful, but WITHOUT ANY WARRANTY; without even the implied warranty
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
15 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
16 GNU General Public License for more details.
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
17
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
18 The GNU General Public License is often shipped with GNU software, and
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
19 is generally kept in a file called COPYING or LICENSE. If you do not
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
20 have a copy of the license, write to the Free Software Foundation,
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
21 675 Mass Ave, Cambridge, MA 02139, USA. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
22
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
23 #ifndef _CHARDEFS_H
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
24 #define _CHARDEFS_H
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
25
1464
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
26 #ifdef __cplusplus
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
27 extern "C" {
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
28 #endif
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
29
1432
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
30 #include <ctype.h>
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
31
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
32 #if defined (HAVE_STRING_H)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
33 # include <string.h>
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
34 #else
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
35 # include <strings.h>
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
36 #endif /* HAVE_STRING_H */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
37
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
38 #ifndef whitespace
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
39 #define whitespace(c) (((c) == ' ') || ((c) == '\t'))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
40 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
41
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
42 #ifdef CTRL
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
43 #undef CTRL
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
44 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
45
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
46 /* Some character stuff. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
47 #define control_character_threshold 0x020 /* Smaller than this is control. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
48 #define control_character_mask 0x1f /* 0x20 - 1 */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
49 #define meta_character_threshold 0x07f /* Larger than this is Meta. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
50 #define control_character_bit 0x40 /* 0x000000, must be off. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
51 #define meta_character_bit 0x080 /* x0000000, must be on. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
52 #define largest_char 255 /* Largest character value. */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
53
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
54 #define CTRL_CHAR(c) ((c) < control_character_threshold)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
55 #define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
56
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
57 #define CTRL(c) ((c) & control_character_mask)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
58 #define META(c) ((c) | meta_character_bit)
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
59
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
60 #define UNMETA(c) ((c) & (~meta_character_bit))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
61 #define UNCTRL(c) to_upper(((c)|control_character_bit))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
62
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
63 /* Old versions
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
64 #define lowercase_p(c) (((c) > ('a' - 1) && (c) < ('z' + 1)))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
65 #define uppercase_p(c) (((c) > ('A' - 1) && (c) < ('Z' + 1)))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
66 #define digit_p(c) ((c) >= '0' && (c) <= '9')
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
67 */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
68
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
69 #define lowercase_p(c) (islower(c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
70 #define uppercase_p(c) (isupper(c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
71 #define digit_p(x) (isdigit (x))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
72
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
73 #define pure_alphabetic(c) (lowercase_p(c) || uppercase_p(c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
74
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
75 /* Old versions
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
76 # define to_upper(c) (lowercase_p(c) ? ((c) - 32) : (c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
77 # define to_lower(c) (uppercase_p(c) ? ((c) + 32) : (c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
78 */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
79
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
80 #ifndef to_upper
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
81 # define to_upper(c) (islower(c) ? toupper(c) : (c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
82 # define to_lower(c) (isupper(c) ? tolower(c) : (c))
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
83 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
84
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
85 #ifndef digit_value
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
86 #define digit_value(x) ((x) - '0')
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
87 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
88
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
89 #ifndef NEWLINE
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
90 #define NEWLINE '\n'
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
91 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
92
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
93 #ifndef RETURN
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
94 #define RETURN CTRL('M')
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
95 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
96
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
97 #ifndef RUBOUT
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
98 #define RUBOUT 0x7f
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
99 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
100
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
101 #ifndef TAB
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
102 #define TAB '\t'
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
103 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
104
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
105 #ifdef ABORT_CHAR
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
106 #undef ABORT_CHAR
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
107 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
108 #define ABORT_CHAR CTRL('G')
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
109
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
110 #ifdef PAGE
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
111 #undef PAGE
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
112 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
113 #define PAGE CTRL('L')
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
114
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
115 #ifdef SPACE
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
116 #undef SPACE
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
117 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
118 #define SPACE ' ' /* XXX - was 0x20 */
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
119
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
120 #ifdef ESC
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
121 #undef ESC
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
122 #endif
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
123
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
124 #define ESC CTRL('[')
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
125
1464
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
126 #ifdef __cplusplus
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
127 }
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
128 #endif
6548bc27329b [project @ 1995-09-22 07:29:21 by jwe]
jwe
parents: 1432
diff changeset
129
1432
4c3d46b02f99 [project @ 1995-09-19 07:20:14 by jwe]
jwe
parents:
diff changeset
130 #endif /* _CHARDEFS_H */