1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 * 6 * @(#)glob.h 5.1 (Berkeley) 06/06/85 7 */ 8 9 /* 10 * A bunch of global variable declarations lie herein. 11 * def.h must be included first. 12 */ 13 14 int msgCount; /* Count of messages read in */ 15 int mypid; /* Current process id */ 16 int rcvmode; /* True if receiving mail */ 17 int sawcom; /* Set after first command */ 18 int hflag; /* Sequence number for network -h */ 19 char *rflag; /* -r address for network */ 20 char *Tflag; /* -T temp file for netnews */ 21 char nosrc; /* Don't source /usr/lib/Mail.rc */ 22 char noheader; /* Suprress initial header listing */ 23 int selfsent; /* User sent self something */ 24 int senderr; /* An error while checking */ 25 int edit; /* Indicates editing a file */ 26 int readonly; /* Will be unable to rewrite file */ 27 int noreset; /* String resets suspended */ 28 int sourcing; /* Currently reading variant file */ 29 int loading; /* Loading user definitions */ 30 int shudann; /* Print headers when possible */ 31 int cond; /* Current state of conditional exc. */ 32 FILE *itf; /* Input temp file buffer */ 33 FILE *otf; /* Output temp file buffer */ 34 FILE *pipef; /* Pipe file we have opened */ 35 int image; /* File descriptor for image of msg */ 36 FILE *input; /* Current command input file */ 37 char *editfile; /* Name of file being edited */ 38 char *sflag; /* Subject given from non tty */ 39 int outtty; /* True if standard output a tty */ 40 int intty; /* True if standard input a tty */ 41 int baud; /* Output baud rate */ 42 char mbox[PATHSIZE]; /* Name of mailbox file */ 43 char mailname[PATHSIZE]; /* Name of system mailbox */ 44 int uid; /* The invoker's user id */ 45 char mailrc[PATHSIZE]; /* Name of startup file */ 46 char deadletter[PATHSIZE]; /* Name of #/dead.letter */ 47 char homedir[PATHSIZE]; /* Path name of home directory */ 48 char myname[PATHSIZE]; /* My login id */ 49 off_t mailsize; /* Size of system mailbox */ 50 int lexnumber; /* Number of TNUMBER from scan() */ 51 char lexstring[STRINGLEN]; /* String from TSTRING, scan() */ 52 int regretp; /* Pointer to TOS of regret tokens */ 53 int regretstack[REGDEP]; /* Stack of regretted tokens */ 54 char *stringstack[REGDEP]; /* Stack of regretted strings */ 55 int numberstack[REGDEP]; /* Stack of regretted numbers */ 56 struct message *dot; /* Pointer to current message */ 57 struct message *message; /* The actual message structure */ 58 struct var *variables[HSHSIZE]; /* Pointer to active var list */ 59 struct grouphead *groups[HSHSIZE];/* Pointer to active groups */ 60 struct ignore *ignore[HSHSIZE];/* Pointer to ignored fields */ 61 struct ignore *retain[HSHSIZE];/* Pointer to retained fields */ 62 int nretained; /* Number of retained fields */ 63 char **altnames; /* List of alternate names for user */ 64 char **localnames; /* List of aliases for our local host */ 65 int debug; /* Debug flag set */ 66 int rmail; /* Being called as rmail */ 67 68 #include <setjmp.h> 69 70 jmp_buf srbuf; 71 72 73 /* 74 * The pointers for the string allocation routines, 75 * there are NSPACE independent areas. 76 * The first holds STRINGSIZE bytes, the next 77 * twice as much, and so on. 78 */ 79 80 #define NSPACE 25 /* Total number of string spaces */ 81 struct strings { 82 char *s_topFree; /* Beginning of this area */ 83 char *s_nextFree; /* Next alloctable place here */ 84 unsigned s_nleft; /* Number of bytes left here */ 85 } stringdope[NSPACE]; 86