/************************************************************************
 * This program is Copyright (C) 1986 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.                                           *
 ************************************************************************/
/*
 * Modified: Mar-89 by Tom Hageman [TRH]
 * remove alternates, REbuf, REalt_num.
 */

#ifndef _RE_H_	/* allow multiple inclusions */
#define _RE_H_

#ifndef TUNED
#   include "tune.h"
#endif

#ifdef Extern
RCS_H(re, "$Id: re.h,v 14.31.0.8 1993/11/01 18:05:42 tom Exp tom $")
#endif

#ifndef Extern
#   define Extern	extern
#endif

#ifndef RE_SIZE		/* Provide default for size of RE compilation buffers.
			   Multiply by 3/2 to accommodate larger bitsets
			   if we're supporting 8-bits characters. */
#   ifdef SMALL
#	define RE_SIZE	(256*(BPC-5)/2)
#   else
#	define RE_SIZE	(400*(BPC-5)/2)
#   endif
#else
#   if (RE_SIZE < (256*(BPC-5)/2))
			/* This minimum size of RE compilation buffers,
			   if configured elsewhere, is determined by
			   builtin "error-format-string". */
#	undef RE_SIZE
#	define RE_SIZE	(256*(BPC-5)/2)
#   endif
#endif

extern char	compbuf[RE_SIZE],	/* global default compilation buffer */
		*rep_search,		/* replace search string */
		*rep_str;		/* contains replacement string */

extern int	REdirection,
		REeom,
		REbom;

#ifndef _CTYPE_H_
#   include "ctype.h"
#endif

extern int	okay_wrap;	/* Implicit parameter for dosearch */

/* function prototypes */

/* re.c */

#ifndef NO_TRIV_PROTO
extern void	REcompile __(( const char *_(pattern), int _(re),
			       char *_(into_buf) )),
		REsubst __(( char *_(buf), const char *_(rep_str) )),
		putmatch __(( int _(which), char *_(buf), int _(size) )),
		RErecur __(( void ));

extern int	re_sindex __(( const char *_(str), int _(offset),
			       char *_(expr) )),
		LookingAt __(( const char *_(pattern), const char *_(buf),
			       int _(offset) )),
		look_at __(( const char *_(pattern) ));
#endif /* NO_TRIV_PROTO */

extern Bufpos	*docompiled __(( int _(dir), char *_(expr),
				 Bufpos *_(start), Line *_(end_lp) )),
		*dosearch __(( const char *_(pattern), int _(dir), int _(re) ));

extern char	*re_ask __(( const char *_(def), int _(use_re),
			     const char *_(fmt), ... ));

/* re1.c */

#ifndef NO_TRIV_PROTO
extern void	find_tag __(( const char *_(tag), int _(localp) ));
#endif

#endif /* _RE_H_ */

#undef Extern

/*======================================================================
 * $Log: re.h,v $
 * Revision 14.31.0.8  1993/11/01  18:05:42  tom
 * (searchstr): removed; (UseRE): made non-PRIVATE;
 * (re_ask): changed semantics of force_re argument -> use_re.
 *
 * Revision 14.31.0.4  1993/07/29  23:49:03  tom
 * (re_sindex, docompiled): un-const-ify compiled expr (for MARK support).
 *
 * Revision 14.31  1993/02/15  03:04:40  tom
 * some cleanup.
 *
 * Revision 14.30  1993/01/26  18:43:05  tom
 * cleanup whitespace; allow outside definition of RE_SIZE and provide
 * larger default value for it in BIG joves.
 *
 * Revision 14.26  1992/08/26  23:56:47  tom
 * add RCS directives.
 *
 */
