/*
 * unsetenv.c
 */

#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "env.h"

int unsetenv(const char *name)
{
  size_t len;
  char **p, *q;
  const char *z;

  if ( !name || !name[0] ) {
    errno = EINVAL;
    return -1;
  }

  len = 0;
  for ( z = name ; *z ; z++ ) {
    len++;
    if ( *z == '=' ) {
      errno = EINVAL;
      return -1;
    }
  }

  if ( !environ )
    return 0;

  for ( p = environ ; (q = *p) ; p++ ) {
    if ( !strncmp(name,q,len) && q[len] == '=' )
      break;
  }

  for ( ; (q = *p) ; p++ ) {
    p[0] = p[1];
  }

  return 0;
}
