2 * Heirloom mailx - a mail user agent derived from Berkeley Mail.
4 * Copyright (c) 2000-2004 Gunnar Ritter, Freiburg i. Br., Germany.
7 * Copyright (c) 1980, 1993
8 * The Regents of the University of California. All rights reserved.
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
18 * 3. All advertising materials mentioning features or use of this software
19 * must display the following acknowledgement:
20 * This product includes software developed by the University of
21 * California, Berkeley and its contributors.
22 * 4. Neither the name of the University nor the names of its contributors
23 * may be used to endorse or promote products derived from this software
24 * without specific prior written permission.
26 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 * Sccsid @(#)glob.h 2.27 (gritter) 6/16/07
42 * A bunch of global variable declarations lie herein.
43 * def.h must be included first.
46 #if defined(_MAIL_GLOBS_)
53 _E
int msgCount
; /* Count of messages read in */
54 _E
int rcvmode
; /* True if receiving mail */
55 _E
int sawcom
; /* Set after first command */
56 _E
int Iflag
; /* -I show Newsgroups: field */
57 _E
char *Tflag
; /* -T temp file for netnews */
58 _E
int senderr
; /* An error while checking */
59 _E
int edit
; /* Indicates editing a file */
60 _E
int noreset
; /* String resets suspended */
61 _E
int sourcing
; /* Currently reading variant file */
62 _E
int loading
; /* Loading user definitions */
63 _E
enum condition cond
; /* Current state of conditional exc. */
64 _E
struct mailbox mb
; /* Current mailbox */
65 _E
int image
; /* File descriptor for image of msg */
66 _E
FILE *input
; /* Current command input file */
67 _E
char mailname
[PATHSIZE
]; /* Name of current file */
68 _E
char mboxname
[PATHSIZE
]; /* Name of mbox */
69 _E
char prevfile
[PATHSIZE
]; /* Name of previous file */
70 _E
char *homedir
; /* Path name of home directory */
71 _E
char *progname
; /* our name */
72 _E
char *myname
; /* My login name */
73 extern const char *version
; /* version string */
74 _E off_t mailsize
; /* Size of system mailbox */
75 _E
struct message
*dot
; /* Pointer to current message */
76 _E
struct message
*prevdot
; /* Previous current message */
77 _E
struct message
*message
; /* The actual message structure */
78 _E
struct message
*threadroot
; /* first threaded message */
79 _E
int msgspace
; /* Number of allocated struct m */
80 _E
struct var
*variables
[HSHSIZE
]; /* Pointer to active var list */
81 _E
struct grouphead
*groups
[HSHSIZE
]; /* Pointer to active groups */
82 _E
struct ignoretab ignore
[2]; /* ignored and retained fields
83 0 is ignore, 1 is retain */
84 _E
struct ignoretab saveignore
[2]; /* ignored and retained fields
86 _E
struct ignoretab allignore
[2]; /* special, ignore all headers */
87 _E
struct ignoretab fwdignore
[2]; /* fields to ignore for forwarding */
88 _E
char **altnames
; /* List of alternate names for user */
89 _E
int debug
; /* Debug flag set */
90 _E
int scrnwidth
; /* Screen width, or best guess */
91 _E
int scrnheight
; /* Screen height, or best guess,
92 for "header" command */
93 _E
int realscreenheight
; /* the real screen height */
94 _E gid_t effectivegid
; /* Saved from when we started up */
95 _E gid_t realgid
; /* Saved from when we started up */
96 _E
int exit_status
; /* Exit status */
97 _E
int is_a_tty
[2]; /* isatty(0), isatty(1) */
98 _E
int did_print_dot
; /* current message has been printed */
99 _E
int tildeflag
; /* enable tilde escapes */
100 _E
char *uflag
; /* name given with -u option */
101 _E
struct shortcut
*shortcuts
; /* list of shortcuts */
102 _E
int mb_cur_max
; /* value of MB_CUR_MAX */
103 _E
int imap_created_mailbox
; /* hack to get feedback from imap */
104 _E
int unset_allow_undefined
; /* allow to unset undefined variables */
105 _E
int inhook
; /* currently executing a hook */
106 _E
int starting
; /* still in startup code */
107 _E
char *wantcharset
; /* overrides the "charset" variable */
108 _E
int utf8
; /* UTF-8 encoding in use for locale */
109 _E
int Rflag
; /* open all folders read-only */
112 _E
enum ssl_vrfy_level ssl_vrfy_level
; /* SSL verification level */
124 * These are initialized strings.
126 extern char *us_ascii
; /* "us-ascii" */
127 extern const char *month_names
[];
133 _E sighandler_type handlerstacktop
;
134 #define handlerpush(f) (savedtop = handlerstacktop, handlerstacktop = (f))
135 #define handlerpop() (handlerstacktop = savedtop)
136 extern sighandler_type dflpipe
;
139 * The pointers for the string allocation routines,
140 * there are NSPACE independent areas.
141 * The first holds STRINGSIZE bytes, the next
142 * twice as much, and so on.
145 #define NSPACE 25 /* Total number of string spaces */
147 char *s_topFree
; /* Beginning of this area */
148 char *s_nextFree
; /* Next alloctable place here */
149 unsigned s_nleft
; /* Number of bytes left here */
150 } stringdope
[NSPACE
];