]> diplodocus.org Git - nmh/blobdiff - uip/whatnowproc.c
Remove support for aliases based on Unix groups.
[nmh] / uip / whatnowproc.c
index fc8783d0b8df0267a9e3c84cf0c3f15f3c4c5719..ca2236e8da369cc141f615266e899611bfeb7b26 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * whatnowproc.c -- exec the "whatnowproc"
+/* whatnowproc.c -- exec the "whatnowproc"
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
@@ -26,46 +24,47 @@ what_now (char *ed, int nedit, int use, char *file, char *altmsg, int dist,
 {
     int found, k, msgnum, vecp;
     int len, buflen;
-    register char *bp;
+    char *bp;
     char buffer[BUFSIZ], *vec[MAXARGS];
 
     vecp = 0;
     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");
+       unsetenv("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");
+       unsetenv("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");
+       unsetenv("mheditor");
     } else {
-       m_putenv ("mheditor", ed ? ed : (ed = context_find ("editor"))
-           ? ed : defaulteditor);
+        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");
-    unputenv ("mhinplace");
+    unsetenv("mhmessages");
+    unsetenv("mhannotate");
+    unsetenv("mhinplace");
 
     if (text && mp && !is_readonly(mp)) {
        found = 0;
@@ -90,18 +89,21 @@ 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);
        }
     }
 
     context_save ();   /* save the context file */
     fflush (stdout);
 
-    if (cwd)
-       chdir (cwd);
+    if (cwd) {
+       if (chdir (cwd) < 0) {
+           advise (cwd, "chdir");
+       }
+    }
 
     /*
      * If the "whatnowproc" is the nmh command "whatnow",