dumpaff.c revision 7c478bd95313f5f23a4c958a745db2134aa03244
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#ident	"%Z%%M%	%I%	%E% SMI"        /* SVr4.0 1.6 */
27
28#include "mail.h"
29/*
30 * Put out H_AFWDFROM and H_AFWDCNT lines if necessary, or
31 * suppress their printing from the calling routine.
32 */
33void dumpaff (type, htype, didafflines, suppress, f)
34register int	type;
35register int	htype;
36register int	*didafflines;
37register int	*suppress;
38register FILE	*f;
39{
40	int		affspot;	/* Place to put H_AFWDFROM lines */
41	struct hdrs	*hptr;
42	char		*pn = "dumpaff";
43
44	Dout(pn, 15, "type=%d, htype=%d/%s, *didafflines=%d, *suppress=%d\n", type, htype, htype >= 0 ? header[htype].tag : "None", *didafflines, *suppress);
45
46	affspot = pckaffspot();
47	if (affspot == -1) {
48		Dout(pn, 15, "\taffspot==-1\n");
49		return;
50	}
51
52	switch (htype) {
53	case H_AFWDCNT:
54		*suppress = TRUE;
55		Dout(pn, 15, "\tAuto-Forward-Count found\n");
56		return;
57	case H_AFWDFROM:
58		*suppress = TRUE;
59		break;
60	}
61
62	if (*didafflines == TRUE) {
63		Dout(pn, 15, "\tdidafflines == TRUE\n");
64		return;
65	}
66
67	if ((htype >= 0) && (affspot != htype)) {
68		Dout(pn, 15, "\thtype < 0 || affspot != htype, *suppress=%d\n", *suppress);
69		return;
70	}
71
72	*didafflines = TRUE;
73	for (hptr = hdrlines[H_AFWDFROM].head;
74	     hptr != (struct hdrs *)NULL;
75	     hptr = hptr->next) {
76		printhdr(type, H_AFWDFROM, hptr, f);
77	}
78	fprintf(f,"%s %d\n", header[H_AFWDCNT].tag, affcnt);
79	Dout(pn, 15, "\t*didafflines=%d, *suppress=%d\n", *didafflines, *suppress);
80}
81