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>