File: testenv.c

package info (click to toggle)
duma 2.5.21-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,460 kB
  • sloc: ansic: 5,512; cpp: 2,205; makefile: 441; javascript: 191; sh: 129
file content (65 lines) | stat: -rw-r--r-- 962 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

#include <stdio.h>

extern char **environ;

static
const char * duma_getenv( const char * varname )
{
  const char * ret = NULL;
  int varno = 0;

  if ( !varname )
	return ret;

  if ( varname[0] == '\0' )
	return ret;

  while ( environ[varno] )
  {
	const char * v = environ[varno++];
	int idx = 0;

	while ( varname[idx] != '\0' && v[idx] == varname[idx] )
	  ++idx;

	if ( idx > 0 && varname[idx] == '\0' && v[idx] == '=' )
	  return v + (idx +1);
  }
  return ret;
}


int main(int argc, const char * argv[] )
{
  int i = 0;
  const char * v;
  const char * varname;

#if 0
  printf("environment variables:\n");
  while ( environ[i] )
  {
	const char * v = environ[i];
	printf("%d: %s\n", i, v);
	++i;
  }
#endif

  if ( argc < 2 )
  {
	fprintf(stderr, "Usage: testenv <varname\n");
	return 5;
  }

  varname = argv[1];

  v = duma_getenv(varname);
  if ( v )
	printf("%s is '%s'\n", varname, v);
  else
	printf("%s undefined\n", varname);

  return 0;

}