comparison usr/src/cmd/mailx/init.c @ 0:c9caec207d52 b86

Initial porting based on b86
author Koji Uno <koji.uno@sun.com>
date Tue, 02 Jun 2009 18:56:50 +0900
parents
children 1a15d5aaf794
comparison
equal deleted inserted replaced
-1:000000000000 0:c9caec207d52
1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
23 /* All Rights Reserved */
24
25
26 /*
27 * Copyright (c) 1998 by Sun Microsystems, Inc.
28 * All rights reserved.
29 */
30
31 /*
32 * University Copyright- Copyright (c) 1982, 1986, 1988
33 * The Regents of the University of California
34 * All Rights Reserved
35 *
36 * University Acknowledgment- Portions of this document are derived from
37 * software developed by the University of California, Berkeley, and its
38 * contributors.
39 */
40
41 #pragma ident "@(#)init.c 1.15 05/06/08 SMI"
42
43 /*
44 * mailx -- a modified version of a University of California at Berkeley
45 * mail program
46 *
47 * A bunch of global variable declarations lie herein.
48 *
49 * All global externs are declared in def.h. All variables are initialized
50 * here!
51 *
52 * !!!!!IF YOU CHANGE (OR ADD) IT HERE, DO IT THERE ALSO !!!!!!!!
53 *
54 */
55
56 #include "def.h"
57 #include <grp.h>
58 #include <pwd.h>
59 #include <sys/utsname.h>
60
61 int Fflag = 0; /* -F option (followup) */
62 int Hflag = 0; /* print headers and exit */
63 char *Tflag; /* -T temp file for netnews */
64 int UnUUCP = 0; /* -U flag */
65 char **altnames; /* List of alternate names for user */
66 int askme;
67 int baud; /* Output baud rate */
68 char *bflag; /* Bcc given from non tty */
69 char *binmsg = "*** Message content is not printable: pipe to command or save to a file ***";
70 char *cflag; /* Cc given from non tty */
71 int cond; /* Current state of conditional exc. */
72 NODE *curptr = NOFP;
73 int debug; /* Debug flag set */
74 struct message *dot; /* Pointer to current message */
75 int edit; /* Indicates editing a file */
76 char *editfile; /* Name of file being edited */
77 int exitflg = 0; /* -e for mail test */
78 NODE *fplist = NOFP;
79 struct grouphead *groups[HSHSIZE];/* Pointer to active groups */
80 int hflag; /* Sequence number for network -h */
81 char homedir[PATHSIZE]; /* Name of home directory */
82 struct ignore *ignore[HSHSIZE];/* Pointer to ignored fields */
83 int image; /* File descriptor for image of msg */
84 FILE *input; /* Current command input file */
85 int intty; /* True if standard input a tty */
86 int issysmbox; /* mailname is a system mailbox */
87 FILE *itf; /* Input temp file buffer */
88 int lexnumber; /* Number of TNUMBER from scan() */
89 char lexstring[STRINGLEN]; /* String from TSTRING, scan() */
90 int loading; /* Loading user definitions */
91 char *lockname; /* named used for locking in /var/mail */
92 #ifdef USR_SPOOL_MAIL
93 char *maildir = "/usr/spool/mail/"; /* directory for mail files */
94 #else
95 # ifdef preSVr4
96 char *maildir = "/usr/mail/"; /* directory for mail files */
97 # else
98 char *maildir = "/var/mail/"; /* directory for mail files */
99 # endif
100 #endif
101 char mailname[PATHSIZE]; /* Name of /var/mail system mailbox */
102 off_t mailsize; /* Size of system mailbox */
103 int maxfiles; /* Maximum number of open files */
104 struct message *message; /* The actual message structure */
105 int msgCount; /* Count of messages read in */
106 gid_t myegid;
107 uid_t myeuid;
108 char myname[PATHSIZE]; /* My login id */
109 pid_t mypid; /* Current process id */
110 gid_t myrgid;
111 uid_t myruid;
112 int newsflg = 0; /* -I option for netnews */
113 char noheader; /* Suprress initial header listing */
114 int noreset; /* String resets suspended */
115 char nosrc; /* Don't source /etc/mail/mailx.rc */
116 int nretained; /* Number of retained fields */
117 int numberstack[REGDEP]; /* Stack of regretted numbers */
118 char origname[PATHSIZE]; /* Name of mailfile before expansion */
119 FILE *otf; /* Output temp file buffer */
120 int outtty; /* True if standard output a tty */
121 FILE *pipef; /* Pipe file we have opened */
122 char *progname; /* program name (argv[0]) */
123 char *prompt = NOSTR; /* prompt string */
124 int rcvmode; /* True if receiving mail */
125 int readonly; /* Will be unable to rewrite file */
126 int regretp; /* Pointer to TOS of regret tokens */
127 int regretstack[REGDEP]; /* Stack of regretted tokens */
128 struct ignore *retain[HSHSIZE];/* Pointer to retained fields */
129 char *rflag; /* -r address for network */
130 int rmail; /* Being called as rmail */
131 int sawcom; /* Set after first command */
132 int selfsent; /* User sent self something */
133 int senderr; /* An error while checking */
134 int rpterr; /* An error msg was sent to stderr */
135 char *sflag; /* Subject given from non tty */
136 int sourcing; /* Currently reading variant file */
137 int space; /* Current maximum number of messages */
138 jmp_buf srbuf;
139 int tflag; /* Read headers from text */
140 /*
141 * The pointers for the string allocation routines,
142 * there are NSPACE independent areas.
143 * The first holds STRINGSIZE bytes, the next
144 * twice as much, and so on.
145 */
146 struct strings stringdope[NSPACE];
147 char *stringstack[REGDEP]; /* Stack of regretted strings */
148 char tempEdit[TMPSIZ];
149 char tempMail[TMPSIZ];
150 char tempMesg[TMPSIZ];
151 char tempQuit[TMPSIZ];
152 char tempResid[PATHSIZE]; /* temp file in :saved */
153 char tempZedit[TMPSIZ];
154 uid_t uid; /* The invoker's user id */
155 static struct utimbuf utimeb;
156 struct utimbuf *utimep = &utimeb;
157 struct var *variables[HSHSIZE]; /* Pointer to active var list */
158 int receipt_flg = 0; /* Flag for return receipt */