5836a818ec
This reverts commitb558ff043d
. This reverts commit4a11f20659
. The initial import commit failed to retain local changes made to readline's configure.in (and the commit message erroneously stated that there were no local changes that needed to be reapplied). Also the import caused a couple of build errors and a scattering of testsuite regressions throughout many arches. It's probably better to start over with this import, hopefully more carefully next time.
163 lines
4.6 KiB
C
163 lines
4.6 KiB
C
/* rldefs.h -- an attempt to isolate some of the system-specific defines
|
|
for readline. This should be included after any files that define
|
|
system-specific constants like _POSIX_VERSION or USG. */
|
|
|
|
/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
|
|
|
|
This file is part of the GNU Readline Library (Readline), a library
|
|
for reading lines of text with interactive input and history editing.
|
|
|
|
Readline is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Readline is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Readline. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#if !defined (_RLDEFS_H_)
|
|
#define _RLDEFS_H_
|
|
|
|
#if defined (HAVE_CONFIG_H)
|
|
# include "config.h"
|
|
#endif
|
|
|
|
#include "rlstdc.h"
|
|
|
|
#if defined (STRCOLL_BROKEN)
|
|
# undef HAVE_STRCOLL
|
|
#endif
|
|
|
|
#if defined (_POSIX_VERSION) && !defined (TERMIOS_MISSING)
|
|
# define TERMIOS_TTY_DRIVER
|
|
#else
|
|
# if defined (HAVE_TERMIO_H)
|
|
# define TERMIO_TTY_DRIVER
|
|
# else
|
|
# if !defined (__MINGW32__)
|
|
# define NEW_TTY_DRIVER
|
|
# else
|
|
# define NO_TTY_DRIVER
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
/* Posix macro to check file in statbuf for directory-ness.
|
|
This requires that <sys/stat.h> be included before this test. */
|
|
#if defined (S_IFDIR) && !defined (S_ISDIR)
|
|
# define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
|
|
#endif
|
|
|
|
/* Decide which flavor of the header file describing the C library
|
|
string functions to include and include it. */
|
|
|
|
#if defined (HAVE_STRING_H)
|
|
# include <string.h>
|
|
#else /* !HAVE_STRING_H */
|
|
# include <strings.h>
|
|
#endif /* !HAVE_STRING_H */
|
|
|
|
#if !defined (strchr) && !defined (__STDC__)
|
|
extern char *strchr (), *strrchr ();
|
|
#endif /* !strchr && !__STDC__ */
|
|
|
|
#if defined (PREFER_STDARG)
|
|
# include <stdarg.h>
|
|
#else
|
|
# if defined (PREFER_VARARGS)
|
|
# include <varargs.h>
|
|
# endif
|
|
#endif
|
|
|
|
#if defined (HAVE_STRCASECMP)
|
|
#define _rl_stricmp strcasecmp
|
|
#define _rl_strnicmp strncasecmp
|
|
#else
|
|
extern int _rl_stricmp PARAMS((char *, char *));
|
|
extern int _rl_strnicmp PARAMS((char *, char *, int));
|
|
#endif
|
|
|
|
#if defined (HAVE_STRPBRK) && !defined (HAVE_MULTIBYTE)
|
|
# define _rl_strpbrk(a,b) strpbrk((a),(b))
|
|
#else
|
|
extern char *_rl_strpbrk PARAMS((const char *, const char *));
|
|
#endif
|
|
|
|
#if !defined (emacs_mode)
|
|
# define no_mode -1
|
|
# define vi_mode 0
|
|
# define emacs_mode 1
|
|
#endif
|
|
|
|
#if !defined (RL_IM_INSERT)
|
|
# define RL_IM_INSERT 1
|
|
# define RL_IM_OVERWRITE 0
|
|
#
|
|
# define RL_IM_DEFAULT RL_IM_INSERT
|
|
#endif
|
|
|
|
/* If you cast map[key].function to type (Keymap) on a Cray,
|
|
the compiler takes the value of map[key].function and
|
|
divides it by 4 to convert between pointer types (pointers
|
|
to functions and pointers to structs are different sizes).
|
|
This is not what is wanted. */
|
|
#if defined (CRAY)
|
|
# define FUNCTION_TO_KEYMAP(map, key) (Keymap)((int)map[key].function)
|
|
# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)((int)(data))
|
|
#else
|
|
# define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)
|
|
# define KEYMAP_TO_FUNCTION(data) (rl_command_func_t *)(data)
|
|
#endif
|
|
|
|
#ifndef savestring
|
|
#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x))
|
|
#endif
|
|
|
|
/* Possible values for _rl_bell_preference. */
|
|
#define NO_BELL 0
|
|
#define AUDIBLE_BELL 1
|
|
#define VISIBLE_BELL 2
|
|
|
|
/* Definitions used when searching the line for characters. */
|
|
/* NOTE: it is necessary that opposite directions are inverses */
|
|
#define FTO 1 /* forward to */
|
|
#define BTO -1 /* backward to */
|
|
#define FFIND 2 /* forward find */
|
|
#define BFIND -2 /* backward find */
|
|
|
|
/* Possible values for the found_quote flags word used by the completion
|
|
functions. It says what kind of (shell-like) quoting we found anywhere
|
|
in the line. */
|
|
#define RL_QF_SINGLE_QUOTE 0x01
|
|
#define RL_QF_DOUBLE_QUOTE 0x02
|
|
#define RL_QF_BACKSLASH 0x04
|
|
#define RL_QF_OTHER_QUOTE 0x08
|
|
|
|
/* Default readline line buffer length. */
|
|
#define DEFAULT_BUFFER_SIZE 256
|
|
|
|
#if !defined (STREQ)
|
|
#define STREQ(a, b) (((a)[0] == (b)[0]) && (strcmp ((a), (b)) == 0))
|
|
#define STREQN(a, b, n) (((n) == 0) ? (1) \
|
|
: ((a)[0] == (b)[0]) && (strncmp ((a), (b), (n)) == 0))
|
|
#endif
|
|
|
|
#if !defined (FREE)
|
|
# define FREE(x) if (x) free (x)
|
|
#endif
|
|
|
|
#if !defined (SWAP)
|
|
# define SWAP(s, e) do { int t; t = s; s = e; e = t; } while (0)
|
|
#endif
|
|
|
|
/* CONFIGURATION SECTION */
|
|
#include "rlconf.h"
|
|
|
|
#endif /* !_RLDEFS_H_ */
|