X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fputenv.c;h=a2ec7d3a91d8ade38c2b83a4c69b9d9fb96c8329;hp=649b0152debdaa9132b0373fd705ca13d9037cb0;hb=5ba9c2f13fedf1d8d6ed907ef1f505616290efaa;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68 diff --git a/sbr/putenv.c b/sbr/putenv.c index 649b015..a2ec7d3 100644 --- a/sbr/putenv.c +++ b/sbr/putenv.c @@ -1,80 +1,76 @@ - /* - * putenv.c -- (un)set an envariable - * - * $Id$ - * - * This code is Copyright (c) 2002, by the authors of nmh. See the - * COPYRIGHT file in the root directory of the nmh distribution for - * complete copyright information. - */ +** putenv.c -- (un)set an envariable +** +** This code is Copyright (c) 2002, by the authors of nmh. See the +** COPYRIGHT file in the root directory of the nmh distribution for +** complete copyright information. +*/ #include +#include extern char **environ; /* - * prototypes - */ -int m_putenv (char *, char *); -int unputenv (char *); -static int nvmatch (char *, char *); +** prototypes +*/ +int m_putenv(char *, char *); +int unputenv(char *); +static int nvmatch(char *, char *); int -m_putenv (char *name, char *value) +m_putenv(char *name, char *value) { - register int i; - register char **ep, **nep, *cp; + int i; + char **ep, **nep, *cp; - if (!(cp = malloc ((size_t) (strlen (name) + strlen (value) + 2)))) - return 1; + cp = mh_xmalloc((size_t) (strlen(name) + strlen(value) + 2)); - sprintf (cp, "%s=%s", name, value); + sprintf(cp, "%s=%s", name, value); - for (ep = environ, i = 0; *ep; ep++, i++) - if (nvmatch (name, *ep)) { - *ep = cp; - return 0; - } + for (ep = environ, i = 0; *ep; ep++, i++) + if (nvmatch(name, *ep)) { + *ep = cp; + return 0; + } - if (!(nep = (char **) malloc ((size_t) ((i + 2) * sizeof(*nep))))) - return 1; + nep = (char **) mh_xmalloc((size_t) ((i + 2) * sizeof(*nep))); - for (ep = environ, i = 0; *ep; nep[i++] = *ep++) - continue; - nep[i++] = cp; - nep[i] = NULL; - environ = nep; - return 0; + for (ep = environ, i = 0; *ep; nep[i++] = *ep++) + continue; + nep[i++] = cp; + nep[i] = NULL; + environ = nep; + return 0; } int -unputenv (char *name) +unputenv(char *name) { - char **ep, **nep; - - for (ep = environ; *ep; ep++) - if (nvmatch (name, *ep)) - break; - if (*ep == NULL) - return 1; - - for (nep = ep + 1; *nep; nep++) - continue; - *ep = *--nep; - *nep = NULL; - return 0; + char **ep, **nep; + + for (ep = environ; *ep; ep++) + if (nvmatch(name, *ep)) + break; + if (*ep == NULL) + return 1; + + for (nep = ep + 1; *nep; nep++) + continue; + *ep = *--nep; + *nep = NULL; + return 0; } static int -nvmatch (char *s1, char *s2) +nvmatch(char *s1, char *s2) { - while (*s1 == *s2++) - if (*s1++ == '=') - return 1; + while (*s1 == *s2++) + if (*s1++ == '=') + return 1; - return (*s1 == '\0' && *--s2 == '='); + return (*s1 == '\0' && *--s2 == '='); }