summaryrefslogtreecommitdiff
blob: cfde60d1d5768253019feec6cb26701b681b9195 (plain)
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
153
154
155
156
--- a/glob.h
+++ b/glob.h
@@ -37,48 +37,48 @@
  * A bunch of global variable declarations lie herein.
  * def.h must be included first.
  */
-int	msgCount;			/* Count of messages read in */
-int	rcvmode;			/* True if receiving mail */
-int	sawcom;				/* Set after first command */
-int	senderr;			/* An error while checking */
-int	edit;				/* Indicates editing a file */
-int	readonly;			/* Will be unable to rewrite file */
-int	noreset;			/* String resets suspended */
-int	sourcing;			/* Currently reading variant file */
-int	loading;			/* Loading user definitions */
-int	cond;				/* Current state of conditional exc. */
-FILE	*itf;				/* Input temp file buffer */
-FILE	*otf;				/* Output temp file buffer */
-int	image;				/* File descriptor for image of msg */
-FILE	*input;				/* Current command input file */
-char	mailname[PATHSIZE];		/* Name of current file */
-char	prevfile[PATHSIZE];		/* Name of previous file */
-char	*homedir;			/* Path name of home directory */
-char	*myname;			/* My login name */
-off_t	mailsize;			/* Size of system mailbox */
-int	lexnumber;			/* Number of TNUMBER from scan() */
-char	lexstring[STRINGLEN];		/* String from TSTRING, scan() */
-int	regretp;			/* Pointer to TOS of regret tokens */
-int	regretstack[REGDEP];		/* Stack of regretted tokens */
-char	*string_stack[REGDEP];		/* Stack of regretted strings */
-int	numberstack[REGDEP];		/* Stack of regretted numbers */
-struct	message	*dot;			/* Pointer to current message */
-struct	message	*message;		/* The actual message structure */
-struct	var	*variables[HSHSIZE];	/* Pointer to active var list */
-struct	grouphead	*groups[HSHSIZE];/* Pointer to active groups */
-struct	ignoretab	ignore[2];	/* ignored and retained fields
-					   0 is ignore, 1 is retain */
-struct	ignoretab	saveignore[2];	/* ignored and retained fields
-					   on save to folder */
-struct	ignoretab	ignoreall[2];	/* special, ignore all headers */
-char	**altnames;			/* List of alternate names for user */
-int	debug;				/* Debug flag set */
-int	screenwidth;			/* Screen width, or best guess */
-int	screenheight;			/* Screen height, or best guess,
-					   for "header" command */
-int	realscreenheight;		/* the real screen height */
-int	uflag;				/* Are we in -u mode? */
-sigset_t intset;			/* Signal set that is just SIGINT */
+extern int	msgCount;			/* Count of messages read in */
+extern int	rcvmode;			/* True if receiving mail */
+extern int	sawcom;				/* Set after first command */
+extern int	senderr;			/* An error while checking */
+extern int	edit;				/* Indicates editing a file */
+extern int	readonly;			/* Will be unable to rewrite file */
+extern int	noreset;			/* String resets suspended */
+extern int	sourcing;			/* Currently reading variant file */
+extern int	loading;			/* Loading user definitions */
+extern int	cond;				/* Current state of conditional exc. */
+extern FILE	*itf;				/* Input temp file buffer */
+extern FILE	*otf;				/* Output temp file buffer */
+extern int	image;				/* File descriptor for image of msg */
+extern FILE	*input;				/* Current command input file */
+extern char	mailname[PATHSIZE];		/* Name of current file */
+extern char	prevfile[PATHSIZE];		/* Name of previous file */
+extern char	*homedir;			/* Path name of home directory */
+extern char	*myname;			/* My login name */
+extern off_t	mailsize;			/* Size of system mailbox */
+extern int	lexnumber;			/* Number of TNUMBER from scan() */
+extern char	lexstring[STRINGLEN];		/* String from TSTRING, scan() */
+extern int	regretp;			/* Pointer to TOS of regret tokens */
+extern int	regretstack[REGDEP];		/* Stack of regretted tokens */
+extern char	*string_stack[REGDEP];		/* Stack of regretted strings */
+extern int	numberstack[REGDEP];		/* Stack of regretted numbers */
+extern struct	message	*dot;			/* Pointer to current message */
+extern struct	message	*message;		/* The actual message structure */
+extern struct	var	*variables[HSHSIZE];	/* Pointer to active var list */
+extern struct	grouphead	*groups[HSHSIZE];/* Pointer to active groups */
+extern struct	ignoretab	ignore[2];	/* ignored and retained fields
+					   0 is ignore, 1 is retain */
+extern struct	ignoretab	saveignore[2];	/* ignored and retained fields
+					   on save to folder */
+extern struct	ignoretab	ignoreall[2];	/* special, ignore all headers */
+extern char	**altnames;			/* List of alternate names for user */
+extern int	debug;				/* Debug flag set */
+extern int	screenwidth;			/* Screen width, or best guess */
+extern int	screenheight;			/* Screen height, or best guess,
+					   for "header" command */
+extern int	realscreenheight;		/* the real screen height */
+extern int	uflag;				/* Are we in -u mode? */
+extern sigset_t intset;			/* Signal set that is just SIGINT */
 
 /*
  * The pointers for the string allocation routines,
@@ -87,7 +87,7 @@
  * twice as much, and so on.
  */
 #define	NSPACE	25			/* Total number of string spaces */
-struct strings {
+extern struct strings {
 	char	*s_topFree;		/* Beginning of this area */
 	char	*s_nextFree;		/* Next alloctable place here */
 	unsigned s_nleft;		/* Number of bytes left here */
--- a/main.c
+++ b/main.c
@@ -36,6 +36,51 @@
 #include "extern.h"
 #include <locale.h>
 
+int	msgCount;			/* Count of messages read in */
+int	rcvmode;			/* True if receiving mail */
+int	sawcom;				/* Set after first command */
+int	senderr;			/* An error while checking */
+int	edit;				/* Indicates editing a file */
+int	readonly;			/* Will be unable to rewrite file */
+int	noreset;			/* String resets suspended */
+int	sourcing;			/* Currently reading variant file */
+int	loading;			/* Loading user definitions */
+int	cond;				/* Current state of conditional exc. */
+FILE	*itf;				/* Input temp file buffer */
+FILE	*otf;				/* Output temp file buffer */
+int	image;				/* File descriptor for image of msg */
+FILE	*input;				/* Current command input file */
+char	mailname[PATHSIZE];		/* Name of current file */
+char	prevfile[PATHSIZE];		/* Name of previous file */
+char	*homedir;			/* Path name of home directory */
+char	*myname;			/* My login name */
+off_t	mailsize;			/* Size of system mailbox */
+int	lexnumber;			/* Number of TNUMBER from scan() */
+char	lexstring[STRINGLEN];		/* String from TSTRING, scan() */
+int	regretp;			/* Pointer to TOS of regret tokens */
+int	regretstack[REGDEP];		/* Stack of regretted tokens */
+char	*string_stack[REGDEP];		/* Stack of regretted strings */
+int	numberstack[REGDEP];		/* Stack of regretted numbers */
+struct	message	*dot;			/* Pointer to current message */
+struct	message	*message;		/* The actual message structure */
+struct	var	*variables[HSHSIZE];	/* Pointer to active var list */
+struct	grouphead	*groups[HSHSIZE];/* Pointer to active groups */
+struct	ignoretab	ignore[2];	/* ignored and retained fields
+					   0 is ignore, 1 is retain */
+struct	ignoretab	saveignore[2];	/* ignored and retained fields
+					   on save to folder */
+struct	ignoretab	ignoreall[2];	/* special, ignore all headers */
+char	**altnames;			/* List of alternate names for user */
+int	debug;				/* Debug flag set */
+int	screenwidth;			/* Screen width, or best guess */
+int	screenheight;			/* Screen height, or best guess,
+					   for "header" command */
+int	realscreenheight;		/* the real screen height */
+int	uflag;				/* Are we in -u mode? */
+sigset_t intset;			/* Signal set that is just SIGINT */
+
+struct strings stringdope[NSPACE];
+
 static void	usage(void);
 	int	main(int, char **);