Fixed dist(1): The link() must fail, because m_mktemp2() creates the file.
[mmh] / uip / send.c
index c85ac8e..a90c6b2 100644 (file)
@@ -67,33 +67,25 @@ static struct swit switches[] = {
        { "alias aliasfile", 0 },
 #define DEBUGSW  1
        { "debug", -5 },
-#define FILTSW  2
-       { "filter filterfile", 0 },
-#define NFILTSW  3
-       { "nofilter", 0 },
-#define FRMTSW  4
-       { "format", 0 },
-#define NFRMTSW  5
-       { "noformat", 0 },
-#define FORWSW  6
+#define FORWSW  2
        { "forward", 0 },
-#define NFORWSW  7
+#define NFORWSW  3
        { "noforward", 0 },
-#define PUSHSW  8
+#define PUSHSW  4
        { "push", 0 },
-#define NPUSHSW  9
+#define NPUSHSW  5
        { "nopush", 0 },
-#define VERBSW  10
+#define VERBSW  6
        { "verbose", 0 },
-#define NVERBSW  11
+#define NVERBSW  7
        { "noverbose", 0 },
-#define WATCSW  12
+#define WATCSW  8
        { "watch", 0 },
-#define NWATCSW  13
+#define NWATCSW  9
        { "nowatch", 0 },
-#define VERSIONSW  14
+#define VERSIONSW  10
        { "version", 0 },
-#define HELPSW  15
+#define HELPSW  11
        { "help", 0 },
        { NULL, 0 }
 };
@@ -172,16 +164,12 @@ main(int argc, char **argv)
 
                        case DEBUGSW:
                                debugsw++;  /* fall */
-                       case NFILTSW:
-                       case FRMTSW:
-                       case NFRMTSW:
                        case WATCSW:
                        case NWATCSW:
                                vec[vecp++] = --cp;
                                continue;
 
                        case ALIASW:
-                       case FILTSW:
                                vec[vecp++] = --cp;
                                if (!(cp = *argp++) || *cp == '-') {
                                        adios(NULL, "missing argument to %s",
@@ -264,27 +252,17 @@ main(int argc, char **argv)
 
        if ((cp = getenv("mhdist")) && *cp && (distsw = atoi(cp)) && altmsg) {
                vec[vecp++] = "-dist";
-               distfile = getcpy(m_mktemp2(altmsg, invo_name, NULL, NULL));
-               if (link(altmsg, distfile) == NOTOK) {
-                       if (errno != EXDEV) {
-                               adios(distfile, "unable to link %s to",
-                                               altmsg);
-                       }
-                       free(distfile);
-                       distfile = getcpy(m_mktemp2(NULL, invo_name,
-                                       NULL, NULL));
-                       if ((in = open(altmsg, O_RDONLY)) == NOTOK) {
-                               adios(altmsg, "unable to open");
-                       }
-                       fstat(in, &st2);
-                       if ((out = creat(distfile, (int)st2.st_mode & 0777)) ==
-                                       NOTOK) {
-                               adios(distfile, "unable to write");
-                       }
-                       cpydata(in, out, altmsg, distfile);
-                       close(in);
-                       close(out);
+               if ((in = open(altmsg, O_RDONLY)) == NOTOK) {
+                       adios(altmsg, "unable to open for reading");
                }
+               fstat(in, &st2);
+               distfile = getcpy(m_mktemp2(NULL, invo_name, NULL, NULL));
+               if ((out = creat(distfile, (int)st2.st_mode & 0777))==NOTOK) {
+                       adios(distfile, "unable to open for writing");
+               }
+               cpydata(in, out, altmsg, distfile);
+               close(in);
+               close(out);
        } else {
                distfile = NULL;
        }