Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */
2
#include 
3
#include 
4
#include 
5
 
6
int
7
setenv (const char *var, const char *val, int replace)
8
{
9
  char *prev;
10
 
11
  if (var == (char *)0 || val == (char *)0)
12
    return -1;
13
 
14
  if ((prev  = getenv (var)) && !replace)
15
    return 0;
16
  else
17
    {
18
      size_t l_var = strlen (var);
19
      char *envstr = (char *)alloca (l_var + strlen (val) + 2);
20
      char *peq    = strchr (var, '=');
21
 
22
      if (*val == '=')
23
        ++val;
24
      if (peq)
25
        l_var = peq - var;
26
 
27
      strncpy (envstr, var, l_var);
28
      envstr[l_var++] = '=';
29
      strcpy (envstr + l_var, val);
30
 
31
      return putenv (envstr);
32
    }
33
}