This is next_putenv.c in view mode; [Download] [Up]
int putenv (str) char *str; { #ifndef VMS /* nor about VMS */ extern char **environ; char **old_environ = environ; char **envp; int num_envs = 0; int name_len = 1; char *p = str; int ch; while ((ch = *p++) != '\0' && ch != '=') name_len++; if (!ch) abort (); /* Search for replacing an existing environment variable, and count the number of total environment variables. */ for (envp = old_environ; *envp; envp++) { num_envs++; if (!strncmp (str, *envp, name_len)) { *envp = str; return 0; } } /* Add a new environment variable */ environ = (char **) xmalloc (sizeof (char *) * (num_envs+2)); *environ = str; bcopy ((char *) old_environ, (char *) (environ + 1), sizeof (char *) * (num_envs+1)); return 0; #endif /* VMS */ }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.