source: MondoRescue/branches/3.3/mindi-busybox/shell/ash_test/printenv.c@ 3647

Last change on this file since 3647 was 3621, checked in by Bruno Cornec, 10 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

  • Property svn:eol-style set to native
File size: 1.6 KB
Line 
1/* printenv -- minimal clone of BSD printenv(1).
2
3 usage: printenv [varname]
4
5 Chet Ramey
6 chet@po.cwru.edu
7*/
8
9/* Copyright (C) 1997-2002 Free Software Foundation, Inc.
10
11 This file is part of GNU Bash, the Bourne Again SHell.
12
13 Bash is free software; you can redistribute it and/or modify it under
14 the terms of the GNU General Public License as published by the Free
15 Software Foundation; either version 2, or (at your option) any later
16 version.
17
18 Bash is distributed in the hope that it will be useful, but WITHOUT ANY
19 WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License along
24 with Bash; see the file COPYING. If not, write to the Free Software
25 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
26
27#include <stdio.h>
28#include <stdlib.h>
29#include <string.h>
30
31extern char **environ;
32
33int
34main (argc, argv)
35 int argc;
36 char **argv;
37{
38 register char **envp, *eval;
39 int len;
40
41 argv++;
42 argc--;
43
44 /* printenv */
45 if (argc == 0)
46 {
47 for (envp = environ; *envp; envp++)
48 puts (*envp);
49 exit(EXIT_SUCCESS);
50 }
51
52 /* printenv varname */
53 len = strlen (*argv);
54 for (envp = environ; *envp; envp++)
55 {
56 if (**argv == **envp && strncmp (*envp, *argv, len) == 0)
57 {
58 eval = *envp + len;
59 /* If the environment variable doesn't have an `=', ignore it. */
60 if (*eval == '=')
61 {
62 puts (eval + 1);
63 exit(EXIT_SUCCESS);
64 }
65 }
66 }
67 exit(EXIT_FAILURE);
68}
Note: See TracBrowser for help on using the repository browser.