📄 jove.h
字号:
/*************************************************************************** * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne. JOVE * * is provided to you without charge, and with no warranty. You may give * * away copies of JOVE, including sources, provided that this notice is * * included in all the files. * ***************************************************************************//* jove.h header file to be included by EVERYONE */#include <setjmp.h>#ifndef TUNED# include "tune.h"#endif#ifndef MAC# include <sys/types.h># include <string.h>#else# include <types.h>#endif/* proto: macro to allow us to prototype any function declaration * without upsetting old compilers. */#ifdef REALSTDC# define USE_PROTOTYPES 1#endif#ifdef USE_PROTOTYPES# define proto(x) x# ifdef NO_PTRPROTO /* on these systems, a prototype cannot be used for a pointer to function */# define ptrproto(x) ()# else# define ptrproto(x) x# endif#else# define proto(x) ()# define ptrproto(x) ()#endif/* There are two ways to handle functions with a variable number of args. * The old portable way uses varargs.h. The way sanctioned by ANSI X3J11 * uses stdarg.h. */#ifdef REALSTDC#define STDARGS 1# define va_init(ap, parmN) { va_start((ap), (parmN)); }#else# define va_init(ap, parmN) { va_start((ap)); }#endif/* ANSI Goodies and their substitutes * * const: readonly type qualifier * * volatile: type qualifier indicating one of two kinds of magic. * 1. This object may be modified by an event unknown to the implementation * (eg. asynchronous signal or memory-mapped I/O device). * 2. This automatic variable might be modified between a setjmp() * and a longjmp(), and we wish it to have the correct value after * the longjmp(). This second meaning is an X3J11 abomination. * So far, only the second meaning is used. * * UnivPtr: universal pointer type * * UnivConstPtr: universal pointer to const */#ifdef REALSTDC typedef void *UnivPtr; typedef const void *UnivConstPtr;#else /* !REALSTDC */# ifndef const# define const /* Only in ANSI C. Pity */# endif# ifndef volatile# define volatile# endif typedef char *UnivPtr; typedef const char *UnivConstPtr;#endif /* !REALSTDC *//* According to the ANSI standard for C, any library routine may * be defined as a macro with parameters. In order to prevent * the expansion of this macro in a declaration of the routine, * ANSI suggests parenthesizing the identifier. This is a reasonable * and legal approach, even for K&R C. * * A bug in the MIPS compiler used on MIPS, IRIS, and probably other * MIPS R[23]000 based systems, causes the compiler to reject * these declarations (at least at the current time, 1989 August). * To avoid this bug, we conditionally define and use UNMACRO. */#ifdef mips# define UNMACRO(proc) proc#else# define UNMACRO(proc) (proc)#endif/* Since we don't use stdio.h, we may have to define NULL and EOF */#ifndef NULL# define NULL 0#endif#ifndef EOF#define EOF (-1)#endif#define private statictypedef int bool;#define NO 0#define YES 1#define FALSE 0#define TRUE 1#define OFF 0#define ON 1/* typedef structure definitions */#ifdef IPROCStypedef struct process Process;#endiftypedef struct window Window;typedef struct position Bufpos;typedef struct mark Mark;typedef struct buffer Buffer;typedef struct line Line;typedef struct iobuf IOBUF;#include "buf.h"#include "wind.h"#include "io.h"#include "dataobj.h"#include "keymaps.h"#include "argcount.h"#include "util.h"#include "vars.h"#include "screen.h"/* return codes for command completion (all < 0 because >= 0 are legitimate offsets into array of strings */#define AMBIGUOUS (-2) /* matches more than one at this point */#define UNIQUE (-3) /* matches only one string */#define ORIGINAL (-4) /* matches no strings at all! */#define NULLSTRING (-5) /* just hit return without typing anything *//* values for the `flags' argument to complete */#define NOTHING 0 /* opposite of RET_STATE */#define RET_STATE 1 /* return state when we hit return */#define RCOMMAND 2 /* we are reading a joverc file */#define CASEIND 4 /* map all to lower case */#define FORWARD 1#define BACKWARD (-1)#define ARG_CMD 1#define LINECMD 2#define KILLCMD 3 /* so we can merge kills */#define YANKCMD 4 /* so we can do ESC Y (yank-pop) */extern jmp_buf mainjmp;/* setjmp/longjmp args for DoKeys() mainjmp */#define FIRSTCALL 0#define ERROR 1#define COMPLAIN 2 /* do the error without a getDOT */#define QUIT 3 /* leave this level of recursion */#define INT_OKAY 0#define INT_BAD (-1)extern char NullStr[];extern char *ProcFmt;extern int LastKeyStruck, RecDepth, /* recursion depth */ InJoverc; /* depth in sourcing */extern bool InMacDefine, /* are we defining a macro right now? */ TOabort, /* flag set by Typeout() */ errormsg, /* last message was an error message so don't erase the error before it has been read */ InputPending, /* nonzero if there is input waiting to be processed */ Interactive, inIOread, /* so we know whether we can do a redisplay. */ Asking, /* are we on read a string from the terminal? */ InRealAsk; /* are we currently executing real_ask()? */extern int AskingWidth; /* width of question being asked */extern char *Inputp, Minibuf[LBSIZE], ShcomBuf[LBSIZE], *version;#define MESG_SIZE 128extern char mesgbuf[MESG_SIZE];#include "externs.h"#ifndef W_OK# define W_OK 2# define X_OK 1# define F_OK 0#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -