From: Ralph Corderoy Date: Sun, 14 May 2017 21:56:52 +0000 (+0100) Subject: Replace calls to m_putenv() with setenv(3). X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/fe4026749648d3f5693adce7ae7a218968a9beb5?hp=ae8ef7d3f4cfcab63518ea97a5eb2d03f2da9b53 Replace calls to m_putenv() with setenv(3). --- diff --git a/h/prototypes.h b/h/prototypes.h index 18b87586..fa37c87e 100644 --- a/h/prototypes.h +++ b/h/prototypes.h @@ -256,7 +256,6 @@ int m_gmprot (void); char *m_maildir (char *); char *m_mailpath (char *); char *m_name (int); -int m_putenv (char *, char *); int m_rand (unsigned char *, size_t); char *m_mktemp(const char *, int *, FILE **); char *m_mktemp2(const char *, const char *, int *, FILE **); diff --git a/sbr/putenv.c b/sbr/putenv.c index 93b94def..d8fb56f3 100644 --- a/sbr/putenv.c +++ b/sbr/putenv.c @@ -13,38 +13,12 @@ extern char **environ; /* * prototypes */ -int m_putenv (char *, char *); int unputenv (char *); static int nvmatch (char *, char *); /* FIXME: These functions leak memory. No easy fix since they might not * be malloc'd. Switch to setenv(3) and unsetenv(3). */ -int -m_putenv (char *name, char *value) -{ - int i; - char **ep, **nep, *cp; - - cp = concat(name, "=", value, NULL); - - for (ep = environ, i = 0; *ep; ep++, i++) - if (nvmatch (name, *ep)) { - *ep = cp; - return 0; - } - - 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; -} - - int unputenv (char *name) { diff --git a/uip/send.c b/uip/send.c index d284a8f4..4df28271 100644 --- a/uip/send.c +++ b/uip/send.c @@ -381,7 +381,7 @@ go_to_it: if ((cp = getenv ("SIGNATURE")) == NULL || *cp == 0) if ((cp = context_find ("signature")) && *cp) - m_putenv ("SIGNATURE", cp); + setenv("SIGNATURE", cp, 1); for (msgnum = 0; msgnum < msgp; msgnum++) if (stat (msgs[msgnum], &st) == NOTOK) diff --git a/uip/show.c b/uip/show.c index 8ff381fb..d5afcad1 100644 --- a/uip/show.c +++ b/uip/show.c @@ -297,7 +297,7 @@ go_to_it: ; } if (folder && !draftsw && !file) - m_putenv ("mhfolder", folder); + setenv("mhfolder", folder, 1); if (strcmp (r1bindex (proc, '/'), "cat") == 0) { diff --git a/uip/slocal.c b/uip/slocal.c index 1e044f52..4174d4a0 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -1093,9 +1093,9 @@ usr_pipe (int fd_arg, char *cmd, char *pgm, char **vec, int suppress) setpgid ((pid_t) 0, getpid ()); /* put in own process group */ *environ = NULL; - m_putenv ("USER", pw->pw_name); - m_putenv ("HOME", pw->pw_dir); - m_putenv ("SHELL", pw->pw_shell); + setenv("USER", pw->pw_name, 1); + setenv("HOME", pw->pw_dir, 1); + setenv("SHELL", pw->pw_shell, 1); execvp (pgm, vec); _exit (-1); diff --git a/uip/whatnowproc.c b/uip/whatnowproc.c index a0186f55..600dd5b7 100644 --- a/uip/whatnowproc.c +++ b/uip/whatnowproc.c @@ -31,34 +31,36 @@ what_now (char *ed, int nedit, int use, char *file, char *altmsg, int dist, vec[vecp++] = r1bindex (whatnowproc, '/'); vec[vecp] = NULL; - m_putenv ("mhdraft", file); + setenv("mhdraft", file, 1); if (mp) - m_putenv ("mhfolder", mp->foldpath); + setenv("mhfolder", mp->foldpath, 1); else unputenv ("mhfolder"); if (altmsg) { if (mp == NULL || *altmsg == '/' || cwd == NULL) - m_putenv ("mhaltmsg", altmsg); + setenv("mhaltmsg", altmsg, 1); else { snprintf (buffer, sizeof(buffer), "%s/%s", mp->foldpath, altmsg); - m_putenv ("mhaltmsg", buffer); + setenv("mhaltmsg", buffer, 1); } } else { unputenv ("mhaltmsg"); } if ((bp = getenv ("mhaltmsg")))/* XXX */ - m_putenv ("editalt", bp); + setenv("editalt", bp, 1); snprintf (buffer, sizeof(buffer), "%d", dist); - m_putenv ("mhdist", buffer); + setenv("mhdist", buffer, 1); if (nedit) { unputenv ("mheditor"); } else { - m_putenv ("mheditor", ed ? ed : (ed = get_default_editor())); + if (!ed) + ed = get_default_editor(); + setenv("mheditor", ed, 1); } snprintf (buffer, sizeof(buffer), "%d", use); - m_putenv ("mhuse", buffer); + setenv("mhuse", buffer, 1); snprintf (buffer, sizeof(buffer), "%d", atfile); - m_putenv ("mhatfile", buffer); + setenv("mhatfile", buffer, 1); unputenv ("mhmessages"); unputenv ("mhannotate"); @@ -87,10 +89,10 @@ what_now (char *ed, int nedit, int use, char *file, char *altmsg, int dist, } } if (found) { - m_putenv ("mhmessages", buffer); - m_putenv ("mhannotate", text); + setenv("mhmessages", buffer, 1); + setenv("mhannotate", text, 1); snprintf (buffer, sizeof(buffer), "%d", inplace); - m_putenv ("mhinplace", buffer); + setenv("mhinplace", buffer, 1); } } diff --git a/uip/whatnowsbr.c b/uip/whatnowsbr.c index 6c82e24d..71daf43f 100644 --- a/uip/whatnowsbr.c +++ b/uip/whatnowsbr.c @@ -706,8 +706,8 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp, } if (altmsg) { if (mp) - m_putenv ("mhfolder", mp->foldpath); - m_putenv ("editalt", altpath); + setenv("mhfolder", mp->foldpath, 1); + setenv("editalt", altpath, 1); } vec = argsplit(*ed, &prog, &vecp); @@ -1194,7 +1194,7 @@ sendit (char *sp, char **arg, char *file, int pushed) if ((cp = getenv ("SIGNATURE")) == NULL || *cp == 0) if ((cp = context_find ("signature")) && *cp) - m_putenv ("SIGNATURE", cp); + setenv("SIGNATURE", cp, 1); if ((annotext = getenv ("mhannotate")) == NULL || *annotext == 0) annotext = NULL;