📄 conf.heg
字号:
/* example RCS compile-time configuration */ /* $Id: conf.heg,v 1.8 1991/11/20 18:21:09 eggert Exp $ *//* * This example RCS compile-time configuration describes a host that conforms * to Standard C (1990) and Posix 1003.1-1990 and has GNU diff. * If you can't get conf.sh to work as described in the Makefile, * copy this file to conf.h and edit conf.h by hand; see README. */#define exitmain(n) return n /* how to exit from main() *//* #define _POSIX_SOURCE */ /* Define this if Posix + strict Standard C. */#include <errno.h>#include <stdio.h>#include <time.h>/* Comment out #include lines below that do not work. */#include <sys/types.h>#include <sys/stat.h>#include <dirent.h>#include <fcntl.h>#include <limits.h>#include <pwd.h>#include <signal.h>#include <stdlib.h>#include <string.h>/* #include <sys/mman.h> */#include <sys/wait.h>#include <unistd.h>#include <utime.h>/* #include <vfork.h> *//* Define the following symbols to be 1 or 0. */#define has_sys_dir_h 0 /* Does #include <sys/dir.h> work? */#define has_sys_param_h 0 /* Does #include <sys/param.h> work? */#define has_readlink 0 /* Does readlink() work? *//* #undef NAME_MAX */ /* Uncomment this if NAME_MAX is broken. */#if !defined(NAME_MAX) && !defined(_POSIX_NAME_MAX)# if has_sys_dir_h# include <sys/dir.h># endif# ifndef NAME_MAX# ifndef MAXNAMLEN# define MAXNAMLEN 14# endif# define NAME_MAX MAXNAMLEN# endif#endif#if !defined(PATH_MAX) && !defined(_POSIX_PATH_MAX)# if has_sys_param_h# include <sys/param.h># define included_sys_param_h 1# endif# ifndef PATH_MAX# ifndef MAXPATHLEN# define MAXPATHLEN 1024# endif# define PATH_MAX (MAXPATHLEN-1)# endif#endif#if has_readlink && !defined(MAXSYMLINKS)# if has_sys_param_h && !included_sys_param_h# include <sys/param.h># endif# ifndef MAXSYMLINKS# define MAXSYMLINKS 20 /* BSD; not standard yet */# endif#endif/* Comment out the keyword definitions below if the keywords work. *//* #define const *//* #define volatile *//* Comment out the typedefs below if the types are already declared. *//* Fix any uncommented typedefs that are wrong. *//* typedef int mode_t; *//* typedef int pid_t; *//* typedef int sig_atomic_t; *//* typedef unsigned size_t; *//* typedef int ssize_t; *//* typedef long time_t; *//* typedef int uid_t; *//* Define the following symbols to be 1 or 0. */#define has_prototypes 1 /* Do function prototypes work? */#define has_stdarg 1 /* Does <stdarg.h> work? */#define has_varargs 0 /* Does <varargs.h> work? */#define va_start_args 2 /* How many args does va_start() take? */#if has_prototypes# define P(params) params#else# define P(params) ()#endif#if has_stdarg# include <stdarg.h>#else# if has_varargs# include <varargs.h># else typedef char *va_list;# define va_dcl int va_alist;# define va_start(ap) ((ap) = (va_list)&va_alist)# define va_arg(ap,t) (((t*) ((ap)+=sizeof(t))) [-1])# define va_end(ap)# endif#endif#if va_start_args == 2# define vararg_start va_start#else# define vararg_start(ap,p) va_start(ap)#endif#define text_equals_binary_stdio 1 /* Does stdio treat text like binary? */#define text_work_stdio 0 /* Text i/o for working file, binary for RCS file? */#if text_equals_binary_stdio /* Text and binary i/o behave the same, or binary i/o does not work. */# define FOPEN_R "r"# define FOPEN_W "w"# define FOPEN_WPLUS "w+"#else /* Text and binary i/o behave differently. */ /* This is incompatible with Posix and Unix. */# define FOPEN_R "rb"# define FOPEN_W "wb"# define FOPEN_WPLUS "w+b"#endif#if text_work_stdio# define FOPEN_R_WORK "r"# define FOPEN_W_WORK "w"# define FOPEN_WPLUS_WORK "w+"#else# define FOPEN_R_WORK FOPEN_R# define FOPEN_W_WORK FOPEN_W# define FOPEN_WPLUS_WORK FOPEN_WPLUS#endif/* Define or comment out the following symbols as needed. */#define bad_fopen_wplus 0 /* Does fopen(f,FOPEN_WPLUS) fail to truncate f? */#define getlogin_is_secure 0 /* Is getlogin() secure? Usually it's not. */#define has_dirent 1 /* Do opendir(), readdir(), closedir() work? */#define has_fchmod 0 /* Does fchmod() work? */#define has_fputs 1 /* Does fputs() work? */#define has_ftruncate 0 /* Does ftruncate() work? */#define has_getuid 1 /* Does getuid() work? */#define has_getpwuid 1 /* Does getpwuid() work? */#define has_link 1 /* Does link() work? */#define has_memcmp 1 /* Does memcmp() work? */#define has_memcpy 1 /* Does memcpy() work? */#define has_memmove 1 /* Does memmove() work? */#define has_madvise 0 /* Does madvise() work? */#define has_mmap 0 /* Does mmap() work on regular files? */#define has_rename 1 /* Does rename() work? */#define bad_a_rename 0 /* Does rename(A,B) fail if A is unwritable? */#define bad_b_rename 0 /* Does rename(A,B) fail if B is unwritable? */#define VOID (void) /* 'VOID e;' discards the value of an expression 'e'. */#define has_seteuid 0 /* Does seteuid() work? See README. */#define has_setuid 1 /* Does setuid() exist? */#define has_signal 1 /* Does signal() work? */#define signal_args P((int)) /* arguments of signal handlers */#define signal_type void /* type returned by signal handlers */#define sig_zaps_handler 0 /* Must a signal handler reinvoke signal()? */#define has_sigaction 1 /* Does struct sigaction work? */#define has_sigblock 0 /* Does sigblock() work? *//* #define sigmask(s) (1 << ((s)-1)) */ /* Yield mask for signal number. */#define has_sys_siglist 0 /* Does sys_siglist[] work? */typedef ssize_t fread_type; /* type returned by fread() and fwrite() */typedef size_t freadarg_type; /* type of their size arguments */typedef void *malloc_type; /* type returned by malloc() */#define has_getcwd 1 /* Does getcwd() work? */#define has_getwd 0 /* Does getwd() work? */#define has_mktemp 0 /* Does mktemp() work? */#define has_NFS 0 /* Might NFS be used? *//* #define strchr index */ /* Use old-fashioned name for strchr()? *//* #define strrchr rindex */ /* Use old-fashioned name for strrchr()? */#define bad_unlink 0 /* Does unlink() fail on unwritable files? */#define has_vfork 0 /* Does vfork() work? */#define has_fork 1 /* Does fork() work? */#define has_spawn 0 /* Does spawn*() work? */#define has_wait 1 /* Does wait() work? */#define has_waitpid 1 /* Does waitpid() work? */#define RCS_SHELL "/bin/sh" /* shell to run RCS subprograms */#define has_vfprintf 1 /* Does vfprintf() work? */#define has__doprintf 0 /* Does _doprintf() work? */#define has__doprnt 0 /* Does _doprnt() work? *//* #undef EXIT_FAILURE */ /* Uncomment this if EXIT_FAILURE is broken. */#define large_memory 0 /* Can main memory hold entire RCS files? *//* #undef ULONG_MAX */ /* Uncomment this if ULONG_MAX is broken (e.g. < 0). *//* struct utimbuf { time_t actime, modtime; }; */ /* Uncomment this if needed. */#define CO "/usr/local/bin/co" /* name of 'co' program */#define COMPAT2 0 /* Are version 2 files supported? */#define DATEFORM "%.2d.%.2d.%.2d.%.2d.%.2d.%.2d" /* e.g. 01.01.01.01.01.01 */#define DIFF "/usr/local/bin/diff" /* name of 'diff' program */#define DIFF3 "/usr/local/bin/diff3" /* name of 'diff3' program */#define DIFF3_BIN 1 /* Is diff3 user-visible (not the /usr/lib auxiliary)? */#define DIFF_FLAGS , "-an" /* Make diff output suitable for RCS. */#define DIFF_L 1 /* Does diff -L work? */#define DIFF_SUCCESS 0 /* DIFF status if no differences are found */#define DIFF_FAILURE 1 /* DIFF status if differences are found */#define DIFF_TROUBLE 2 /* DIFF status if trouble */#define ED "/bin/ed" /* name of 'ed' program (used only if !DIFF3_BIN) */#define MERGE "/usr/local/bin/merge" /* name of 'merge' program */#define TMPDIR "/tmp" /* default directory for temporary files */#define SLASH '/' /* principal pathname separator */#define SLASHes '/' /* `case SLASHes:' labels all pathname separators */#define isSLASH(c) ((c) == SLASH) /* Is arg a pathname separator? */#define ROOTPATH(p) isSLASH((p)[0]) /* Is p an absolute pathname? */#define X_DEFAULT ",v/" /* default value for -x option */#define DIFF_ABSOLUTE 1 /* Is ROOTPATH(DIFF) true? */#define ALL_ABSOLUTE 1 /* Are all subprograms absolute pathnames? */#define SENDMAIL "/bin/mail" /* how to send mail */#define TZ_must_be_set 0 /* Must TZ be set for gmtime() to work? *//* Adjust the following declarations as needed. */#if __GNUC__ && !__STRICT_ANSI__# define exiting volatile /* GCC extension: function cannot return */#else# define exiting#endif#if has_ftruncate int ftruncate P((int,off_t));#endif/* <sys/mman.h> */#if has_madvise int madvise P((caddr_t,size_t,int));#endif#if has_mmap caddr_t mmap P((caddr_t,size_t,int,int,int,off_t)); int munmap P((caddr_t,size_t));#endif/* Posix (ISO/IEC 9945-1: 1990 / IEEE Std 1003.1-1990) *//* These definitions are for the benefit of non-Posix hosts, and *//* Posix hosts that have Standard C compilers but traditional include files. *//* Unfortunately, mixed-up hosts are all too common. *//* <fcntl.h> */#ifdef F_DUPFD int fcntl P((int,int,...));#else int dup2 P((int,int));#endif#ifndef O_BINARY /* some non-Posix hosts need O_BINARY */# define O_BINARY 0 /* no effect on Posix */#endif#ifdef O_CREAT# define open_can_creat 1#else# define open_can_creat 0# define O_RDONLY 0# define O_WRONLY 1# define O_RDWR 2# define O_CREAT 01000# define O_TRUNC 02000 int creat P((char const*,mode_t));#endif#ifndef O_EXCL# define O_EXCL 0#endif/* <pwd.h> */#if has_getpwuid struct passwd *getpwuid P((uid_t));#endif/* <signal.h> */#if has_sigaction int sigaction P((int,struct sigaction const*,struct sigaction*)); int sigaddset P((sigset_t*,int)); int sigemptyset P((sigset_t*));#else#if has_sigblock /* BSD */ int sigblock P((int)); int sigmask P((int)); int sigsetmask P((int));#endif#endif/* <stdio.h> */FILE *fdopen P((int,char const*));int fileno P((FILE*));/* <sys/stat.h> */int chmod P((char const*,mode_t));int fstat P((int,struct stat*));int stat P((char const*,struct stat*));mode_t umask P((mode_t));#if has_fchmod int fchmod P((int,mode_t));#endif#ifndef S_IRUSR# ifdef S_IREAD# define S_IRUSR S_IREAD# else# define S_IRUSR 0400# endif# ifdef S_IWRITE# define S_IWUSR S_IWRITE# else# define S_IWUSR (S_IRUSR/2)# endif#endif#ifndef S_IRGRP# if has_getuid# define S_IRGRP (S_IRUSR / 0010)# define S_IWGRP (S_IWUSR / 0010)# define S_IROTH (S_IRUSR / 0100)# define S_IWOTH (S_IWUSR / 0100)# else /* single user OS -- not Posix or Unix */# define S_IRGRP 0# define S_IWGRP 0# define S_IROTH 0# define S_IWOTH 0# endif#endif#ifndef S_ISREG# define S_ISREG(n) (((n) & S_IFMT) == S_IFREG)#endif/* <sys/wait.h> */#if has_wait pid_t wait P((int*));#endif#ifndef WEXITSTATUS# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)# undef WIFEXITED /* Avoid 4.3BSD incompatibility with Posix. */#endif#ifndef WIFEXITED# define WIFEXITED(stat_val) (!((stat_val) & 255))#endif/* <unistd.h> */char *getlogin P((void));int close P((int));int isatty P((int));int link P((char const*,char const*));int open P((char const*,int,...));int unlink P((char const*));/* int _filbuf P((FILE*)); *//* keeps lint quiet in traditional C *//* int _flsbuf P((int,FILE*)); *//* keeps lint quiet in traditional C */long pathconf P((char const*,int));ssize_t write P((int,void const*,size_t));#ifndef STDIN_FILENO# define STDIN_FILENO 0# define STDOUT_FILENO 1# define STDERR_FILENO 2#endif#if has_fork# if !has_vfork# undef vfork# define vfork fork# endif pid_t vfork P((void)); /* vfork is nonstandard but faster */#endif#if has_getcwd || !has_getwd char *getcwd P((char*,size_t));#else char *getwd P((char*));#endif#if has_getuid uid_t getuid P((void));#endif#if has_readlink ssize_t readlink P((char const*,char*,size_t)); /* BSD; not standard yet */#endif#if has_setuid# if !has_seteuid# undef seteuid# define seteuid setuid# endif int seteuid P((uid_t)); uid_t geteuid P((void));#endif#if has_spawn int spawnv P((int,char const*,char*const*));# if ALL_ABSOLUTE# define spawn_RCS spawnv# else# define spawn_RCS spawnvp int spawnvp P((int,char const*,char*const*));# endif#else int execv P((char const*,char*const*));# if ALL_ABSOLUTE# define exec_RCS execv# else# define exec_RCS execvp int execvp P((char const*,char*const*));# endif#endif/* utime.h */int utime P((char const*,struct utimbuf const*));/* Standard C library *//* These definitions are for the benefit of hosts that have *//* traditional C include files, possibly with Standard C compilers. *//* Unfortunately, mixed-up hosts are all too common. *//* <errno.h> */extern int errno;/* <limits.h> */#ifndef ULONG_MAX /* This does not work in #ifs, but it's good enough for us. */# define ULONG_MAX ((unsigned long)-1)#endif/* <signal.h> */#if has_signal signal_type (*signal P((int,signal_type(*)signal_args)))signal_args;#endif/* <stdio.h> */FILE *fopen P((char const*,char const*));fread_type fread P((void*,freadarg_type,freadarg_type,FILE*));fread_type fwrite P((void const*,freadarg_type,freadarg_type,FILE*));int fclose P((FILE*));int feof P((FILE*));int ferror P((FILE*));int fflush P((FILE*));int fprintf P((FILE*,char const*,...));int fputs P((char const*,FILE*));int fseek P((FILE*,long,int));int printf P((char const*,...));int rename P((char const*,char const*));int sprintf P((char*,char const*,...));long ftell P((FILE*));void clearerr P((FILE*));void perror P((char const*));#ifndef L_tmpnam# define L_tmpnam 32 /* power of 2 > sizeof("/usr/tmp/xxxxxxxxxxxxxxx") */#endif#ifndef SEEK_SET# define SEEK_SET 0#endif#if has_mktemp char *mktemp P((char*)); /* traditional */#else char *tmpnam P((char*));#endif#if has_vfprintf int vfprintf P((FILE*,char const*,va_list));#else#if has__doprintf void _doprintf P((FILE*,char const*,va_list)); /* Minix */#else void _doprnt P((char const*,va_list,FILE*)); /* BSD */#endif#endif/* <stdlib.h> */char *getenv P((char const*));exiting void _exit P((int));exiting void exit P((int));malloc_type malloc P((size_t));malloc_type realloc P((malloc_type,size_t));void free P((malloc_type));#ifndef EXIT_FAILURE# define EXIT_FAILURE 1#endif#ifndef EXIT_SUCCESS# define EXIT_SUCCESS 0#endif#if !has_fork && !has_spawn int system P((char const*));#endif/* <string.h> */char *strcpy P((char*,char const*));char *strchr P((char const*,int));char *strrchr P((char const*,int));int memcmp P((void const*,void const*,size_t));int strcmp P((char const*,char const*));size_t strlen P((char const*));void *memcpy P((void*,void const*,size_t));#if has_memmove void *memmove P((void*,void const*,size_t));#endif/* <time.h> */time_t time P((time_t*));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -