ftp.nice.ch/pub/next/unix/developer/jove.4.24.s.tar.gz#/jove/jove.h

This is jove.h in view mode; [Download] [Up]

/***************************************************************************
 * 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

#if !defined(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.
 */

#if defined(__STDC__) || defined(USE_PROTOTYPES)
# define proto(x)        x
#else
# define proto(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.
 */
#if defined(__STDC__)
#define	STDARGS	1
# define	va_init(ap, parmN)	{ va_start((ap), (parmN)); }
#else
# define	va_init(ap, parmN)	{ va_start((ap)); }
#endif

/* const: readonly type qualifier */
#ifndef	__STDC__
#define	const	/* Only in ANSI C.  Pity */
#endif	/* !__STDC__ */

/* UnivPtr: universal pointer type */
#ifdef	__STDC__
typedef void	*UnivPtr;
typedef const void	*UnivConstPtr;
#else	/* !__STDC__ */
typedef char	*UnivPtr;
typedef const char	*UnivConstPtr;
#endif	/* !__STDC__ */

/* 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.
 */
#if defined(mips)
# define UNMACRO(proc)	proc
#else
# define UNMACRO(proc)	(proc)
#endif

#ifndef	EOF
#define EOF	(-1)
#endif

/* typedef structure definitions */
#ifdef IPROCS
typedef struct process	Process;
#endif
typedef 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"
#include "style.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 YES_NODIGIT	2

#define INT_OKAY	0
#define INT_BAD		(-1)

extern char	NullStr[];
extern char	*ProcFmt;

extern int
	InMacDefine,	/* are we defining a macro right now? */

	LastKeyStruck,

	TOabort,	/* flag set by Typeout() */
	errormsg,	/* last message was an error message
			   so don't erase the error before it
			   has been read */
	RecDepth,	/* recursion depth */
	InputPending,	/* nonzero if there is input waiting to
			   be processed */

	InJoverc,
	Interactive,

	Crashing,	/* we are in the middle of crashing */
	Asking,		/* are we on read a string from the terminal? */
	InRealAsk,	/* are we currently executing real_ask()? */
	inIOread;	/* so we know whether we can do a redisplay. */

extern char
	*Inputp,
	Minibuf[LBSIZE],
	ShcomBuf[LBSIZE],
	*version;

#define MESG_SIZE 128
extern char	mesgbuf[MESG_SIZE];

#define CATCH \
{\
	jmp_buf	sav_jmp; \
\
	push_env(sav_jmp); \
	if (setjmp(mainjmp) == 0) {

#define ONERROR \
	} else { \

#define ENDCATCH \
	} \
	pop_env(sav_jmp); \
}

#include "externs.h"

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.