xref: /csrg-svn/usr.bin/mail/glob.h (revision 62083)
122475Sdist /*
2*62083Sbostic  * Copyright (c) 1980, 1993
3*62083Sbostic  *	The Regents of the University of California.  All rights reserved.
422475Sdist  *
542741Sbostic  * %sccs.include.redist.c%
633499Sbostic  *
7*62083Sbostic  *	@(#)glob.h	8.1 (Berkeley) 06/06/93
822475Sdist  */
914532Ssam 
101255Skas /*
111255Skas  * A bunch of global variable declarations lie herein.
121255Skas  * def.h must be included first.
131255Skas  */
141255Skas 
151255Skas int	msgCount;			/* Count of messages read in */
161255Skas int	rcvmode;			/* True if receiving mail */
171255Skas int	sawcom;				/* Set after first command */
184021Skurt char	*Tflag;				/* -T temp file for netnews */
191255Skas int	senderr;			/* An error while checking */
201255Skas int	edit;				/* Indicates editing a file */
211371Skas int	readonly;			/* Will be unable to rewrite file */
221255Skas int	noreset;			/* String resets suspended */
231255Skas int	sourcing;			/* Currently reading variant file */
245787Skurt int	loading;			/* Loading user definitions */
251525Skas int	cond;				/* Current state of conditional exc. */
261255Skas FILE	*itf;				/* Input temp file buffer */
271255Skas FILE	*otf;				/* Output temp file buffer */
281255Skas int	image;				/* File descriptor for image of msg */
291255Skas FILE	*input;				/* Current command input file */
3034753Sedward char	mailname[PATHSIZE];		/* Name of current file */
3134753Sedward char	prevfile[PATHSIZE];		/* Name of previous file */
3234968Sedward char	*homedir;			/* Path name of home directory */
3334968Sedward char	*myname;			/* My login name */
341255Skas off_t	mailsize;			/* Size of system mailbox */
351255Skas int	lexnumber;			/* Number of TNUMBER from scan() */
361255Skas char	lexstring[STRINGLEN];		/* String from TSTRING, scan() */
371255Skas int	regretp;			/* Pointer to TOS of regret tokens */
381255Skas int	regretstack[REGDEP];		/* Stack of regretted tokens */
3935976Sedward char	*string_stack[REGDEP];		/* Stack of regretted strings */
401255Skas int	numberstack[REGDEP];		/* Stack of regretted numbers */
411255Skas struct	message	*dot;			/* Pointer to current message */
421255Skas struct	message	*message;		/* The actual message structure */
431255Skas struct	var	*variables[HSHSIZE];	/* Pointer to active var list */
441255Skas struct	grouphead	*groups[HSHSIZE];/* Pointer to active groups */
4534692Sedward struct	ignoretab	ignore[2];	/* ignored and retained fields
4634692Sedward 					   0 is ignore, 1 is retain */
4734692Sedward struct	ignoretab	saveignore[2];	/* ignored and retained fields
4834692Sedward 					   on save to folder */
4934969Sedward struct	ignoretab	ignoreall[2];	/* special, ignore all headers */
504395Skurt char	**altnames;			/* List of alternate names for user */
511255Skas int	debug;				/* Debug flag set */
5231142Sedward int	screenwidth;			/* Screen width, or best guess */
5334749Sedward int	screenheight;			/* Screen height, or best guess,
5434749Sedward 					   for "header" command */
5534749Sedward int	realscreenheight;		/* the real screen height */
561255Skas 
571255Skas #include <setjmp.h>
581255Skas 
591255Skas jmp_buf	srbuf;
601255Skas 
611255Skas 
621255Skas /*
631255Skas  * The pointers for the string allocation routines,
641255Skas  * there are NSPACE independent areas.
651255Skas  * The first holds STRINGSIZE bytes, the next
661255Skas  * twice as much, and so on.
671255Skas  */
681255Skas 
694129Skurt #define	NSPACE	25			/* Total number of string spaces */
701255Skas struct strings {
711255Skas 	char	*s_topFree;		/* Beginning of this area */
721255Skas 	char	*s_nextFree;		/* Next alloctable place here */
731255Skas 	unsigned s_nleft;		/* Number of bytes left here */
741255Skas } stringdope[NSPACE];
75