File: setenv.c

package info (click to toggle)
bglibs 2.04%2Bdfsg-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,500 kB
  • sloc: ansic: 15,824; perl: 674; sh: 63; makefile: 29
file content (20 lines) | stat: -rw-r--r-- 476 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdlib.h>
#include <string.h>
#include "sysdeps.h"

#ifndef HASSETENV
int setenv(const char* name, const char* value, int overwrite)
{
  char* newenv;
  size_t namelen;
  size_t valuelen;
  if (!overwrite && getenv(name)) return 0;
  namelen = strlen(name);
  valuelen = strlen(value);
  newenv = malloc(namelen+1+valuelen+1);
  memcpy(newenv, name, namelen);
  newenv[namelen] = '=';
  memcpy(newenv+namelen+1, value, valuelen+1);
  return putenv(newenv);
}
#endif