File: glob.h

package info (click to toggle)
heirloom-mailx 12.4-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 1,524 kB
  • ctags: 1,960
  • sloc: ansic: 29,443; sh: 333; makefile: 126
file content (152 lines) | stat: -rw-r--r-- 6,235 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
/*
 * Heirloom mailx - a mail user agent derived from Berkeley Mail.
 *
 * Copyright (c) 2000-2004 Gunnar Ritter, Freiburg i. Br., Germany.
 */
/*
 * Copyright (c) 1980, 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the University of
 *	California, Berkeley and its contributors.
 * 4. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 *	Sccsid @(#)glob.h	2.27 (gritter) 6/16/07
 */

/*
 * A bunch of global variable declarations lie herein.
 * def.h must be included first.
 */

#if defined(_MAIL_GLOBS_)
#  undef  _E
#  define _E
#else
#  define _E	extern
#endif

_E int	msgCount;			/* Count of messages read in */
_E int	rcvmode;			/* True if receiving mail */
_E int	sawcom;				/* Set after first command */
_E int	Iflag;				/* -I show Newsgroups: field */
_E char	*Tflag;				/* -T temp file for netnews */
_E int	senderr;			/* An error while checking */
_E int	edit;				/* Indicates editing a file */
_E int	noreset;			/* String resets suspended */
_E int	sourcing;			/* Currently reading variant file */
_E int	loading;			/* Loading user definitions */
_E enum condition	cond;		/* Current state of conditional exc. */
_E struct mailbox mb;			/* Current mailbox */
_E int	image;				/* File descriptor for image of msg */
_E FILE	*input;				/* Current command input file */
_E char	mailname[PATHSIZE];		/* Name of current file */
_E char	mboxname[PATHSIZE];		/* Name of mbox */
_E char	prevfile[PATHSIZE];		/* Name of previous file */
_E char	*homedir;			/* Path name of home directory */
_E char *progname;			/* our name */
_E char	*myname;			/* My login name */
extern const char *version;		/* version string */
_E off_t mailsize;			/* Size of system mailbox */
_E struct message *dot;			/* Pointer to current message */
_E struct message *prevdot;		/* Previous current message */
_E struct message *message;		/* The actual message structure */
_E struct message *threadroot;		/* first threaded message */
_E int msgspace;			/* Number of allocated struct m */
_E struct var *variables[HSHSIZE];	/* Pointer to active var list */
_E struct grouphead *groups[HSHSIZE];	/* Pointer to active groups */
_E struct ignoretab ignore[2];		/* ignored and retained fields
					   0 is ignore, 1 is retain */
_E struct ignoretab saveignore[2];	/* ignored and retained fields
					   on save to folder */
_E struct ignoretab allignore[2];	/* special, ignore all headers */
_E struct ignoretab fwdignore[2];	/* fields to ignore for forwarding */
_E char	**altnames;			/* List of alternate names for user */
_E int	debug;				/* Debug flag set */
_E int	scrnwidth;			/* Screen width, or best guess */
_E int	scrnheight;			/* Screen height, or best guess,
					   for "header" command */
_E int	realscreenheight;		/* the real screen height */
_E gid_t	effectivegid;		/* Saved from when we started up */
_E gid_t	realgid;		/* Saved from when we started up */
_E int	exit_status;			/* Exit status */
_E int	is_a_tty[2];			/* isatty(0), isatty(1) */
_E int	did_print_dot;			/* current message has been printed */
_E int	tildeflag;			/* enable tilde escapes */
_E char	*uflag;				/* name given with -u option */
_E struct shortcut	*shortcuts;	/* list of shortcuts */
_E int	mb_cur_max;			/* value of MB_CUR_MAX */
_E int	imap_created_mailbox;		/* hack to get feedback from imap */
_E int	unset_allow_undefined;		/* allow to unset undefined variables */
_E int	inhook;				/* currently executing a hook */
_E int	starting;			/* still in startup code */
_E char *wantcharset;			/* overrides the "charset" variable */
_E int	utf8;				/* UTF-8 encoding in use for locale */
_E int	Rflag;				/* open all folders read-only */

#ifdef	USE_SSL
_E enum ssl_vrfy_level	ssl_vrfy_level;	/* SSL verification level */
#endif

#ifdef	HAVE_ICONV
_E iconv_t iconvd;
#endif

#ifdef	HAVE_CATGETS
_E nl_catd	catd;
#endif

/*
 * These are initialized strings.
 */
extern char *us_ascii;			/* "us-ascii" */
extern const char *month_names[];

#include <setjmp.h>

_E sigjmp_buf	srbuf;
_E int		interrupts;
_E sighandler_type	handlerstacktop;
#define	handlerpush(f)	(savedtop = handlerstacktop, handlerstacktop = (f))
#define	handlerpop()	(handlerstacktop = savedtop)
extern sighandler_type	dflpipe;

/*
 * The pointers for the string allocation routines,
 * there are NSPACE independent areas.
 * The first holds STRINGSIZE bytes, the next
 * twice as much, and so on.
 */

#define	NSPACE	25			/* Total number of string spaces */
_E struct strings {
	char	*s_topFree;		/* Beginning of this area */
	char	*s_nextFree;		/* Next alloctable place here */
	unsigned s_nleft;		/* Number of bytes left here */
} stringdope[NSPACE];

#undef  _E