Fix uip/whom.c for C89 compatibility
[mmh] / uip / slocal.c
index c3b45e8..df0dc7f 100644 (file)
@@ -72,6 +72,7 @@ static struct swit switches[] = {
        { NULL, 0 }
 };
 
+char *version=VERSION;
 
 static int globbed = 0;  /* have we built "vars" table yet? */
 static int parsed = 0;  /* have we built header field table yet */
@@ -747,10 +748,10 @@ parse(int fd)
 
        /* add special entries to lookup table */
        if ((p = lookup(hdrs, "source"))) {
-               p->p_value = getcpy(sender);
+               p->p_value = mh_xstrdup(sender);
        }
        if ((p = lookup(hdrs, "addr"))) {
-               p->p_value = getcpy(addr);
+               p->p_value = mh_xstrdup(addr);
        }
 
        /*
@@ -758,10 +759,14 @@ parse(int fd)
        */
        for (i = 0, state = FLD2;;) {
                switch (state = m_getfld2(state, &f, in)) {
+               case LENERR2:
+                       state = FLD2;
+                       /* FALL */
+
                case FLD2:
-                       lp = getcpy(f.value);
+                       lp = mh_xstrdup(f.value);
                        for (p = hdrs; p->p_name; p++) {
-                               if (mh_strcasecmp(p->p_name, f.name)!=0) {
+                               if (mh_strcasecmp(p->p_name, f.name) == 0) {
                                        if (!(p->p_flags & P_HID)) {
                                                if ((cp = p->p_value)) {
                                                        if (p->p_flags & P_ADR) {
@@ -776,12 +781,12 @@ parse(int fd)
                                                }
                                                p->p_value = add(lp, cp);
                                        }
-                                       free(lp);
+                                       mh_free0(&lp);
                                        break;
                                }
                        }
                        if (!p->p_name && i < NVEC) {
-                               p->p_name = getcpy(f.name);
+                               p->p_name = mh_xstrdup(f.name);
                                p->p_value = lp;
                                p->p_flags = P_NIL;
                                p++, i++;
@@ -793,7 +798,6 @@ parse(int fd)
                case FILEEOF2:
                        break;
 
-               case LENERR2:
                case FMTERR2:
                case IOERR2:
                        advise(NULL, "format error in message");
@@ -812,7 +816,7 @@ parse(int fd)
                if (!(q = lookup(hdrs, "reply-to")) || !q->p_value) {
                        q = lookup(hdrs, "from");
                }
-               p->p_value = getcpy(q ? q->p_value : "");
+               p->p_value = mh_xstrdup(q ? q->p_value : "");
                p->p_flags &= ~P_CHK;
                if (debug) {
                        debug_printf("vars[%d]: name=\"%s\" value=\"%s\"\n",
@@ -885,18 +889,18 @@ glob(int fd)
                return;
        }
        if ((p = lookup(vars, "sender"))) {
-               p->p_value = getcpy(sender);
+               p->p_value = mh_xstrdup(sender);
        }
        if ((p = lookup(vars, "address"))) {
-               p->p_value = getcpy(addr);
+               p->p_value = mh_xstrdup(addr);
        }
        if ((p = lookup(vars, "size"))) {
                snprintf(buffer, sizeof(buffer), "%d",
                                fstat(fd, &st) != -1 ? (int) st.st_size : 0);
-               p->p_value = getcpy(buffer);
+               p->p_value = mh_xstrdup(buffer);
        }
        if ((p = lookup(vars, "info"))) {
-               p->p_value = getcpy(info);
+               p->p_value = mh_xstrdup(info);
        }
        if (debug) {
                for (p = vars; p->p_name; p++) {
@@ -1084,7 +1088,7 @@ get_sender(char *envelope, char **sender)
        unsigned char buffer[BUFSIZ];
 
        if (!envelope) {
-               *sender = getcpy("");
+               *sender = mh_xstrdup("");
                return;
        }
 
@@ -1108,7 +1112,7 @@ get_sender(char *envelope, char **sender)
                } else {
                        break;
                }
-       *sender = getcpy(buffer);
+       *sender = mh_xstrdup(buffer);
 }
 
 
@@ -1188,7 +1192,7 @@ you_lose:
                                ** get copy of envelope information
                                ** ("From " line)
                                */
-                               envelope = getcpy(buffer);
+                               envelope = mh_xstrdup(buffer);
 
                                /* Put the delivery date in message */
                                fputs(ddate, ffp);
@@ -1258,7 +1262,7 @@ trimstr(char *cp)
                        *sp = ' ';
                }
        }
-       return getcpy(bp);
+       return mh_xstrdup(bp);
 }
 
 /*