]> diplodocus.org Git - nmh/commitdiff
Replace calls to m_putenv() with setenv(3).
authorRalph Corderoy <ralph@inputplus.co.uk>
Sun, 14 May 2017 21:56:52 +0000 (22:56 +0100)
committerRalph Corderoy <ralph@inputplus.co.uk>
Sun, 14 May 2017 21:56:52 +0000 (22:56 +0100)
h/prototypes.h
sbr/putenv.c
uip/send.c
uip/show.c
uip/slocal.c
uip/whatnowproc.c
uip/whatnowsbr.c

index 18b8758..fa37c87 100644 (file)
@@ -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 **);
index 93b94de..d8fb56f 100644 (file)
@@ -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)
 {
index d284a8f..4df2827 100644 (file)
@@ -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)
index 8ff381f..d5afcad 100644 (file)
@@ -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) {
 
index 1e044f5..4174d4a 100644 (file)
@@ -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);
index a0186f5..600dd5b 100644 (file)
@@ -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);
        }
     }
 
index 6c82e24..71daf43 100644 (file)
@@ -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;