#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void printval (char *name) {
   char *answer;
   answer = getenv (name);
   if (answer)
      printf ("%s evaluates to %s.\n", name, answer);
   else
      printf ("%s undefined.\n", name);
   }

void main (int argc, char **argv) {
   int result;
   switch (argc) {
      case 0: printf ("This can't happen.\n");
              break;
      case 1: printf ("No args to program %s.\n", argv[0]);
              break;
      case 2: printf ("Calling putenv(%s).\n", argv[1]);
              result = putenv(strdup(argv[1]));
              if (result) fprintf (stderr, "putenv error %d.\n",result);
              break;
      case 3: printf ("Calling putenv(%s).\n", argv[1]);
              result = putenv(argv[1]);
              if (result) fprintf (stderr, "putenv error %d.\n",result);
              printval (argv[2]);
              break;
      default: printf ("Too many args.\n");
      }
   }

