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 (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23 * Use is subject to license terms.
24 */
25
26/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
27/*	  All Rights Reserved  	*/
28
29
30#pragma ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 1.5	*/
31/* EMACS_MODES: !fill, lnumb, !overwrite, !nodelete, !picture */
32
33#include "ctype.h"
34#include "string.h"
35#include "sys/param.h"
36
37#include "lp.h"
38
39int
40#if	defined(__STDC__)
41syn_name (
42	char *			str
43)
44#else
45syn_name (str)
46	char			*str;
47#endif
48{
49	register char		*p;
50
51	if (!str || !*str)
52	  	return(0);
53
54	if (strlen(str) > (size_t) MAXPATHLEN)
55		return (0);
56
57	for (p = str; *p; p++)
58		if (!isalnum(*p) && *p != '_' && *p != '-' && *p != '.')
59			return (0);
60
61	return (1);
62}
63
64int
65#if	defined(__STDC__)
66syn_type (
67	char *			str
68)
69#else
70syn_type (str)
71	char			*str;
72#endif
73{
74	register char		*p;
75
76	if (!str)
77		return(0);
78
79	if (strlen(str) > (size_t) MAXPATHLEN)
80		return (0);
81
82	for (p = str; *p; p++)
83		if (!isalnum(*p) && *p != '-')
84			return (0);
85
86	return (1);
87}
88
89int
90#if	defined(__STDC__)
91syn_text (
92	char *			str
93)
94#else
95syn_text (str)
96	char			*str;
97#endif
98{
99	register char		*p;
100
101	if (!str)
102		return(0);
103
104	for (p = str; *p; p++)
105		if (!isgraph(*p) && *p != '\t' && *p != ' ')
106			return (0);
107
108	return (1);
109}
110
111int
112#if	defined(__STDC__)
113syn_comment (
114	char *			str
115)
116#else
117syn_comment (str)
118	char			*str;
119#endif
120{
121	register char		*p;
122
123	if (!str)
124		return(0);
125
126	for (p = str; *p; p++)
127		if (!isgraph(*p) && *p != '\t' && *p != ' ' && *p != '\n')
128			return (0);
129
130	return (1);
131}
132
133int
134#if	defined(__STDC__)
135syn_machine_name (
136	char *			str
137)
138#else
139syn_machine_name (str)
140	char			*str;
141#endif
142{
143	if (!str)
144		return(0);
145
146	if (strlen(str) > (size_t) 8)
147		return (0);
148
149	return (1);
150}
151
152int
153#if	defined(__STDC__)
154syn_option (
155	char *			str
156)
157#else
158syn_option (str)
159	char			*str;
160#endif
161{
162	register char		*p;
163
164	if (!str)
165		return(0);
166
167	for (p = str; *p; p++)
168		if (!isprint(*p))
169			return (0);
170
171	return (1);
172}
173