xref: /original-bsd/usr.bin/printenv/printenv.c (revision 55330032)
1 static char *sccsid = "@(#)printenv.c	4.1 (Berkeley) 10/02/80";
2 /*
3  * printenv
4  *
5  * Bill Joy, UCB
6  * February, 1979
7  */
8 
9 extern	char **environ;
10 
11 main(argc, argv)
12 	int argc;
13 	char *argv[];
14 {
15 	register char **ep;
16 	int found = 0;
17 
18 	argc--, argv++;
19 	if (environ)
20 		for (ep = environ; *ep; ep++)
21 			if (argc == 0 || prefix(argv[0], *ep)) {
22 				register char *cp = *ep;
23 
24 				found++;
25 				if (argc) {
26 					while (*cp && *cp != '=')
27 						cp++;
28 					if (*cp == '=')
29 						cp++;
30 				}
31 				printf("%s\n", cp);
32 			}
33 	exit (!found);
34 }
35 
36 prefix(cp, dp)
37 	char *cp, *dp;
38 {
39 
40 	while (*cp && *dp && *cp == *dp)
41 		cp++, dp++;
42 	if (*cp == 0)
43 		return (*dp == '=');
44 	return (0);
45 }
46