sel_disp.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#pragma ident	"%Z%%M%	%I%	%E% SMI"
27
28#include "mail.h"
29
30/*
31 * If in default display mode from printmail(), selectively output
32 * header lines. Any recognized header lines will have flag stored in
33 * header[] structure. Other header lines which should be displayed in
34 * the default output mode will be listed in the seldisp[] array.
35 * This can all be overridden via the 'P' command at the ? prompt.
36 */
37sel_disp (type, hdrtype, s)
38int	type;
39int	hdrtype;
40char	*s;
41{
42	static char pn[] = "sel_disp";
43	register char	*p;
44	static	int	sav_lastrc = 0;
45	int		i, rc = 0;
46
47	if (sending || Pflg || (type != TTY)) {
48		return (0);
49	}
50
51	switch (hdrtype) {
52	case H_CONT:
53		rc = sav_lastrc;
54		break;
55	case H_NAMEVALUE:
56		for (i=0,p=seldisp[i]; p; p=seldisp[++i]) {
57			if (casncmp(s, p, strlen(p)) == 0) {
58				break;
59			}
60		}
61		if (p == (char *)NULL) {
62			rc = -1;
63		}
64		break;
65	default:
66		if (header[hdrtype].default_display == FALSE) {
67			rc = -1;
68			break;
69		}
70	}
71
72	Dout(pn, 2, "type = %d, hdrtype = %d/'%s', rc = %d\n",
73		type, hdrtype, header[hdrtype].tag, rc);
74	sav_lastrc = rc;	/* In case next one is H_CONT... */
75	return (rc);
76}
77