]> git.ipfire.org Git - thirdparty/bash.git/blame - lib/readline/rldefs.h
Imported from ../bash-2.05.tar.gz.
[thirdparty/bash.git] / lib / readline / rldefs.h
CommitLineData
726f6388
JA
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,1989 Free Software Foundation, Inc.
6
7 This file contains the Readline Library (the Library), a set of
8 routines for providing Emacs style line input to programs that ask
9 for it.
10
11 The Library is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
bb70624e 13 the Free Software Foundation; either version 2, or (at your option)
726f6388
JA
14 any later version.
15
16 The Library is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
20
21 The GNU General Public License is often shipped with GNU software, and
22 is generally kept in a file called COPYING or LICENSE. If you do not
23 have a copy of the license, write to the Free Software Foundation,
bb70624e 24 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
726f6388 25
ccc6cda3
JA
26#if !defined (_RLDEFS_H_)
27#define _RLDEFS_H_
726f6388
JA
28
29#if defined (HAVE_CONFIG_H)
30# include "config.h"
31#endif
32
28ef6c31
JA
33#include "rlstdc.h"
34
ccc6cda3
JA
35#if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
36# define TERMIOS_TTY_DRIVER
37#else
38# if defined (HAVE_TERMIO_H)
726f6388 39# define TERMIO_TTY_DRIVER
ccc6cda3
JA
40# else
41# define NEW_TTY_DRIVER
42# endif
726f6388
JA
43#endif
44
726f6388
JA
45/* Posix macro to check file in statbuf for directory-ness.
46 This requires that <sys/stat.h> be included before this test. */
47#if defined (S_IFDIR) && !defined (S_ISDIR)
48# define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
49#endif
50
51/* Decide which flavor of the header file describing the C library
52 string functions to include and include it. */
53
726f6388
JA
54#if defined (HAVE_STRING_H)
55# include <string.h>
56#else /* !HAVE_STRING_H */
57# include <strings.h>
58#endif /* !HAVE_STRING_H */
59
60#if !defined (strchr) && !defined (__STDC__)
61extern char *strchr (), *strrchr ();
62#endif /* !strchr && !__STDC__ */
63
ccc6cda3
JA
64#if defined (PREFER_STDARG)
65# include <stdarg.h>
66#else
67# if defined (PREFER_VARARGS)
68# include <varargs.h>
69# endif
726f6388
JA
70#endif
71
ccc6cda3
JA
72#if defined (HAVE_STRCASECMP)
73#define _rl_stricmp strcasecmp
74#define _rl_strnicmp strncasecmp
75#else
28ef6c31
JA
76extern int _rl_stricmp __P((char *, char *);
77extern int _rl_strnicmp __P((char *, char *));
ccc6cda3 78#endif
726f6388
JA
79
80#if !defined (emacs_mode)
81# define no_mode -1
82# define vi_mode 0
83# define emacs_mode 1
84#endif
85
86/* If you cast map[key].function to type (Keymap) on a Cray,
87 the compiler takes the value of map[key].function and
88 divides it by 4 to convert between pointer types (pointers
89 to functions and pointers to structs are different sizes).
90 This is not what is wanted. */
91#if defined (CRAY)
92# define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function)
28ef6c31 93# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data))
726f6388
JA
94#else
95# define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
28ef6c31 96# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data)
726f6388
JA
97#endif
98
99#ifndef savestring
28ef6c31 100extern char *xmalloc __P((int));
726f6388
JA
101#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
102#endif
103
104/* Possible values for _rl_bell_preference. */
105#define NO_BELL 0
106#define AUDIBLE_BELL 1
107#define VISIBLE_BELL 2
108
ccc6cda3
JA
109/* Definitions used when searching the line for characters. */
110/* NOTE: it is necessary that opposite directions are inverses */
111#define FTO 1 /* forward to */
112#define BTO -1 /* backward to */
113#define FFIND 2 /* forward find */
114#define BFIND -2 /* backward find */
115
116/* Possible values for the found_quote flags word used by the completion
117 functions. It says what kind of (shell-like) quoting we found anywhere
118 in the line. */
119#define RL_QF_SINGLE_QUOTE 0x1
120#define RL_QF_DOUBLE_QUOTE 0x2
121#define RL_QF_BACKSLASH 0x4
122
123/* Default readline line buffer length. */
124#define DEFAULT_BUFFER_SIZE 256
125
126#if !defined (STREQ)
127#define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
bb70624e
JA
128#define STREQN(a, b, n) (((n) == 0) ? (1) \
129 : ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
ccc6cda3
JA
130#endif
131
132#if !defined (FREE)
133# define FREE(x) if (x) free (x)
134#endif
135
726f6388
JA
136/* CONFIGURATION SECTION */
137#include "rlconf.h"
138
ccc6cda3 139#endif /* !_RLDEFS_H_ */