|
|
1.1 ! root 1: /*************************************************************************** ! 2: * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne. JOVE * ! 3: * is provided to you without charge, and with no warranty. You may give * ! 4: * away copies of JOVE, including sources, provided that this notice is * ! 5: * included in all the files. * ! 6: ***************************************************************************/ ! 7: ! 8: /* jove.h header file to be included by EVERYONE */ ! 9: ! 10: #include <setjmp.h> ! 11: #ifndef TUNED ! 12: # include "tune.h" ! 13: #endif ! 14: ! 15: #if !defined(MAC) ! 16: # include <sys/types.h> ! 17: # include <string.h> ! 18: #else ! 19: # include <types.h> ! 20: #endif ! 21: ! 22: /* proto: macro to allow us to prototype any function declaration ! 23: * without upsetting old compilers. ! 24: */ ! 25: ! 26: #if defined(__STDC__) || defined(USE_PROTOTYPES) ! 27: # define proto(x) x ! 28: #else ! 29: # define proto(x) () ! 30: #endif ! 31: ! 32: /* UNDEF: macro to allow is to use ansi style undefinition of macros when ! 33: * declaring functions. i.e. ! 34: * extern int (vfork) (void) ! 35: * is declared as ! 36: * extern int UNDEF(vfork) proto((void)) ! 37: */ ! 38: #if defined(__STDC__) ! 39: # define UNDEF(proc) (proc) ! 40: #else ! 41: # define UNDEF(proc) proc ! 42: #endif ! 43: ! 44: #if defined(__STDC__) ! 45: #define STDARGS 1 ! 46: # define va_init(ap, parmN) { va_start((ap), (parmN)); } ! 47: #else ! 48: # define va_init(ap, parmN) { va_start((ap)); } ! 49: #endif ! 50: ! 51: /* const: readonly type qualifier */ ! 52: #ifndef __STDC__ ! 53: #define const /* Only in ANSI C. Pity */ ! 54: #endif /* !__STDC__ */ ! 55: ! 56: /* UnivPtr: universal pointer type */ ! 57: #ifdef __STDC__ ! 58: typedef void *UnivPtr; ! 59: typedef const void *UnivConstPtr; ! 60: #else /* !__STDC__ */ ! 61: typedef char *UnivPtr; ! 62: typedef const char *UnivConstPtr; ! 63: #endif /* !__STDC__ */ ! 64: ! 65: #ifndef EOF ! 66: #define EOF (-1) ! 67: #endif ! 68: ! 69: /* typedef structure definitions */ ! 70: #ifdef IPROCS ! 71: typedef struct process Process; ! 72: #endif ! 73: typedef struct window Window; ! 74: typedef struct position Bufpos; ! 75: typedef struct mark Mark; ! 76: typedef struct buffer Buffer; ! 77: typedef struct line Line; ! 78: typedef struct iobuf IOBUF; ! 79: ! 80: #include "buf.h" ! 81: #include "wind.h" ! 82: #include "io.h" ! 83: #include "dataobj.h" ! 84: #include "keymaps.h" ! 85: #include "argcount.h" ! 86: #include "util.h" ! 87: #include "vars.h" ! 88: #include "screen.h" ! 89: #include "style.h" ! 90: ! 91: /* return codes for command completion (all < 0 because >= 0 are ! 92: legitimate offsets into array of strings */ ! 93: ! 94: #define AMBIGUOUS (-2) /* matches more than one at this point */ ! 95: #define UNIQUE (-3) /* matches only one string */ ! 96: #define ORIGINAL (-4) /* matches no strings at all! */ ! 97: #define NULLSTRING (-5) /* just hit return without typing anything */ ! 98: ! 99: /* values for the `flags' argument to complete */ ! 100: #define NOTHING 0 /* opposite of RET_STATE */ ! 101: #define RET_STATE 1 /* return state when we hit return */ ! 102: #define RCOMMAND 2 /* we are reading a joverc file */ ! 103: #define CASEIND 4 /* map all to lower case */ ! 104: ! 105: #define FORWARD 1 ! 106: #define BACKWARD (-1) ! 107: ! 108: #define ARG_CMD 1 ! 109: #define LINECMD 2 ! 110: #define KILLCMD 3 /* so we can merge kills */ ! 111: #define YANKCMD 4 /* so we can do ESC Y (yank-pop) */ ! 112: ! 113: extern jmp_buf mainjmp; ! 114: ! 115: /* setjmp/longjmp args for DoKeys() mainjmp */ ! 116: #define FIRSTCALL 0 ! 117: #define ERROR 1 ! 118: #define COMPLAIN 2 /* do the error without a getDOT */ ! 119: #define QUIT 3 /* leave this level of recursion */ ! 120: ! 121: #define YES_NODIGIT 2 ! 122: ! 123: #define INT_OKAY 0 ! 124: #define INT_BAD (-1) ! 125: ! 126: extern char NullStr[]; ! 127: extern char *ProcFmt; ! 128: ! 129: extern int ! 130: InMacDefine, /* are we defining a macro right now? */ ! 131: ! 132: LastKeyStruck, ! 133: ! 134: TOabort, /* flag set by Typeout() */ ! 135: errormsg, /* last message was an error message ! 136: so don't erase the error before it ! 137: has been read */ ! 138: RecDepth, /* recursion depth */ ! 139: InputPending, /* nonzero if there is input waiting to ! 140: be processed */ ! 141: ! 142: InJoverc, ! 143: Interactive, ! 144: ! 145: Crashing, /* we are in the middle of crashing */ ! 146: Asking, /* are we on read a string from the terminal? */ ! 147: InRealAsk, /* are we currently executing real_ask()? */ ! 148: inIOread; /* so we know whether we can do a redisplay. */ ! 149: ! 150: extern char ! 151: *Inputp, ! 152: Minibuf[LBSIZE], ! 153: ShcomBuf[LBSIZE], ! 154: *version; ! 155: ! 156: #define MESG_SIZE 128 ! 157: extern char mesgbuf[MESG_SIZE]; ! 158: ! 159: #define CATCH \ ! 160: {\ ! 161: jmp_buf sav_jmp; \ ! 162: \ ! 163: push_env(sav_jmp); \ ! 164: if (setjmp(mainjmp) == 0) { ! 165: ! 166: #define ONERROR \ ! 167: } else { \ ! 168: ! 169: #define ENDCATCH \ ! 170: } \ ! 171: pop_env(sav_jmp); \ ! 172: } ! 173: ! 174: #include "externs.h"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.