Removed some unused code having to do with permissions of symlinks.
[mmh] / uip / whatnowsbr.c
index 18c25f8..7b63762 100644 (file)
@@ -63,6 +63,8 @@ static struct swit whatnowswitches[] = {
     { "help", 0 },
 #define        ATTACHSW                8
     { "attach header-field-name", 0 },
+#define NOATTACHSW              9
+    { "noattach", 0 },
     { NULL, 0 }
 };
 
@@ -138,7 +140,7 @@ WhatNow (int argc, char **argv)
     char buf[BUFSIZ], prompt[BUFSIZ];
     char **argp, **arguments;
     struct stat st;
-    char       *attach = (char *)0;    /* attachment header field name */
+    char       *attach = NMH_ATTACH_HEADER;/* attachment header field name */
     char       cwd[MAXPATHLEN + 1];    /* current working directory */
     char       file[MAXPATHLEN + 1];   /* file name buffer */
     char       shell[MAXPATHLEN + 1];  /* shell response buffer */
@@ -213,11 +215,13 @@ WhatNow (int argc, char **argv)
                continue;
 
            case ATTACHSW:
-               if (attach != (char *)0)
-                   adios(NULL, "only one attachment header field name at a time!");
                if (!(attach = *argp++) || *attach == '-')
                    adios (NULL, "missing argument to %s", argp[-2]);
                continue;
+
+           case NOATTACHSW:
+               attach = NULL;
+               continue;
            }
        }
        if (drft)
@@ -638,9 +642,6 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp,
 
 #ifdef HAVE_LSTAT
     int        slinked = 0;
-#if 0
-    int oumask;        /* PJS: for setting permissions on symlinks. */
-#endif
 #endif /* HAVE_LSTAT */
 
     /* Was there a previous edit session? */
@@ -670,20 +671,11 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp,
            strncpy (linkpath, LINK, sizeof(linkpath));
        else
            snprintf (linkpath, sizeof(linkpath), "%s/%s", cwd, LINK);
-    }
 
-    if (altmsg) {
        unlink (linkpath);
 #ifdef HAVE_LSTAT
        if (link (altpath, linkpath) == NOTOK) {
-#if 0
-           /* I don't think permission on symlinks matters /JLR */
-           oumask = umask(0044);       /* PJS: else symlinks are world 'r' */
-#endif
            symlink (altpath, linkpath);
-#if 0
-           umask(oumask);              /* PJS: else symlinks are world 'r' */
-#endif
            slinked = 1;
        } else {
            slinked = 0;
@@ -696,7 +688,7 @@ editfile (char **ed, char **arg, char *file, int use, struct msgs *mp,
     context_save ();   /* save the context file */
     fflush (stdout);
 
-    switch (pid = vfork ()) {
+    switch (pid = vfork()) {
        case NOTOK:
            advise ("fork", "unable to");
            status = NOTOK;
@@ -1054,18 +1046,26 @@ static struct swit  sendswitches[] = {
     { "nodraftfolder", -3 },
 #define SASLSW           36
     { "sasl", SASLminc(-4) },
-#define SASLMECHSW       37
+#define NOSASLSW         37
+    { "nosasl", SASLminc(-6) },
+#define SASLMXSSFSW      38
+    { "saslmaxssf", SASLminc(-10) },
+#define SASLMECHSW       39
     { "saslmech", SASLminc(-5) },
-#define USERSW           38
+#define USERSW           40
     { "user", SASLminc(-4) },
-#define SNDATTACHSW       39
+#define SNDATTACHSW       41
     { "attach file", 6 },
-#define SNDATTACHFORMAT   40
+#define SNDNOATTACHSW     42
+    { "noattach", 0 },
+#define SNDATTACHFORMAT   43
     { "attachformat", 7 },
-#define PORTSW           41
+#define PORTSW           44
     { "port server-port-name/number", 4 },
-#define TLSSW            42
+#define TLSSW            45
     { "tls", TLSminc(-3) },
+#define NTLSSW            46
+    { "notls", TLSminc(-5) },
     { NULL, 0 }
 };
 
@@ -1090,8 +1090,8 @@ sendit (char *sp, char **arg, char *file, int pushed)
     char *cp, buf[BUFSIZ], **argp;
     char **arguments, *vec[MAXARGS];
     struct stat st;
-    char       *attach = (char *)0;    /* attachment header field name */
-    int                attachformat = 0;       /* mhbuild format specifier for
+    char       *attach = NMH_ATTACH_HEADER;/* attachment header field name */
+    int                attachformat = 1;       /* mhbuild format specifier for
                                           attachments */
 
 #ifndef        lint
@@ -1144,6 +1144,16 @@ sendit (char *sp, char **arg, char *file, int pushed)
     vec[vecp++] = "-library";
     vec[vecp++] = getcpy (m_maildir (""));
 
+    if ((cp = context_find ("fileproc"))) {
+      vec[vecp++] = "-fileproc";
+      vec[vecp++] = cp;
+    }
+
+    if ((cp = context_find ("mhlproc"))) {
+      vec[vecp++] = "-mhlproc";
+      vec[vecp++] = cp;
+    }
+
     while ((cp = *argp++)) {
        if (*cp == '-') {
            switch (smatch (++cp, sendswitches)) {
@@ -1217,7 +1227,9 @@ sendit (char *sp, char **arg, char *file, int pushed)
                case SOMLSW:
                case SNOOPSW:
                case SASLSW:
+               case NOSASLSW:
                case TLSSW:
+               case NTLSSW:
                    vec[vecp++] = --cp;
                    continue;
 
@@ -1226,6 +1238,7 @@ sendit (char *sp, char **arg, char *file, int pushed)
                case WIDTHSW:
                case CLIESW:
                case SERVSW:
+               case SASLMXSSFSW:
                case SASLMECHSW:
                case USERSW:
                case PORTSW:
@@ -1252,6 +1265,9 @@ sendit (char *sp, char **arg, char *file, int pushed)
                        return;
                    }
                    continue;
+               case SNDNOATTACHSW:
+                   attach = NULL;
+                   continue;
 
                case SNDATTACHFORMAT:
                    if (! *argp || **argp == '-')
@@ -1303,6 +1319,7 @@ sendit (char *sp, char **arg, char *file, int pushed)
            && altmsg) {
        vec[vecp++] = "-dist";
        distfile = getcpy (m_mktemp2(altmsg, invo_name, NULL, NULL));
+       unlink(distfile);
        if (link (altmsg, distfile) == NOTOK)
            adios (distfile, "unable to link %s to", altmsg);
     } else {
@@ -1338,7 +1355,7 @@ whomfile (char **arg, char *file)
     context_save ();   /* save the context file */
     fflush (stdout);
 
-    switch (pid = vfork ()) {
+    switch (pid = vfork()) {
        case NOTOK:
            advise ("fork", "unable to");
            return 1;