Annotation of embedaddon/readline/rldefs.h, revision 1.1.1.1
1.1 misho 1: /* rldefs.h -- an attempt to isolate some of the system-specific defines
2: for readline. This should be included after any files that define
3: system-specific constants like _POSIX_VERSION or USG. */
4:
5: /* Copyright (C) 1987-2011 Free Software Foundation, Inc.
6:
7: This file is part of the GNU Readline Library (Readline), a library
8: for reading lines of text with interactive input and history editing.
9:
10: Readline is free software: you can redistribute it and/or modify
11: it under the terms of the GNU General Public License as published by
12: the Free Software Foundation, either version 3 of the License, or
13: (at your option) any later version.
14:
15: Readline is distributed in the hope that it will be useful,
16: but WITHOUT ANY WARRANTY; without even the implied warranty of
17: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18: GNU General Public License for more details.
19:
20: You should have received a copy of the GNU General Public License
21: along with Readline. If not, see <http://www.gnu.org/licenses/>.
22: */
23:
24: #if !defined (_RLDEFS_H_)
25: #define _RLDEFS_H_
26:
27: #if defined (HAVE_CONFIG_H)
28: # include "config.h"
29: #endif
30:
31: #include "rlstdc.h"
32:
33: #if defined (STRCOLL_BROKEN)
34: # undef HAVE_STRCOLL
35: #endif
36:
37: #if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
38: # define TERMIOS_TTY_DRIVER
39: #else
40: # if defined (HAVE_TERMIO_H)
41: # define TERMIO_TTY_DRIVER
42: # else
43: # if !defined (__MINGW32__)
44: # define NEW_TTY_DRIVER
45: # else
46: # define NO_TTY_DRIVER
47: # endif
48: # endif
49: #endif
50:
51: /* Posix macro to check file in statbuf for directory-ness.
52: This requires that <sys/stat.h> be included before this test. */
53: #if defined (S_IFDIR) && !defined (S_ISDIR)
54: # define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
55: #endif
56:
57: /* Decide which flavor of the header file describing the C library
58: string functions to include and include it. */
59:
60: #if defined (HAVE_STRING_H)
61: # include <string.h>
62: #else /* !HAVE_STRING_H */
63: # include <strings.h>
64: #endif /* !HAVE_STRING_H */
65:
66: #if !defined (strchr) && !defined (__STDC__)
67: extern char *strchr (), *strrchr ();
68: #endif /* !strchr && !__STDC__ */
69:
70: #if defined (PREFER_STDARG)
71: # include <stdarg.h>
72: #else
73: # if defined (PREFER_VARARGS)
74: # include <varargs.h>
75: # endif
76: #endif
77:
78: #if defined (HAVE_STRCASECMP)
79: #define _rl_stricmp strcasecmp
80: #define _rl_strnicmp strncasecmp
81: #else
82: extern int _rl_stricmp PARAMS((const char *, const char *));
83: extern int _rl_strnicmp PARAMS((const char *, const char *, int));
84: #endif
85:
86: #if defined (HAVE_STRPBRK) && !defined (HAVE_MULTIBYTE)
87: # define _rl_strpbrk(a,b) strpbrk((a),(b))
88: #else
89: extern char *_rl_strpbrk PARAMS((const char *, const char *));
90: #endif
91:
92: #if !defined (emacs_mode)
93: # define no_mode -1
94: # define vi_mode 0
95: # define emacs_mode 1
96: #endif
97:
98: #if !defined (RL_IM_INSERT)
99: # define RL_IM_INSERT 1
100: # define RL_IM_OVERWRITE 0
101: #
102: # define RL_IM_DEFAULT RL_IM_INSERT
103: #endif
104:
105: /* If you cast map[key].function to type (Keymap) on a Cray,
106: the compiler takes the value of map[key].function and
107: divides it by 4 to convert between pointer types (pointers
108: to functions and pointers to structs are different sizes).
109: This is not what is wanted. */
110: #if defined (CRAY)
111: # define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function)
112: # define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data))
113: #else
114: # define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
115: # define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data)
116: #endif
117:
118: #ifndef savestring
119: #define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
120: #endif
121:
122: /* Possible values for _rl_bell_preference. */
123: #define NO_BELL 0
124: #define AUDIBLE_BELL 1
125: #define VISIBLE_BELL 2
126:
127: /* Definitions used when searching the line for characters. */
128: /* NOTE: it is necessary that opposite directions are inverses */
129: #define FTO 1 /* forward to */
130: #define BTO -1 /* backward to */
131: #define FFIND 2 /* forward find */
132: #define BFIND -2 /* backward find */
133:
134: /* Possible values for the found_quote flags word used by the completion
135: functions. It says what kind of (shell-like) quoting we found anywhere
136: in the line. */
137: #define RL_QF_SINGLE_QUOTE 0x01
138: #define RL_QF_DOUBLE_QUOTE 0x02
139: #define RL_QF_BACKSLASH 0x04
140: #define RL_QF_OTHER_QUOTE 0x08
141:
142: /* Default readline line buffer length. */
143: #define DEFAULT_BUFFER_SIZE 256
144:
145: #if !defined (STREQ)
146: #define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
147: #define STREQN(a, b, n) (((n) == 0) ? (1) \
148: : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
149: #endif
150:
151: #if !defined (RL_STRLEN)
152: # define RL_STRLEN(s) (((s) && (s)[0]) ? ((s)[1] ? ((s)[2] ? strlen(s) : 2) : 1) : 0)
153: #endif
154:
155: #if !defined (FREE)
156: # define FREE(x) if (x) free (x)
157: #endif
158:
159: #if !defined (SWAP)
160: # define SWAP(s, e) do { int t; t = s; s = e; e = t; } while (0)
161: #endif
162:
163: /* CONFIGURATION SECTION */
164: #include "rlconf.h"
165:
166: #endif /* !_RLDEFS_H_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>