X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/1a98ca6c7d0b3ae00ad7ef754e1aca52f91c2731..42efa69a106af14281e517d6af298698b3674bab:/usr/src/usr.bin/mail/def.h diff --git a/usr/src/usr.bin/mail/def.h b/usr/src/usr.bin/mail/def.h index 215b78e457..6a20830151 100644 --- a/usr/src/usr.bin/mail/def.h +++ b/usr/src/usr.bin/mail/def.h @@ -1,45 +1,43 @@ -/* def.h 2.14 85/01/09 */ - -#include -#include -#include -#include -#include "local.h" - -#undef isalpha -#undef isdigit +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. + * + * %sccs.include.redist.c% + * + * @(#)def.h 5.23 (Berkeley) %G% + */ /* * Mail -- a mail program * - * Commands are: - * t print out these messages - * r reply to messages - * m mail to users (analogous to send) - * e edit messages - * c [directory] chdir to dir or home if none - * x exit quickly - * w file save messages in file - * q quit, save remaining stuff in mbox - * d delete messages - * u undelete messages - * h print message headers - * * Author: Kurt Shoens (UCB) March 25, 1978 */ +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include "pathnames.h" + +#define APPEND /* New mail goes to end of mailbox */ #define ESCAPE '~' /* Default escape for sending */ -#define NMLSIZE 20 /* max names in a message list */ -#define PATHSIZE 100 /* Size of pathnames throughout */ -#define NAMESIZE 20 /* Max size of user name */ -#define HSHSIZE 19 /* Hash size for aliases and vars */ -#define HDRFIELDS 3 /* Number of header fields */ +#define NMLSIZE 1024 /* max names in a message list */ +#define PATHSIZE MAXPATHLEN /* Size of pathnames throughout */ +#define HSHSIZE 59 /* Hash size for aliases and vars */ #define LINESIZE BUFSIZ /* max readable line width */ #define STRINGSIZE ((unsigned) 128)/* Dynamic allocation units */ -#define MAXARGC 20 /* Maximum list of raw strings */ +#define MAXARGC 1024 /* Maximum list of raw strings */ #define NOSTR ((char *) 0) /* Null string pointer */ #define MAXEXP 25 /* Maximum expansion of aliases */ + #define equal(a, b) (strcmp(a,b)==0)/* A nice function to string compare */ struct message { @@ -66,12 +64,18 @@ struct message { #define MSTATUS (1<<9) /* message status has changed */ #define MBOX (1<<10) /* Send this to mbox, regardless */ +/* + * Given a file address, determine the block number it represents. + */ +#define blockof(off) ((int) ((off) / 4096)) +#define offsetof(off) ((int) ((off) % 4096)) +#define positionof(block, offset) ((off_t)(block) * 4096 + (offset)) + /* * Format of the command description table. * The actual table is declared and initialized * in lex.c */ - struct cmd { char *c_name; /* Name of command */ int (*c_func)(); /* Implementor of the command */ @@ -138,11 +142,11 @@ struct headline { */ struct header { - char *h_to; /* Dynamic "To:" string */ - char *h_subject; /* Subject string */ - char *h_cc; /* Carbon copies string */ - char *h_bcc; /* Blind carbon copies */ - int h_seq; /* Sequence for optimization */ + struct name *h_to; /* Dynamic "To:" string */ + char *h_subject; /* Subject string */ + struct name *h_cc; /* Carbon copies string */ + struct name *h_bcc; /* Blind carbon copies */ + struct name *h_smopts; /* Sendmail options */ }; /* @@ -190,9 +194,12 @@ struct grouphead { /* * Structure of the hash table of ignored header fields */ -struct ignore { - struct ignore *i_link; /* Next ignored field in bucket */ - char *i_field; /* This ignored field */ +struct ignoretab { + int i_count; /* Number of entries */ + struct ignore { + struct ignore *i_link; /* Next ignored field in bucket */ + char *i_field; /* This ignored field */ + } *i_head[HSHSIZE]; }; /* @@ -211,9 +218,10 @@ struct ignore { #define TOPEN 8 /* An '(' */ #define TCLOSE 9 /* A ')' */ #define TPLUS 10 /* A '+' */ +#define TERROR 11 /* A lexical error */ #define REGDEP 2 /* Maximum regret depth. */ -#define STRINGLEN 64 /* Maximum length of string token */ +#define STRINGLEN 1024 /* Maximum length of string token */ /* * Constants for conditional commands. These describe whether @@ -231,95 +239,9 @@ struct ignore { #define setexit() setjmp(srbuf) #define reset(x) longjmp(srbuf, x) -/* - * VM/UNIX has a vfork system call which is faster than forking. If we - * don't have it, fork(2) will do . . . - */ - -#ifndef VMUNIX -#define vfork() fork() -#endif -#ifndef SIGRETRO -#define sigchild() -#endif - -/* - * 4.2bsd signal interface help... - */ -#ifdef VMUNIX -#define sigset(s, a) signal(s, a) -#define sigsys(s, a) signal(s, a) -#endif - /* * Truncate a file to the last character written. This is * useful just before closing an old file that was opened * for read/write. */ #define trunc(stream) ftruncate(fileno(stream), (long) ftell(stream)) - -/* - * Forward declarations of routine types to keep lint and cc happy. - */ - -FILE *Fdopen(); -FILE *collect(); -FILE *infix(); -FILE *mesedit(); -FILE *mespipe(); -FILE *popen(); -FILE *setinput(); -char **unpack(); -char *addto(); -char *arpafix(); -char *calloc(); -char *copy(); -char *copyin(); -char *detract(); -char *expand(); -char *gets(); -char *hfield(); -char *index(); -char *name1(); -char *nameof(); -char *nextword(); -char *getenv(); -char *getfilename(); -char *hcontents(); -char *netmap(); -char *netname(); -char *readtty(); -char *reedit(); -char *rename(); -char *revarpa(); -char *rindex(); -char *rpair(); -char *salloc(); -char *savestr(); -char *skin(); -char *snarf(); -char *strcat(); -char *strcpy(); -char *value(); -char *vcopy(); -char *yankword(); -off_t fsize(); -#ifndef VMUNIX -int (*sigset())(); -#endif -struct cmd *lex(); -struct grouphead *findgroup(); -struct name *cat(); -struct name *delname(); -struct name *elide(); -struct name *extract(); -struct name *gexpand(); -struct name *map(); -struct name *outof(); -struct name *put(); -struct name *usermap(); -struct name *verify(); -struct var *lookup(); -long transmit(); -int icequal(); -int cmpdomain();