Imported readline 6.2, and upstream patch 001.
[deliverable/binutils-gdb.git] / readline / rldefs.h
CommitLineData
d60d9f65
SS
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
cc88a640 5/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
d60d9f65 6
cc88a640
JK
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.
d60d9f65 9
cc88a640 10 Readline is free software: you can redistribute it and/or modify
d60d9f65 11 it under the terms of the GNU General Public License as published by
cc88a640
JK
12 the Free Software Foundation, either version 3 of the License, or
13 (at your option) any later version.
d60d9f65 14
cc88a640
JK
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.
d60d9f65 19
cc88a640
JK
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*/
d60d9f65
SS
23
24#if !defined (_RLDEFS_H_)
25#define _RLDEFS_H_
26
27#if defined (HAVE_CONFIG_H)
28# include "config.h"
29#endif
30
9255ee31
EZ
31#include "rlstdc.h"
32
cc88a640
JK
33#if defined (STRCOLL_BROKEN)
34# undef HAVE_STRCOLL
35#endif
36
5bdf8622 37#if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
d60d9f65
SS
38# define TERMIOS_TTY_DRIVER
39#else
40# if defined (HAVE_TERMIO_H)
41# define TERMIO_TTY_DRIVER
42# else
5bdf8622
DJ
43# if !defined (__MINGW32__)
44# define NEW_TTY_DRIVER
45# else
46# define NO_TTY_DRIVER
47# endif
d60d9f65
SS
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__)
67extern 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
9255ee31
EZ
82extern int _rl_stricmp PARAMS((char *, char *));
83extern int _rl_strnicmp PARAMS((char *, char *, int));
84#endif
85
5bdf8622 86#if defined (HAVE_STRPBRK) && !defined (HAVE_MULTIBYTE)
9255ee31
EZ
87# define _rl_strpbrk(a,b) strpbrk((a),(b))
88#else
89extern char *_rl_strpbrk PARAMS((const char *, const char *));
d60d9f65
SS
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
9255ee31
EZ
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
d60d9f65
SS
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)
9255ee31 112# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data))
d60d9f65
SS
113#else
114# define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
9255ee31 115# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data)
d60d9f65
SS
116#endif
117
118#ifndef savestring
9255ee31 119#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
d60d9f65
SS
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. */
9255ee31
EZ
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
d60d9f65
SS
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))
1b17e766
EZ
147#define STREQN(a, b, n) (((n) == 0) ? (1) \
148 : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
d60d9f65
SS
149#endif
150
151#if !defined (FREE)
152# define FREE(x) if (x) free (x)
153#endif
154
9255ee31
EZ
155#if !defined (SWAP)
156# define SWAP(s, e) do { int t; t = s; s = e; e = t; } while (0)
157#endif
158
d60d9f65
SS
159/* CONFIGURATION SECTION */
160#include "rlconf.h"
161
162#endif /* !_RLDEFS_H_ */
This page took 0.488124 seconds and 4 git commands to generate.