📄 rldefs.h
字号:
/* 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,1989 Free Software Foundation, Inc. This file contains the Readline Library (the Library), a set of routines for providing Emacs style line input to programs that ask for it. The Library 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 1, or (at your option) any later version. The Library 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. The GNU General Public License is often shipped with GNU software, and is generally kept in a file called COPYING or LICENSE. If you do not have a copy of the license, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */#if !defined (_RLDEFS_H)#define _RLDEFS_H#if defined (HAVE_CONFIG_H)# include "config.h"#endif#if !defined (PRAGMA_ALLOCA)# include "memalloc.h"#endif#define NEW_TTY_DRIVER#define HAVE_BSD_SIGNALS/* #define USE_XON_XOFF */#if defined (__linux__) || defined (HAVE_TERMCAP_H)# include <termcap.h>#endif /* __linux__ || HAVE_TERMCAP_H *//* Some USG machines have BSD signal handling (sigblock, sigsetmask, etc.) */#if defined (USG) && !defined (hpux)# undef HAVE_BSD_SIGNALS#endif/* System V machines use termio. */#if !defined (_POSIX_VERSION)# if defined (USG) || defined (hpux) || defined (Xenix) || defined (sgi) || \ defined (DGUX) || defined (HAVE_TERMIO_H)# undef NEW_TTY_DRIVER# define TERMIO_TTY_DRIVER# include <termio.h># if !defined (TCOON)# define TCOON 1# endif# endif /* USG || hpux || Xenix || sgi || DUGX || HAVE_TERMIO_H */#endif /* !_POSIX_VERSION *//* Posix systems use termios and the Posix signal functions. */#if defined (_POSIX_VERSION)# if !defined (TERMIOS_MISSING)# undef NEW_TTY_DRIVER# define TERMIOS_TTY_DRIVER# include <termios.h># endif /* !TERMIOS_MISSING */# define HAVE_POSIX_SIGNALS# if !defined (O_NDELAY)# define O_NDELAY O_NONBLOCK /* Posix-style non-blocking i/o */# endif /* O_NDELAY */#endif /* _POSIX_VERSION *//* System V.3 machines have the old 4.1 BSD `reliable' signal interface. */#if !defined (HAVE_BSD_SIGNALS) && !defined (HAVE_POSIX_SIGNALS)# if defined (USGr3) && !defined (XENIX_22)# if !defined (HAVE_USG_SIGHOLD)# define HAVE_USG_SIGHOLD# endif /* !HAVE_USG_SIGHOLD */# endif /* USGr3 && !XENIX_22 */#endif /* !HAVE_BSD_SIGNALS && !HAVE_POSIX_SIGNALS *//* Other (BSD) machines use sgtty. */#if defined (NEW_TTY_DRIVER)# include <sgtty.h>#endif#if !defined (SHELL) && (defined (_POSIX_VERSION) || defined (USGr3))# if !defined (HAVE_DIRENT_H)# define HAVE_DIRENT_H# endif /* !HAVE_DIRENT_H */#endif /* !SHELL && (_POSIX_VERSION || USGr3) */#if defined (HAVE_DIRENT_H)# include <dirent.h># define D_NAMLEN(d) strlen ((d)->d_name)#else /* !HAVE_DIRENT_H */# define D_NAMLEN(d) ((d)->d_namlen)# if defined (USG)# if defined (Xenix)# include <sys/ndir.h># else /* !Xenix (but USG...) */# include "ndir.h"# endif /* !Xenix */# else /* !USG */# include <sys/dir.h># endif /* !USG */# if !defined (dirent)# define dirent direct# endif /* !dirent */#endif /* !HAVE_DIRENT_H */#if defined (USG) && defined (TIOCGWINSZ) && !defined (Linux)# if defined (HAVE_SYS_STREAM_H)# include <sys/stream.h># endif /* HAVE_SYS_STREAM_H */# if defined (HAVE_SYS_PTEM_H)# include <sys/ptem.h># endif /* HAVE_SYS_PTEM_H */# if defined (HAVE_SYS_PTE_H)# include <sys/pte.h># endif /* HAVE_SYS_PTE_H */#endif /* USG && TIOCGWINSZ && !Linux *//* 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 (USG) || defined (NeXT)# if !defined (HAVE_STRING_H)# define HAVE_STRING_H# endif /* !HAVE_STRING_H */#endif /* USG || NeXT */#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 (HAVE_VARARGS_H)# include <varargs.h>#endif /* HAVE_VARARGS_H *//* This is needed to include support for TIOCGWINSZ and window resizing. */#if defined (OSF1) || defined (BSD386) || defined (NetBSD) || \ defined (__BSD_4_4__) || defined (FreeBSD) || defined (_386BSD) || \ defined (AIX)# define GWINSZ_IN_SYS_IOCTL#endif/* Define _POSIX_VDISABLE if we are not using the `new' tty driver and it is not already defined. It is used both to determine if a special character is disabled and to disable certain special characters. Posix systems should set to 0, USG systems to -1. */#if !defined (NEW_TTY_DRIVER) && !defined (_POSIX_VDISABLE)# if defined (_SVR4_VDISABLE)# define _POSIX_VDISABLE _SVR4_VDISABLE# else# if defined (_POSIX_VERSION)# define _POSIX_VDISABLE 0# else /* !_POSIX_VERSION */# define _POSIX_VDISABLE -1# endif /* !_POSIX_VERSION */# endif /* !_SVR4_VDISABLE */#endif /* !NEW_TTY_DRIVER && !_POSIX_VDISABLE */#if !defined (emacs_mode)# define no_mode -1# define vi_mode 0# define emacs_mode 1#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) (Function *)((int)(data))#else# define FUNCTION_TO_KEYMAP(map, key) (Keymap)(map[key].function)# define KEYMAP_TO_FUNCTION(data) (Function *)(data)#endif#ifndef savestringextern char *xmalloc ();#define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))#endif/* Possible values for _rl_bell_preference. */#define NO_BELL 0#define AUDIBLE_BELL 1#define VISIBLE_BELL 2/* CONFIGURATION SECTION */#include "rlconf.h"#endif /* !_RLDEFS_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -